Uptime-Status/model/page.php

39 lines
820 B
PHP

<?php
require_once(__DIR__ . "/group.php");
class Page {
private array $page;
private int $online = 0;
private int $total = 0;
private array $groups = [];
public function __construct(array $page) {
$this->page = $page;
}
public function add_group(Group $group) {
array_push($this->groups, $group);
$this->online += $group->get_online();
$this->total += $group->get_total();
}
public function export(): array {
return [
"page" => $this->page,
"online" => $this->online,
"total" => $this->total,
"groups" => $this->groups
];
}
public static function convert(array $oldPage, array $heartbeat): Page {
$page = new Page($oldPage["config"]);
foreach ($oldPage["publicGroupList"] as $oldGroup) {
$page->add_group(Group::convert($oldGroup, $heartbeat));
}
return $page;
}
}