Skip to content
Snippets Groups Projects
PriorityController.php 3.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • namespace Priority\controllers;
    
    
    use Core\Models\ServiceModel;
    
    use Priority\models\PriorityModel;
    
    use Respect\Validation\Validator;
    
    Damien's avatar
    Damien committed
    use Slim\Http\Request;
    use Slim\Http\Response;
    
    
    class PriorityController
    {
    
    Damien's avatar
    Damien committed
        public function get(Request $request, Response $response)
    
            return $response->withJson(['priorities' => PriorityModel::get()]);
    
    Damien's avatar
    Damien committed
        public function getById(Request $request, Response $response, array $aArgs)
    
        {
            $priotity = PriorityModel::getById(['id' => $aArgs['id']]);
    
            if(empty($priotity)){
                return $response->withStatus(400)->withJson(['errors' => 'Priority not found']);
            }
    
    
            return $response->withJson(['priority'  => $priotity]);
    
    Damien's avatar
    Damien committed
        public function create(Request $request, Response $response)
    
    Damien's avatar
    Damien committed
            if (!ServiceModel::hasService(['id' => 'admin_priorities', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
    
                return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
            }
    
    
            $data = $request->getParams();
            $check = Validator::stringType()->notEmpty()->validate($data['label']);
            $check = $check && Validator::stringType()->notEmpty()->validate($data['color']);
            $check = $check && Validator::intVal()->notEmpty()->validate($data['delays']);
            $check = $check && Validator::boolType()->validate($data['working_days']);
            if (!$check) {
                return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
            }
    
            $data['working_days'] = $data['working_days'] ? 'true' : 'false';
    
            $id = PriorityModel::create($data);
    
    Damien's avatar
    Damien committed
            return $response->withJson(['priority'  => $id]);
    
    Damien's avatar
    Damien committed
        public function update(Request $request, Response $response, array $aArgs)
    
    Damien's avatar
    Damien committed
            if (!ServiceModel::hasService(['id' => 'admin_priorities', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
    
                return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
            }
    
            $data = $request->getParams();
    
            $check = Validator::stringType()->notEmpty()->validate($data['label']);
            $check = $check && Validator::stringType()->notEmpty()->validate($data['color']);
            $check = $check && Validator::intVal()->notEmpty()->validate($data['delays']);
    
            $check = $check && Validator::boolType()->validate($data['working_days']);
    
            if (!$check) {
                return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
            }
    
            $data['id'] = $aArgs['id'];
    
            $data['working_days'] = empty($data['working_days']) ? 'false' : 'true';
    
            PriorityModel::update($data);
    
    
    Damien's avatar
    Damien committed
            return $response->withJson(['success' => 'success']);
    
    Damien's avatar
    Damien committed
        public function delete(Request $request, Response $response, array $aArgs)
    
    Damien's avatar
    Damien committed
            if (!ServiceModel::hasService(['id' => 'admin_priorities', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
    
                return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
            }
    
            PriorityModel::delete(['id' => $aArgs['id']]);
    
    Damien's avatar
    Damien committed
            return $response->withJson(['priorities' => PriorityModel::get()]);