diff --git a/src/App.php b/src/App.php index 1b49c6116e0b177369f3bfdad4f161a39b5a1873..030c9fafe3eb5f6835543ec95a9d01c3634a1187 100644 --- a/src/App.php +++ b/src/App.php @@ -14,6 +14,7 @@ use app\controllers\RegisterController; use app\controllers\UpdateFilmController; use app\controllers\UserDashboardController; use app\controllers\SoapPremiumController; +use app\controllers\AdminController; use app\repositories\UserRepository; use app\repositories\ReviewRepository; use app\services\UserService; @@ -55,5 +56,6 @@ class App $this->router->addRoute('/cancel-premium', SoapPremiumController::class); $this->router->addRoute('/approve-premium', SoapPremiumController::class); $this->router->addRoute('/reject-premium', SoapPremiumController::class); + $this->router->addRoute('/admins', AdminController::class); } } diff --git a/src/base/BaseRepository.php b/src/base/BaseRepository.php index 49154a72a3a69c00f2ca7b4f96aeb58db6213077..c2bd62fb88951b40ed1c1b80681b6657b8b2988d 100644 --- a/src/base/BaseRepository.php +++ b/src/base/BaseRepository.php @@ -48,27 +48,27 @@ abstract class BaseRepository $conditions = []; - // Mapping where - if (count($where) > 0) { - foreach ($where as $key => $value) { - $columns = [$key]; - if (isset($value[3]) and is_array(($value[3]))) { - $columns = [$key] + $value[3]; - } - $subConditions = []; - foreach ($columns as $column) { - if (isset($value[2]) and $value[2] == 'LIKE') { - $subConditions[] = "LOWER($column) LIKE LOWER(:$column)"; - } else { - $subConditions[] = "$column = :$column"; - } - } - $conditions[] = "(" . implode(" OR ", $subConditions) . ")"; + // Mapping where + if (count($where) > 0) { + foreach ($where as $key => $value) { + $columns = [$key]; + if (isset($value[3]) and is_array(($value[3]))) { + $columns = [$key] + $value[3]; + } + $subConditions = []; + foreach ($columns as $column) { + if (isset($value[2]) and $value[2] == 'LIKE') { + $subConditions[] = "LOWER($column) LIKE LOWER(:$column)"; + } else { + $subConditions[] = "$column = :$column"; } - - $sql .= " WHERE " . implode(" AND ", $conditions); + } + $conditions[] = "(" . implode(" OR ", $subConditions) . ")"; } + $sql .= " WHERE " . implode(" AND ", $conditions); + } + // Hydrating statement, for sanitizing $stmt = $this->pdo->prepare($sql); // Bind values @@ -98,7 +98,7 @@ abstract class BaseRepository $pageNo = null, $pageSize = null, $sort = "asc", - $isInitialSync = "no" + $isInitialSync = "yes" ) { $sql = "SELECT * FROM $this->tableName"; @@ -132,9 +132,9 @@ abstract class BaseRepository $pollingSql .= " WHERE "; } if ($pollingDurationMinutes !== false && is_numeric($pollingDurationMinutes) && $pollingDurationMinutes) { - $pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL $pollingDurationMinutes MINUTE)"; + $pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL $pollingDurationMinutes MINUTE)"; } else { - $pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL 30 MINUTE)"; + $pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL 30 MINUTE)"; } $sql .= $pollingSql; } diff --git a/src/controllers/AdminController.php b/src/controllers/AdminController.php new file mode 100644 index 0000000000000000000000000000000000000000..ad80aecb119dfa1117bd49e47aeb1058e1a018df --- /dev/null +++ b/src/controllers/AdminController.php @@ -0,0 +1,27 @@ +<?php + +namespace app\controllers; + +use app\base\BaseController; +use app\controllers\utils\response; +use app\Request; +use app\services\UserService; +use Exception; + +class AdminController extends BaseController +{ + public function __construct() + { + parent::__construct(UserService::getInstance()); + } + + protected function get($urlParams) + { + $admins = $this->service->getAllAdmin(); + $admin_emails = []; + foreach ($admins as $data) { + array_push($admin_emails, $data['email']); + } + response::send_json_response($admin_emails); + } +} diff --git a/src/controllers/SoapPremiumController.php b/src/controllers/SoapPremiumController.php index 018fadfad6ff6f8c0880d3ef8448b9518348de3f..2b463859c8c57c921bfde6cd6147a4ace182e523 100644 --- a/src/controllers/SoapPremiumController.php +++ b/src/controllers/SoapPremiumController.php @@ -6,7 +6,6 @@ use app\base\BaseController; use app\controllers\utils\response; use app\client\SoapClient; use app\Request; -use app\models\SoapPremiumModel; use Exception; class SoapPremiumController extends BaseController diff --git a/src/services/UserService.php b/src/services/UserService.php index ea48a8e9e04019d43f11b83def00c1e664dd9383..e616faf06e154b4b2fb444b9a0aad5d799b68b4e 100644 --- a/src/services/UserService.php +++ b/src/services/UserService.php @@ -272,4 +272,9 @@ class UserService extends BaseService { return $this->repository->deleteById($user_id); } + + public function getAllAdmin() + { + return $this->repository->findAll(['role' => ['admin', PDO::PARAM_STR, "="]]); + } }