add json helper function

This commit is contained in:
printempw 2016-09-10 21:39:45 +08:00
parent 97539d4178
commit 6c1311db5e
10 changed files with 124 additions and 95 deletions

View File

@ -47,12 +47,12 @@ class AdminController extends Controller
$updater = new \Updater(\App::version());
if ($updater->newVersionAvailable()) {
View::json([
return json([
'new_version_available' => true,
'latest_version' => $updater->latest_version
]);
} else {
View::json([
return json([
'new_version_available' => false,
'latest_version' => $updater->current_version
]);
@ -142,7 +142,7 @@ class AdminController extends Controller
$color_scheme = str_replace('_', '-', $request->input('color_scheme'));
\Option::set('color_scheme', $color_scheme);
View::json('修改配色成功', 0);
return json('修改配色成功', 0);
}
$user = new User($request->input('uid'));
@ -150,7 +150,7 @@ class AdminController extends Controller
$cur_user = new User(session('uid'));
if (!$user->is_registered)
View::json('用户不存在', 1);
return json('用户不存在', 1);
if ($action == "email") {
$this->validate($request, [
@ -158,7 +158,7 @@ class AdminController extends Controller
]);
if ($user->setEmail($request->input('email')))
View::json('邮箱修改成功', 0);
return json('邮箱修改成功', 0);
} elseif ($action == "nickname") {
$this->validate($request, [
@ -166,7 +166,7 @@ class AdminController extends Controller
]);
if ($user->setNickName($request->input('nickname')))
View::json('昵称已成功设置为 '.$request->input('nickname'), 0);
return json('昵称已成功设置为 '.$request->input('nickname'), 0);
} elseif ($action == "password") {
$this->validate($request, [
@ -174,7 +174,7 @@ class AdminController extends Controller
]);
if ($user->changePasswd($request->input('password')))
View::json('密码修改成功', 0);
return json('密码修改成功', 0);
} elseif ($action == "score") {
$this->validate($request, [
@ -182,20 +182,20 @@ class AdminController extends Controller
]);
if ($user->setScore($request->input('score')))
View::json('积分修改成功', 0);
return json('积分修改成功', 0);
} elseif ($action == "ban") {
if ($user->getPermission() == "1") {
if ($cur_user->getPermission() != "2")
View::json('非超级管理员无法封禁普通管理员');
return json('非超级管理员无法封禁普通管理员');
} elseif ($user->getPermission() == "2") {
View::json('超级管理员无法被封禁');
return json('超级管理员无法被封禁');
}
$permission = $user->getPermission() == "-1" ? "0" : "-1";
if ($user->setPermission($permission)) {
View::json([
return json([
'errno' => 0,
'msg' => '账号已被' . ($permission == '-1' ? '封禁' : '解封'),
'permission' => $user->getPermission()
@ -204,15 +204,15 @@ class AdminController extends Controller
} elseif ($action == "admin") {
if ($cur_user->getPermission() != "2")
View::json('非超级管理员无法进行此操作');
return json('非超级管理员无法进行此操作');
if ($user->getPermission() == "2")
View::json('超级管理员无法被解除');
return json('超级管理员无法被解除');
$permission = $user->getPermission() == "1" ? "0" : "1";
if ($user->setPermission($permission)) {
View::json([
return json([
'errno' => 0,
'msg' => '账号已被' . ($permission == '1' ? '设为' : '解除') . '管理员',
'permission' => $user->getPermission()
@ -221,10 +221,10 @@ class AdminController extends Controller
} elseif ($action == "delete") {
if ($user->delete())
View::json('账号已被成功删除', 0);
return json('账号已被成功删除', 0);
} else {
View::json('非法参数', 1);
return json('非法参数', 1);
}
}
@ -244,7 +244,7 @@ class AdminController extends Controller
]);
if ($player->setPreference($request->input('preference')))
View::json('角色 '.$player->player_name.' 的优先模型已更改至 '.$request->input('preference'), 0);
return json('角色 '.$player->player_name.' 的优先模型已更改至 '.$request->input('preference'), 0);
} elseif ($action == "texture") {
$this->validate($request, [
@ -253,10 +253,10 @@ class AdminController extends Controller
]);
if (!Texture::find($request->tid))
View::json("材质 tid.{$request->tid} 不存在", 1);
return json("材质 tid.{$request->tid} 不存在", 1);
if ($player->setTexture(['tid_'.$request->model => $request->tid]))
View::json("角色 {$player->player_name} 的材质修改成功", 0);
return json("角色 {$player->player_name} 的材质修改成功", 0);
} elseif ($action == "owner") {
$this->validate($request, [
@ -267,16 +267,16 @@ class AdminController extends Controller
$user = new User($request->input('uid'));
if (!$user->is_registered)
View::json('不存在的用户', 1);
return json('不存在的用户', 1);
if ($player->setOwner($request->input('uid')))
View::json("角色 $player->player_name 已成功让渡至 ".$user->getNickName(), 0);
return json("角色 $player->player_name 已成功让渡至 ".$user->getNickName(), 0);
} elseif ($action == "delete") {
if (PlayerModel::where('pid', $request->input('pid'))->delete())
View::json('角色已被成功删除', 0);
return json('角色已被成功删除', 0);
} else {
View::json('非法参数', 1);
return json('非法参数', 1);
}
}

View File

@ -32,7 +32,7 @@ class AuthController extends Controller
} elseif ($request->has('username')) {
$auth_type = "username";
} else {
View::json('邮箱或角色名格式错误', 3);
return json('邮箱或角色名格式错误', 3);
}
// instantiate user
@ -42,11 +42,11 @@ class AuthController extends Controller
if (session('login_fails', 0) > 3) {
if (strtolower($request->input('captcha')) != strtolower(session('phrase')))
View::json('验证码填写错误', 1);
return json('验证码填写错误', 1);
}
if (!$user->is_registered) {
View::json('用户不存在哦', 2);
return json('用户不存在哦', 2);
} else {
if ($user->checkPasswd($request->input('password'))) {
Session::forget('login_fails');
@ -59,7 +59,7 @@ class AuthController extends Controller
setcookie('uid', $user->uid, time()+$time, '/');
setcookie('token', $user->getToken(), time()+$time, '/');
View::json([
return json([
'errno' => 0,
'msg' => '登录成功,欢迎回来~',
'token' => $user->getToken()
@ -68,7 +68,7 @@ class AuthController extends Controller
$fails = session('login_fails', 0);
Session::put('login_fails', $fails + 1);
View::json([
return json([
'errno' => 1,
'msg' => '邮箱或密码不对哦~',
'login_fails' => session('login_fails')
@ -85,9 +85,9 @@ class AuthController extends Controller
Session::flush();
View::json('登出成功~', 0);
return json('登出成功~', 0);
} else {
View::json('并没有有效的 session', 1);
return json('并没有有效的 session', 1);
}
}
@ -103,7 +103,7 @@ class AuthController extends Controller
public function handleRegister(Request $request)
{
if (strtolower($request->input('captcha')) != strtolower(session('phrase')))
View::json('验证码填写错误', 1);
return json('验证码填写错误', 1);
$this->validate($request, [
'email' => 'required|email',
@ -129,20 +129,20 @@ class AuthController extends Controller
setcookie('uid', $user->uid, time() + 3600, '/');
setcookie('token', $user->getToken(), time() + 3600, '/');
View::json([
return json([
'errno' => 0,
'msg' => '注册成功,正在跳转~',
'token' => $user->getToken()
]);
} else {
View::json('你最多只能注册 '.Option::get('regs_per_ip').' 个账户哦', 7);
return json('你最多只能注册 '.Option::get('regs_per_ip').' 个账户哦', 7);
}
} else {
View::json('残念。。本皮肤站已经关闭注册咯 QAQ', 7);
return json('残念。。本皮肤站已经关闭注册咯 QAQ', 7);
}
} else {
View::json('这个邮箱已经注册过啦,换一个吧', 5);
return json('这个邮箱已经注册过啦,换一个吧', 5);
}
}
@ -158,18 +158,18 @@ class AuthController extends Controller
public function handleForgot(Request $request)
{
if (strtolower($request->input('captcha')) != strtolower(session('phrase')))
View::json('验证码填写错误', 1);
return json('验证码填写错误', 1);
if (config('mail.host') == "")
View::json('本站已关闭重置密码功能', 1);
return json('本站已关闭重置密码功能', 1);
if (Session::has('last_mail_time') && (time() - session('last_mail_time')) < 60)
View::json('你邮件发送得太频繁啦,过 60 秒后再点发送吧', 1);
return json('你邮件发送得太频繁啦,过 60 秒后再点发送吧', 1);
$user = new User(null, ['email' => $request->input('email')]);
if (!$user->is_registered)
View::json('该邮箱尚未注册', 1);
return json('该邮箱尚未注册', 1);
$uid = $user->uid;
$token = base64_encode($user->getToken().substr(time(), 4, 6).Utils::generateRndString(16));
@ -184,12 +184,12 @@ class AuthController extends Controller
$m->to($request->input('email'))->subject("重置您在 $site_name 上的账户密码");
});
} catch(\Exception $e) {
View::json('邮件发送失败,详细信息:'.$e->getMessage(), 2);
return json('邮件发送失败,详细信息:'.$e->getMessage(), 2);
}
Session::put('last_mail_time', time());
View::json('邮件已发送,一小时内有效,请注意查收.', 0);
return json('邮件已发送,一小时内有效,请注意查收.', 0);
}
public function reset()
@ -229,7 +229,7 @@ class AuthController extends Controller
$user->changePasswd($request->input('password'));
View::json('密码重置成功', 0);
return json('密码重置成功', 0);
}

View File

@ -44,7 +44,7 @@ class ClosetController extends Controller
public function info()
{
View::json($this->closet->getItems());
return json($this->closet->getItems());
}
public function add(Request $request)
@ -59,7 +59,9 @@ class ClosetController extends Controller
$t->likes += 1;
$t->save();
View::json('材质 '.$request->input('name').' 收藏成功~', 0);
return json('材质 '.$request->input('name').' 收藏成功~', 0);
} else {
return json('你已经收藏过这个材质啦', 1);
}
}
@ -74,7 +76,9 @@ class ClosetController extends Controller
$t->likes = $t->likes - 1;
$t->save();
View::json('材质已从衣柜中移除', 0);
return json('材质已从衣柜中移除', 0);
} else {
return json('衣柜中不存在此材质', 0);
}
}

View File

@ -52,10 +52,10 @@ class PlayerController extends Controller
$player_name = $request->input('player_name');
if (!PlayerModel::where('player_name', $player_name)->get()->isEmpty())
View::json('该角色名已经被其他人注册掉啦', 6);
return json('该角色名已经被其他人注册掉啦', 6);
if ($this->user->getScore() < Option::get('score_per_player'))
View::json('积分不够添加角色啦', 7);
return json('积分不够添加角色啦', 7);
$player = new PlayerModel();
$player->uid = $this->user->uid;
@ -68,7 +68,7 @@ class PlayerController extends Controller
$this->user->setScore(Option::get('score_per_player'), 'minus');
View::json("成功添加了角色 $player_name", 0);
return json("成功添加了角色 $player_name", 0);
}
public function delete(Request $request)
@ -78,7 +78,7 @@ class PlayerController extends Controller
if ($this->player->delete()) {
$this->user->setScore(Option::get('score_per_player'), 'plus');
View::json("角色 $player_name 已被删除", 0);
return json("角色 $player_name 已被删除", 0);
}
}
@ -96,12 +96,12 @@ class PlayerController extends Controller
$new_player_name = $request->input('new_player_name');
if (!PlayerModel::where('player_name', $new_player_name)->get()->isEmpty())
View::json('此角色名已被他人使用,换一个吧~', 6);
return json('此角色名已被他人使用,换一个吧~', 6);
$old_player_name = $this->player->player_name;
$this->player->rename($new_player_name);
View::json("角色 $old_player_name 已更名为 $new_player_name", 0);
return json("角色 $old_player_name 已更名为 $new_player_name", 0);
}
/**
@ -114,20 +114,20 @@ class PlayerController extends Controller
]);
if (!($texture = Texture::find($tid)))
View::json('材质不存在', 6);
return json('材质不存在', 6);
$field_name = "tid_".$texture->type;
$this->player->setTexture([$field_name => $tid]);
View::json('材质已成功应用至角色 '.$this->player->player_name, 0);
return json('材质已成功应用至角色 '.$this->player->player_name, 0);
}
public function clearTexture()
{
$this->player->clearTexture();
View::json('角色 '.$this->player->player_name.' 的材质已被成功重置', 0);
return json('角色 '.$this->player->player_name.' 的材质已被成功重置', 0);
}
public function setPreference(Request $request)
@ -138,7 +138,7 @@ class PlayerController extends Controller
$this->player->setPreference($request->preference);
View::json('角色 '.$this->player->player_name.' 的优先模型已更改至 '.$request->preference, 0);
return json('角色 '.$this->player->player_name.' 的优先模型已更改至 '.$request->preference, 0);
}
}

View File

@ -119,7 +119,7 @@ class SkinlibController extends Controller
public function info($tid)
{
View::json(Texture::find($tid)->toArray());
return json(Texture::find($tid)->toArray());
}
public function upload()
@ -144,14 +144,14 @@ class SkinlibController extends Controller
$cost = $t->size * (($t->public == "1") ? Option::get('score_per_storage') : Option::get('private_score_per_storage'));
if ($this->user->getScore() < $cost)
View::json('积分不够啦', 7);
return json('积分不够啦', 7);
$results = Texture::where('hash', $t->hash)->get();
if (!$results->isEmpty()) {
foreach ($results as $result) {
if ($result->type == $t->type) {
View::json([
return json([
'errno' => 0,
'msg' => '已经有人上传过这个材质了,直接添加到衣柜使用吧~',
'tid' => $result->tid
@ -165,7 +165,7 @@ class SkinlibController extends Controller
$this->user->setScore($cost, 'minus');
if ($this->user->closet->add($t->tid, $t->name)) {
View::json([
return json([
'errno' => 0,
'msg' => '材质 '.$request->input('name').' 上传成功',
'tid' => $t->tid
@ -178,10 +178,10 @@ class SkinlibController extends Controller
$result = Texture::find($request->tid);
if (!$result)
View::json('材质不存在', 1);
return json('材质不存在', 1);
if ($result->uploader != $this->user->uid && !$this->user->is_admin)
View::json('你不是这个材质的上传者哦', 1);
return json('你不是这个材质的上传者哦', 1);
// check if file occupied
if (Texture::where('hash', $result['hash'])->count() == 1)
@ -190,7 +190,7 @@ class SkinlibController extends Controller
$this->user->setScore($result->size * Option::get('score_per_storage'), 'plus');
if ($result->delete())
View::json('材质已被成功删除', 0);
return json('材质已被成功删除', 0);
}
public function privacy($tid, Request $request)
@ -198,13 +198,13 @@ class SkinlibController extends Controller
$t = Texture::find($request->tid);
if (!$t)
View::json('材质不存在', 1);
return json('材质不存在', 1);
if ($t->uploader != $this->user->uid && !$this->user->is_admin)
View::json('你不是这个材质的上传者哦', 1);
return json('你不是这个材质的上传者哦', 1);
if ($t->setPrivacy(!$t->public)) {
View::json([
return json([
'errno' => 0,
'msg' => '材质已被设为'.($t->public == "0" ? "隐私" : "公开"),
'public' => $t->public
@ -221,15 +221,15 @@ class SkinlibController extends Controller
$t = Texture::find($request->input('tid'));
if (!$t)
View::json('材质不存在', 1);
return json('材质不存在', 1);
if ($t->uploader != $this->user->uid && !$this->user->is_admin)
View::json('你不是这个材质的上传者哦', 1);
return json('你不是这个材质的上传者哦', 1);
$t->name = $request->input('new_name');
if ($t->save()) {
View::json('材质名称已被成功设置为'.$request->input('new_name'), 0);
return json('材质名称已被成功设置为'.$request->input('new_name'), 0);
}
}
@ -249,7 +249,7 @@ class SkinlibController extends Controller
// if error occured while uploading file
if ($_FILES['file']["error"] > 0)
View::json($_FILES['file']["error"], 1);
return json($_FILES['file']["error"], 1);
$type = $request->input('type');
$size = getimagesize($_FILES['file']["tmp_name"]);
@ -257,12 +257,12 @@ class SkinlibController extends Controller
if ($type == "steve" || $type == "alex") {
if ($ratio != 2 && $ratio != 1)
View::json("不是有效的皮肤文件(宽 {$size[0]},高 {$size[1]}", 1);
return json("不是有效的皮肤文件(宽 {$size[0]},高 {$size[1]}", 1);
} elseif ($type == "cape") {
if ($ratio != 2)
View::json("不是有效的披风文件(宽 {$size[0]},高 {$size[1]}", 1);
return json("不是有效的披风文件(宽 {$size[0]},高 {$size[1]}", 1);
} else {
View::json('非法参数', 1);
return json('非法参数', 1);
}
}

View File

@ -33,14 +33,14 @@ class UserController extends Controller
public function sign()
{
if ($aquired_score = $this->user->sign()) {
View::json([
return json([
'errno' => 0,
'msg' => "签到成功,获得了 $aquired_score 积分~",
'score' => $this->user->getScore(),
'remaining_time' => $this->user->canSign(true)
]);
} else {
View::json($this->user->canSign(true).' 小时后才能再次签到哦~', 1);
return json($this->user->canSign(true).' 小时后才能再次签到哦~', 1);
}
}
@ -66,7 +66,7 @@ class UserController extends Controller
$nickname = $request->input('new_nickname');
if ($this->user->setNickName($nickname))
View::json("昵称已成功设置为 $nickname", 0);
return json("昵称已成功设置为 $nickname", 0);
break;
@ -77,10 +77,10 @@ class UserController extends Controller
]);
if (!$this->user->checkPasswd($request->input('current_password')))
View::json('原密码错误', 1);
return json('原密码错误', 1);
if ($this->user->changePasswd($request->input('new_password')))
View::json('密码修改成功,请重新登录', 0);
return json('密码修改成功,请重新登录', 0);
break;
@ -91,10 +91,10 @@ class UserController extends Controller
]);
if (!$this->user->checkPasswd($request->input('password')))
View::json('密码错误', 1);
return json('密码错误', 1);
if ($this->user->setEmail($request->input('new_email')))
View::json('邮箱修改成功,请重新登录', 0);
return json('邮箱修改成功,请重新登录', 0);
break;
@ -104,7 +104,7 @@ class UserController extends Controller
]);
if (!$this->user->checkPasswd($request->input('password')))
View::json('密码错误', 1);
return json('密码错误', 1);
if ($this->user->delete()) {
setcookie('uid', '', time() - 3600, '/');
@ -112,13 +112,13 @@ class UserController extends Controller
Session::flush();
View::json('账号已被成功删除', 0);
return json('账号已被成功删除', 0);
}
break;
default:
View::json('非法参数', 1);
return json('非法参数', 1);
break;
}
@ -144,13 +144,13 @@ class UserController extends Controller
if ($result) {
if ($result->type == "cape")
View::json('披风可不能设置为头像哦~', 1);
return json('披风可不能设置为头像哦~', 1);
if ($this->user->setAvatar($request->input('tid'))) {
View::json('设置成功!', 0);
return json('设置成功!', 0);
}
} else {
View::json('材质不存在。', 1);
return json('材质不存在。', 1);
}
}

View File

@ -94,7 +94,7 @@ class Closet
{
foreach ($this->textures as $item) {
if ($item['tid'] == $tid)
View::json('你已经收藏过这个材质啦', 1);
return false;
}
$this->textures[] = array(
@ -138,7 +138,7 @@ class Closet
$offset++;
}
View::json('The texture is not in the closet.', 1);
return false;
}
private function checkTextureExist($tid)

View File

@ -77,14 +77,14 @@ class Player
public function setTexture(Array $tids)
{
if (!isset($tids['tid_steve']) && !isset($tids['tid_alex']) && !isset($tids['tid_cape']))
{
View::json('非法参数', 1);
}
$map = ['steve', 'alex', 'cape'];
$this->model->tid_steve = isset($tids['tid_steve']) ? $tids['tid_steve'] : $this->model['tid_steve'];
$this->model->tid_alex = isset($tids['tid_alex']) ? $tids['tid_alex'] : $this->model['tid_alex'];
$this->model->tid_cape = isset($tids['tid_cape']) ? $tids['tid_cape'] : $this->model['tid_cape'];
foreach ($map as $model) {
$property = "tid_$model";
if (isset($tids[$property])) {
$this->model->$property = $tids[$property];
}
}
$this->model->last_modified = Utils::getTimeFormatted();

View File

@ -57,3 +57,21 @@ if (! function_exists('assets')) {
return url("assets/$relative_uri")."?v=".config('app.version');
}
}
if (! function_exists('json')) {
function json()
{
@header('Content-type: application/json; charset=utf-8');
$args = func_get_args();
if (count($args) == 1 && is_array($args[0])) {
return Response::json($args[0]);
} elseif(count($args) == 2) {
return Response::json([
'errno' => $args[1],
'msg' => $args[0]
]);
}
}
}

View File

@ -82,6 +82,11 @@ return [
'username' => ':attribute format is invalid.',
'nickname' => ':attribute format is invalid.',
'playername' => 'The :attribute may only contain letters, numbers and dashes.',
'pname_chinese' => 'The :attribute may only contain letters, numbers, dashes and chinese characters.',
'no_special_chars' => 'The :attribute must not contain special characters.',
'preference' => 'The :attribute must be default or slim.',
'model' => 'The :attribute must be steve, alex or cape.',
/*
|--------------------------------------------------------------------------
@ -111,6 +116,8 @@ return [
|
*/
'attributes' => [],
'attributes' => [
'player_name' => 'Player Name'
],
];