add api: token

This commit is contained in:
Yuan Chiu 2014-11-21 01:18:09 +08:00
parent fa99db4618
commit a9003b5908
2 changed files with 119 additions and 7 deletions

View File

@ -27,7 +27,7 @@ function APIrequest() {
$app->get('/hello/:name', 'APIrequest', function ($name) use ($app) { $app->get('/hello/:name', 'APIrequest', function ($name) use ($app) {
$app->render(200,array( $app->render(200,array(
'error' => false, 'error' => false,
'msg' => 'Hello, $name' 'msg' => 'Hello, '.$name
)); ));
}); });
@ -98,7 +98,6 @@ $app->group('/users', 'APIrequest', function () use ($app, $app_template) {
) )
); );
} }
if(!isset($browser)) { $browser = 'api'; }
// 進行登入 // 進行登入
try { try {
@ -144,6 +143,7 @@ $app->group('/users', 'APIrequest', function () use ($app, $app_template) {
)); ));
} }
}); });
}); });
$app->group('/tokens', 'APIrequest', function () use ($app, $app_template) { $app->group('/tokens', 'APIrequest', function () use ($app, $app_template) {
@ -152,10 +152,102 @@ $app->group('/tokens', 'APIrequest', function () use ($app, $app_template) {
* 取得已登入的帳號資訊 * 取得已登入的帳號資訊
* GET http://localhost/api/v2/tokens/{登入Token} * GET http://localhost/api/v2/tokens/{登入Token}
*/ */
$app->get('/:token', function ($token) use ($app, $app_template) { $app->get('/:token', function ($token) use ($app) {
//echo "Login Token: $token";
// TODO: 登入Token try {
$app_template->noEnableFunc(); // 正常寫法
$userSession = new User\UserSession();
$user = $userSession->getUser($token);
$app->render(200,array(
'token' => $token,
'user_id' => $user->getId(),
'nickname' => $user->getNickName(),
'group_id' => $user->getGroupID(),
'group_name' => $user->getGroupName(),
'class_id' => $user->getClassId(),
'class_name' => $user->getClassName(),
'enable' => $user->isEnable(),
'build_time' => $user->getCreateTime(),
'modify_time' => $user->getModifyTime(),
'learnStyle_mode' => $user->getLearnStyle(),
'material_mode' => $user->getMaterialStyle(),
'enable_noAppoint' => $user->isEnableNoAppoint(),
'realname' => $user->getRealName(),
'email' => $user->getEmail(),
'memo' => $user->getMemo(),
'error' => false
));
}
catch (Exception\LoginTokenNoFoundException $e) {
$app->render(404,array(
'token' => $token,
'error' => true,
'msg' => 'No \''.$token.'\' session. Please login again.',
'msg_cht' => '沒有\''.$token.'\'登入階段,請重新登入'
));
}
});
/*
* 登出此登入階段
* DELETE http://localhost/api/v2/tokens/{登入Token}
*/
$app->delete('/:token', function ($token) use ($app) {
try {
$session = new User\UserSession();
$user_id = $session->getUserId($token);
$session->logout($token);
$app->render(201,array(
'token' => $token,
'user_id' => $user_id,
'error' => false,
'msg' => '\''.$user_id.'\' this session is logout.',
'msg_cht' => '\''.$user_id.'\'此登入階段已登出'
));
}
catch (Exception\LoginTokenNoFoundException $e) {
$app->render(404,array(
'token' => $token,
'error' => true,
'msg' => 'No \''.$token.'\' session. Please login again.',
'msg_cht' => '沒有\''.$token.'\'登入階段,請重新登入'
));
}
});
/*
* 登出此此使用者其他登入階段
* DELETE http://localhost/api/v2/tokens/{登入Token}/session/other
*/
$app->delete('/:token/session/other', function ($token) use ($app) {
try {
$session = new User\UserSession();
$user_id = $session->getUserId($token);
$logoutTotal = $session->logoutOtherSession($token);
$inLoginTotal = $session->getCurrentLoginTotalByUserId($user_id);
$app->render(201,array(
'token' => $token,
'user_id' => $user_id,
'logout_total' => $logoutTotal,
'login_total' => $inLoginTotal,
'error' => false,
'msg' => '\''.$user_id.'\' other session is logout.',
'msg_cht' => '\''.$user_id.'\'此登入階段之外的皆已登出'
));
}
catch (Exception\LoginTokenNoFoundException $e) {
$app->render(404,array(
'token' => $token,
'error' => true,
'msg' => 'No \''.$token.'\' session. Please login again.',
'msg_cht' => '沒有\''.$token.'\'登入階段,請重新登入'
));
}
}); });
}); });

View File

@ -247,7 +247,7 @@ class User {
* @return string 班級ID * @return string 班級ID
* @since 2.0.0 * @since 2.0.0
*/ */
public function getClass(){ public function getClassId(){
return $this->queryResultArray['class_id']; return $this->queryResultArray['class_id'];
} }
@ -380,6 +380,26 @@ class User {
$this->setUpdate('material_mode', $style); $this->setUpdate('material_mode', $style);
} }
/**
* 取得是否允需此人進行非預約學習
*
* @return bool 是否允許非預約學習
* @since 2.0.0
*/
public function isEnableNoAppoint(){
return $this->queryResultArray['enable_noAppoint'];
}
/**
* 設定是否允需此人進行非預約學習
*
* @param bool 是否允許非預約學習
* @since 2.0.0
*/
public function setEnableNoAppoint($value){
$this->setUpdate('enable_noAppoint', $value);
}
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
/** /**