/**
  * 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);