/** * Disable issued token to a user * * @param int $user_id ID of a user * @param Slim $app * @return string */ public static function logout($user_id, Slim $app) { $app->response->headers->set('Content-Type', 'application/json'); try { $user = User::find($user_id); } catch (RecordNotFoundException $e) { $app->halt(404, json_encode(['message' => 'Not Registered'])); } if (Setup::unsetToken($user) === 1) { return json_encode(['message' => 'Logged out']); } else { $app->halt3(503); } }
/** * Verify a resource owner * * @param $id * @param Slim $app * @return bool */ public static function grantAccess($id, Slim $app) { try { $emoji = Emoji::find($id); } catch (RecordNotFoundException $e) { $app->response->headers->set('Content-Type', 'application/json'); $app->halt(404, json_encode(['message' => 'Not Found'])); } if ($emoji->getRecord()['dbData']['user_id'] === Setup::getUserId($app)) { return true; } else { $app->response->headers->set('Content-Type', 'application/json'); $app->halt(401, json_encode(['message' => 'Not yours'])); } }
echo Authenticate::logout(Setup::getUserId($app), $app); }); /**------------Emoji Management------------**/ // Emoji retrieval route $app->get('/emojis/:id', function ($id) use($app) { echo EmojiController::get($id, $app); }); // Emoji collection retrieval route $app->get('/emojis', function () use($app) { echo EmojiController::getAll($app); }); // Emoji creation route $app->post('/emojis', function () use($app) { // Token validation middleware Authorize::validateToken($app); echo EmojiController::create(Setup::getUserId($app), $app); }); // Emoji update route via PUT $app->put('/emojis/:id', function ($id) use($app) { // Token validation middleware Authorize::validateToken($app); // Access grant middleware Authorize::grantAccess($id, $app); echo EmojiController::update($id, $app); }); // Emoji update route via PATCH $app->patch('/emojis/:id', function ($id) use($app) { // Token validation middleware Authorize::validateToken($app); // Access grant middleware Authorize::grantAccess($id, $app);