Skip to content
Snippets Groups Projects
Commit f520e79b authored by Kenneth Ezekiel's avatar Kenneth Ezekiel
Browse files

feat: admin endpoint

parent 363513ce
No related merge requests found
...@@ -14,6 +14,7 @@ use app\controllers\RegisterController; ...@@ -14,6 +14,7 @@ use app\controllers\RegisterController;
use app\controllers\UpdateFilmController; use app\controllers\UpdateFilmController;
use app\controllers\UserDashboardController; use app\controllers\UserDashboardController;
use app\controllers\SoapPremiumController; use app\controllers\SoapPremiumController;
use app\controllers\AdminController;
use app\repositories\UserRepository; use app\repositories\UserRepository;
use app\repositories\ReviewRepository; use app\repositories\ReviewRepository;
use app\services\UserService; use app\services\UserService;
...@@ -55,5 +56,6 @@ class App ...@@ -55,5 +56,6 @@ class App
$this->router->addRoute('/cancel-premium', SoapPremiumController::class); $this->router->addRoute('/cancel-premium', SoapPremiumController::class);
$this->router->addRoute('/approve-premium', SoapPremiumController::class); $this->router->addRoute('/approve-premium', SoapPremiumController::class);
$this->router->addRoute('/reject-premium', SoapPremiumController::class); $this->router->addRoute('/reject-premium', SoapPremiumController::class);
$this->router->addRoute('/admins', AdminController::class);
} }
} }
...@@ -48,27 +48,27 @@ abstract class BaseRepository ...@@ -48,27 +48,27 @@ abstract class BaseRepository
$conditions = []; $conditions = [];
// Mapping where // Mapping where
if (count($where) > 0) { if (count($where) > 0) {
foreach ($where as $key => $value) { foreach ($where as $key => $value) {
$columns = [$key]; $columns = [$key];
if (isset($value[3]) and is_array(($value[3]))) { if (isset($value[3]) and is_array(($value[3]))) {
$columns = [$key] + $value[3]; $columns = [$key] + $value[3];
} }
$subConditions = []; $subConditions = [];
foreach ($columns as $column) { foreach ($columns as $column) {
if (isset($value[2]) and $value[2] == 'LIKE') { if (isset($value[2]) and $value[2] == 'LIKE') {
$subConditions[] = "LOWER($column) LIKE LOWER(:$column)"; $subConditions[] = "LOWER($column) LIKE LOWER(:$column)";
} else { } else {
$subConditions[] = "$column = :$column"; $subConditions[] = "$column = :$column";
}
}
$conditions[] = "(" . implode(" OR ", $subConditions) . ")";
} }
}
$sql .= " WHERE " . implode(" AND ", $conditions); $conditions[] = "(" . implode(" OR ", $subConditions) . ")";
} }
$sql .= " WHERE " . implode(" AND ", $conditions);
}
// Hydrating statement, for sanitizing // Hydrating statement, for sanitizing
$stmt = $this->pdo->prepare($sql); $stmt = $this->pdo->prepare($sql);
// Bind values // Bind values
...@@ -98,7 +98,7 @@ abstract class BaseRepository ...@@ -98,7 +98,7 @@ abstract class BaseRepository
$pageNo = null, $pageNo = null,
$pageSize = null, $pageSize = null,
$sort = "asc", $sort = "asc",
$isInitialSync = "no" $isInitialSync = "yes"
) { ) {
$sql = "SELECT * FROM $this->tableName"; $sql = "SELECT * FROM $this->tableName";
...@@ -132,9 +132,9 @@ abstract class BaseRepository ...@@ -132,9 +132,9 @@ abstract class BaseRepository
$pollingSql .= " WHERE "; $pollingSql .= " WHERE ";
} }
if ($pollingDurationMinutes !== false && is_numeric($pollingDurationMinutes) && $pollingDurationMinutes) { 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 { } else {
$pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL 30 MINUTE)"; $pollingSql .= "last_updated >= DATE_SUB(NOW(), INTERVAL 30 MINUTE)";
} }
$sql .= $pollingSql; $sql .= $pollingSql;
} }
......
<?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);
}
}
...@@ -6,7 +6,6 @@ use app\base\BaseController; ...@@ -6,7 +6,6 @@ use app\base\BaseController;
use app\controllers\utils\response; use app\controllers\utils\response;
use app\client\SoapClient; use app\client\SoapClient;
use app\Request; use app\Request;
use app\models\SoapPremiumModel;
use Exception; use Exception;
class SoapPremiumController extends BaseController class SoapPremiumController extends BaseController
......
...@@ -272,4 +272,9 @@ class UserService extends BaseService ...@@ -272,4 +272,9 @@ class UserService extends BaseService
{ {
return $this->repository->deleteById($user_id); return $this->repository->deleteById($user_id);
} }
public function getAllAdmin()
{
return $this->repository->findAll(['role' => ['admin', PDO::PARAM_STR, "="]]);
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment