API: Add User Info & other framework

This commit is contained in:
Yuan Chiu 2014-11-10 11:05:52 +08:00
parent 3208dfdf96
commit f38a92554c

View File

@ -1,67 +1,134 @@
<?php
require_once __DIR__.'/../../config.php';
require UELEARNING_ROOT.'/vendor/autoload.php';
require_once UELEARNING_LIB_ROOT.'/User/User.php';
use UElearning\User;
use UElearning\Exception;
$app = new \Slim\Slim(array(
'templates.path' => './json'
'templates.path' => './' // 設定Path
));
$app->get('/', function () use ($app) {
$requestType = $app->request->headers->get('Accept');
if(strpos($requestType, 'text/html') !== FALSE) {
include('html/index.html');
}
else {
$app->view(new \JsonApiView());
$app->add(new \JsonApiMiddleware());
// 設定成將使用JSON格式輸出
function APIrequest() {
$app = \Slim\Slim::getInstance();
$app->view(new \JsonApiView());
$app->add(new \JsonApiMiddleware());
}
function APIdisableFunc($app) {
$app->render(405,array(
'error' => true,
'message' => 'This function is not enable.',
'message_cht' => '此功能尚未開放'
));
}
// 取得Client要求的格式
$requestType = $app->request->headers->get('Accept');
// 若要求網頁版
if(strpos($requestType, 'text/html') !== false) {
// API首頁
$app->get('/', function () use ($app) {
include('html/index.html');
});
// 沒有此功能
$app->notFound(function () use ($app) {
include('html/404.html');
});
}
// 要求其他格式時將以JSON為主
else {
// API首頁
$app->get('/', 'APIrequest', function () use ($app) {
$app->render(200, array(
'title' => '',
'version' => '2.0'
'version' => '2.0',
'error' => false,
));
}
});
});
$app->notFound(function () use ($app) {
$requestType = $app->request->headers->get('Accept');
if(strpos($requestType, 'text/html') !== FALSE) {
include('html/404.html');
}
else {
// 沒有此功能
$app->notFound(function () use ($app) {
$app->view(new \JsonApiView());
$app->add(new \JsonApiMiddleware());
$app->render(404,array(
'error' => TRUE,
'message' => 'user not found'
'error' => true,
'message' => 'No this function.',
'message_cht' => '沒有此功能'
));
}
});
});
}
// 內部出錯
$app->error(function (\Exception $e) use ($app) {
//$app->render('error.php');
});
$app->group('/Users', function () use ($app) {
$app->get('/:user_id', function ($user_id) {
echo "Hello, $user_id";
});
// 測試用 Say hello!~~~
$app->get('/Hello/:name', function ($name) use ($app) {
$app->view(new \JsonApiView());
$app->add(new \JsonApiMiddleware());
$app->render(200,array(
'error' => false,
'message' => 'Hello, $name'
));
});
$app->group('/UTokens', function () use ($app) {
// ============================================================================
$app->group('/Users', 'APIrequest', function () use ($app) {
// 建立帳號
$app->post('/', function () use ($app) {
APIdisableFunc($app);
});
// 取得帳號資訊
$app->get('/:user_id', function ($user_id) use ($app) {
try {
$user = new User\User($user_id);
$app->render(200,array(
'user_id' => $user_id,
'nickname' => $user->getNickName(),
'class_name' => $user->getClassName(),
'error' => false
));
}
catch (Exception\UserNoFoundException $e) {
$app->render(404,array(
'user_id' => $user_id,
'error' => true,
'message' => '\''.$user_id.'\' is not found',
'message_cht' => '找不到\''.$user_id.'\'使用者'
));
}
});
$app->post('/:user_id/Login/', function ($user_id) use ($app) {
// TODO: 登入
APIdisableFunc($app);
});
});
$app->group('/UTokens', 'APIrequest', function () use ($app) {
$app->get('/:token', function ($token) {
echo "Login Token: $token";
//echo "Login Token: $token";
// TODO: 登入Token
APIdisableFunc($app);
});
});
// Say hello!~~~
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();