Files

41 lines
976 B
PHP

<?php
class ConnectionRegistry
{
public static function empty(): array
{
return [
'connections' => [],
'lastSeen' => []
];
}
public static function fromJson(string $json): array
{
$data = json_decode($json, true);
if (!is_array($data)) {
return self::empty();
}
return array_replace(self::empty(), $data);
}
public static function toJson(array $state): string
{
return json_encode(array_replace(self::empty(), $state));
}
public static function touch(array $state, string $chargePointId, string $remote = ''): array
{
$state = array_replace(self::empty(), $state);
$state['connections'][$chargePointId] = [
'chargePointId' => $chargePointId,
'remote' => $remote,
'timestamp' => time()
];
$state['lastSeen'][$chargePointId] = time();
return $state;
}
}
?>