From 7ea4a90980b335083341dc7130548a41a6c34379 Mon Sep 17 00:00:00 2001 From: JonatanRek Date: Tue, 16 Feb 2021 14:59:27 +0100 Subject: [PATCH] Automations Endpoint Detail + Cron Endpoint --- app/Routes.php | 6 +++++- app/api/AutomationsApi.php | 23 +++++++++++++++++++++-- app/api/CronApi.php | 8 ++++++-- app/models/managers/AutomationManager.php | 9 +++++++-- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/app/Routes.php b/app/Routes.php index cbc72a0..161cb23 100644 --- a/app/Routes.php +++ b/app/Routes.php @@ -41,23 +41,27 @@ $router->get('/api/widgets/{widgetId}/detail', 'WidgetApi@detail'); $router->get('/api/widgets/{widgetId}/detail/{period}', 'WidgetApi@detail'); $router->get('/api/automations', 'AutomationsApi@default'); - +$router->get('/api/automations/{automationId}/detail', 'AutomationsApi@detail'); //cron $router->post('/cron/clean', 'CronApi@clean'); $router->post('/cron/fetch', 'CronApi@fetch'); +$router->post('/cron/automations', 'CronApi@automations'); + //Google Home - API $router->any('/api/HA/auth', 'Oauth'); $router->any('/api/HA', 'GoogleHomeApi@response'); + //Endpoints API $router->post('/api/endpoint/', 'EndpointsApi@default'); $router->any('/api/update/', 'UpdatesApi@default'); $router->any('/api/users/status', 'UsersApi@status'); $router->any('/api/users/subscribe', 'UsersApi@subscribe'); + // examples $router->any('/api/example', 'ExampleApi@example'); $router->any('/example', 'ExampleController@index'); diff --git a/app/api/AutomationsApi.php b/app/api/AutomationsApi.php index 1f45ce9..4f72108 100644 --- a/app/api/AutomationsApi.php +++ b/app/api/AutomationsApi.php @@ -7,9 +7,9 @@ class AutomationsApi extends ApiController { //$this->requireAuth(); $response = []; - $automationData = AutomationManager::getAll(); + $automationsData = AutomationManager::getAll(); - foreach ($automationData as $automationKey => $automation) { + foreach ($automationsData as $automationKey => $automation) { $response[] = [ "automation_id" => $automation['automation_id'], "name" => $automation['name'], @@ -19,4 +19,23 @@ class AutomationsApi extends ApiController $this->response($response); } + + public function detail($automationId) + { + //$this->requireAuth(); + + $response = null; + $automationData = AutomationManager::getById($automationId); + + $response = [ + 'automation_id' => $automationData['automation_id'], + 'last_execution_time' => $automationData['last_execution_time'], + 'owner' => $automationData['owner_id'], + 'conditions' => $automationData['conditions'], + 'tasks' => $automationData['tasks'], + ]; + + $this->response($response); + } + } diff --git a/app/api/CronApi.php b/app/api/CronApi.php index 0090e7b..7c682d3 100644 --- a/app/api/CronApi.php +++ b/app/api/CronApi.php @@ -20,8 +20,7 @@ class CronApi extends ApiController $this->response(['Value' => 'OK']); } - public function fetch() - { + public function fetch(){ //Run Plugins $result = []; $dir = $_SERVER['DOCUMENT_ROOT'] . BASEDIR . 'app/plugins/'; @@ -60,4 +59,9 @@ class CronApi extends ApiController //Print Result $this->response($result); } + + public function automations(){ + AutomationManager:executeAll(); + $this->response(['Value' => 'OK']); + } } diff --git a/app/models/managers/AutomationManager.php b/app/models/managers/AutomationManager.php index aacf6f7..2873c9d 100644 --- a/app/models/managers/AutomationManager.php +++ b/app/models/managers/AutomationManager.php @@ -43,10 +43,15 @@ class AutomationManager{ } + public static function getById($automationId){ + return Db::loadOne("SELECT * FROM automation WHERE automation_id = ?", [$automationId]); + + } + public static function executeAll(){ global $logManager; - $automations = Db::loadAll ("SELECT * FROM automation"); + /*$automations = Db::loadAll ("SELECT * FROM automation"); $dayNameNow = strtolower (date('D', time())); foreach ($automations as $automation) { @@ -170,6 +175,6 @@ class AutomationManager{ Db::edit('automation', array('locked' => 0), 'WHERE automation_id = ?', array($automation['automation_id'])); } } - } + }*/ } }