<?php
/*
TODO:
+ Создание метода для получения state скрипта
+ Вывод списков скриптов с полем state
+ Интегрировать поведение относительно поля state при запуске скриптов. Выключенные скрипты не должны быть запущены.
- Реализовать апдейт скриптов
*/
namespace SHServ\Controllers;
use \SHServ\Middleware\ControlScripts;
use \SHServ\Models\Scripts;
class ScriptsRESTAPIController extends \SHServ\Middleware\Controller {
public function run_action_script($alias, $params) {
$result = ControlScripts::run_action_script($alias, $params);
if(!$result) {
return $this -> utils() -> response_error("action_script_not_found");
}
return $this -> utils() -> response_success([
"return" => $result
]);
}
public function actions_scripts_list() {
$data = (new Scripts()) -> actions_scripts_list();
return $this -> utils() -> response_success([
"scripts" => $data,
"total" => count($data)
]);
}
public function regular_scripts_list() {
$data = (new Scripts()) -> regular_scripts_list();
return $this -> utils() -> response_success([
"scripts" => $data,
"total" => count($data)
]);
}
public function scope_list() {
$scripts_model = new Scripts();
$scopes = $scripts_model -> get_scopes_list();
return $this -> utils() -> response_success([
"scopes" => $scopes,
"total" => count($scopes)
]);
}
public function scope_file($name) {
$scripts_model = new Scripts();
$scopes = $scripts_model -> get_scopes_list();
$file = "";
foreach($scopes as $scope) {
if($name != $scope["name"]) {
continue;
}
$file = file_get_contents($scope["path"] . "/" . $scope["filename"]);
break;
}
if(!$file) {
return $this -> utils() -> response_error("scope_not_found");
}
return $file;
}
public function scope_update($name, $path, $file) {
if(!strlen($file)) {
return $this -> utils() -> response_error("empty_field", ["file"]);
}
$scripts_model = new Scripts();
if(!$scripts_model -> scope_is_exists($name)) {
return $this -> utils() -> response_error("scope_not_found");
}
$filepath = "{$path}/{$name}";
$filepath = strpos($filepath, ".php") ? $filepath : $filepath . ".php";
if(!file_exists($filepath)) {
return $this -> utils() -> response_error("file_not_exists");
}
$result = file_put_contents($filepath, $file);
return $result
? $this -> utils() -> response_success(["result" => true])
: $this -> utils() -> response_error("undefined_error");
}
public function scope_remove($name) {
$scripts_model = new Scripts();
return $scopes = $scripts_model -> remove_scope($name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function scope_enable($uniq_name) {
return (new Scripts()) -> enable_script("scope", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function scope_disable($uniq_name) {
return (new Scripts()) -> disable_script("scope", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function regular_script_enable($uniq_name) {
return (new Scripts()) -> enable_script("regular", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function regular_script_disable($uniq_name) {
return (new Scripts()) -> disable_script("regular", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function action_script_enable($uniq_name) {
return (new Scripts()) -> enable_script("action", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
public function action_script_disable($uniq_name) {
return (new Scripts()) -> disable_script("action", $uniq_name)
? $this -> utils() -> response_success()
: $this -> utils() -> response_error("undefined_error");
}
}