Skip to content

Commit 14e8d55

Browse files
committed
Refactor json serialization of Server class
1 parent 2da02c9 commit 14e8d55

File tree

2 files changed

+29
-22
lines changed

2 files changed

+29
-22
lines changed

src/libraries/Server.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111
use \DateTime;
1212
use \DateTimeZone;
1313
use \InvalidArgumentException;
14+
use \JsonSerializable;
1415
use \PDO;
1516
use \PDOException;
1617
use \StdClass;
1718

18-
class Server {
19+
class Server implements JsonSerializable {
1920

2021
const STATUS_ONLINE = 0x00000001;
2122
const STATUS_DISABLED = 0x00000002;
@@ -168,6 +169,32 @@ public function getUserId() {
168169
return $this->user_id;
169170
}
170171

172+
public function jsonSerialize() {
173+
$created_datetime = $this->getCreatedDateTime();
174+
if (!is_null($created_datetime)) $created_datetime = [
175+
"iso" => $created_datetime->format("r"),
176+
"unix" => $created_datetime->getTimestamp(),
177+
];
178+
179+
$updated_datetime = $this->getUpdatedDateTime();
180+
if (!is_null($updated_datetime)) $updated_datetime = [
181+
"iso" => $updated_datetime->format("r"),
182+
"unix" => $updated_datetime->getTimestamp(),
183+
];
184+
185+
return [
186+
"address" => $this->getAddress(),
187+
"created_datetime" => $created_datetime,
188+
"id" => $this->getId(),
189+
"label" => $this->getLabel(),
190+
"port" => $this->getPort(),
191+
"status_bitmask" => $this->getStatusBitmask(),
192+
"type_id" => $this->getTypeId(),
193+
"updated_datetime" => $updated_datetime,
194+
"user" => $this->getUser()
195+
];
196+
}
197+
171198
protected static function normalize(StdClass &$data) {
172199
$data->address = (string) $data->address;
173200
$data->created_datetime = (string) $data->created_datetime;

src/views/ServersJSON.php

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,7 @@ public function render(Model &$model) {
3030
}
3131

3232
foreach ($model->servers as $server) {
33-
$created_datetime = $server->getCreatedDateTime();
34-
$updated_datetime = $server->getUpdatedDateTime();
35-
if (!is_null($created_datetime)) $created_datetime = [
36-
"iso" => $created_datetime->format("r"),
37-
"unix" => $created_datetime->getTimestamp(),
38-
];
39-
if (!is_null($updated_datetime)) $updated_datetime = [
40-
"iso" => $updated_datetime->format("r"),
41-
"unix" => $updated_datetime->getTimestamp(),
42-
];
43-
$content["servers"][] = [
44-
"address" => $server->getAddress(),
45-
"created_datetime" => $created_datetime,
46-
"id" => $server->getId(),
47-
"label" => $server->getLabel(),
48-
"port" => $server->getPort(),
49-
"status_bitmask" => $server->getStatusBitmask(),
50-
"type_id" => $server->getTypeId(),
51-
"updated_datetime" => $updated_datetime,
52-
"user" => $server->getUser()
53-
];
33+
$content["servers"][] = $server;
5434
}
5535

5636
$content["status_bitmasks"] = $model->status_bitmasks;

0 commit comments

Comments
 (0)