From 8c9bc2527669a25d8b33353858d0d6d66d345815 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Thu, 14 May 2020 21:14:38 -0600 Subject: [PATCH] Add lookup API, add more event types --- api/actions/lookup.php | 21 +++++++++++++++++++++ api/apisettings.php | 6 ++++++ database.mwb | Bin 15502 -> 15590 bytes lib/Machine.lib.php | 18 ++++++++++++++++-- 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 api/actions/lookup.php diff --git a/api/actions/lookup.php b/api/actions/lookup.php new file mode 100644 index 0000000..6231c21 --- /dev/null +++ b/api/actions/lookup.php @@ -0,0 +1,21 @@ + "ping.php", "vars" => [ ] + ], + "lookup" => [ + "load" => "lookup.php", + "vars" => [ + "id" => "/^[0-9a-z]+$/" + ] ] ]; diff --git a/database.mwb b/database.mwb index 5f8f8bdafd77401333575d28141c8431890d5cca..79264d08d64cec5dc1563d11066b3f95b64a14af 100644 GIT binary patch delta 15173 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 { + return [ + "status" => "OK", + "id" => $this->machineid, + "info" => $this->machine, + "events" => $this->events, + "components" => $this->components + ]; + } + return []; + } + public static function create(): Machine { return new Machine(Machine::generateId()); } @@ -219,7 +232,8 @@ class Machine { public static function generateId(int $min = 1000000000, int $max = 9999999999): int { global $database; - $id = random_int(1000000000, 9999999999);; + $id = random_int(1000000000, 9999999999); + ; do { $id = random_int(1000000000, 9999999999);