/**
  * 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);
     }
 }
 /**
  * Get user instance with supplied token
  *
  * @param Slim $app
  * @return object|string
  */
 public static function getUserWithToken(Slim $app)
 {
     $token = $app->request->headers('Authorization');
     if (isset($token)) {
         try {
             $user = User::where('token', $token);
         } catch (RecordNotFoundException $e) {
             $app->response->headers->set('Content-Type', 'application/json');
             $app->halt(401, json_encode(['message' => 'Invalid Token']));
         }
         return $user;
     } else {
         $app->response->headers->set('Content-Type', 'application/json');
         $app->halt(401, json_encode(['message' => 'Empty Token']));
     }
 }
 /**
  * Delete user's account
  *
  * @param string $username username of a user
  * @param Slim $app
  * @return string
  */
 public static function delete($username, Slim $app)
 {
     $app->response->headers->set('Content-Type', 'application/json');
     try {
         $user = User::where('username', $username);
     } catch (RecordNotFoundException $e) {
         $app->halt(404, json_encode(['message' => 'Not Found']));
     }
     if (is_object($user)) {
         $fields = $app->request->isPut() ? $app->request->put() : $app->request->patch();
         if (md5($fields['password']) == $user->getRecord()['dbData']['password']) {
             $check = User::destroy($user->getRecord()['dbData']['id']);
             if ($check === 1) {
                 return json_encode(['message' => 'Account Deleted']);
             } else {
                 $app->halt(304);
             }
         } else {
             $app->halt(401);
         }
     } else {
         $app->halt(503);
     }
 }