Browse Source

Automations Endpoint Detail + Cron Endpoint

remastering
Václav Španinger 1 year ago
parent
commit
7ea4a90980
4 changed files with 39 additions and 7 deletions
  1. +5
    -1
      app/Routes.php
  2. +21
    -2
      app/api/AutomationsApi.php
  3. +6
    -2
      app/api/CronApi.php
  4. +7
    -2
      app/models/managers/AutomationManager.php

+ 5
- 1
app/Routes.php View File

@ -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');

+ 21
- 2
app/api/AutomationsApi.php View File

@ -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);
}
}

+ 6
- 2
app/api/CronApi.php View File

@ -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']);
}
}

+ 7
- 2
app/models/managers/AutomationManager.php View File

@ -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']));
}
}
}
}*/
}
}

Loading…
Cancel
Save