blessing-skin-server/app/Http/Controllers/ClosetController.php

86 lines
2.2 KiB
PHP
Raw Normal View History

2016-07-21 22:01:57 +08:00
<?php
2016-08-28 10:05:21 +08:00
namespace App\Http\Controllers;
2016-07-21 22:01:57 +08:00
use View;
use Option;
2016-07-21 22:01:57 +08:00
use App\Models\User;
use App\Models\Closet;
use App\Models\Texture;
2016-07-21 22:01:57 +08:00
use App\Models\ClosetModel;
use Illuminate\Http\Request;
use App\Exceptions\PrettyPageException;
2016-07-21 22:01:57 +08:00
class ClosetController extends Controller
2016-07-21 22:01:57 +08:00
{
/**
* Instance of Closet.
*
* @var \App\Models\Closet
*/
private $closet;
2016-07-21 22:01:57 +08:00
public function __construct()
2016-07-21 22:01:57 +08:00
{
2016-08-28 10:05:21 +08:00
$this->closet = new Closet(session('uid'));
2016-07-21 22:01:57 +08:00
}
public function index(Request $request)
2016-07-21 22:01:57 +08:00
{
$category = $request->input('category', 'skin');
$page = $request->input('page', 1);
2016-07-21 22:01:57 +08:00
$items = array_slice($this->closet->getItems($category), ($page-1)*6, 6);
$total_pages = ceil(count($this->closet->getItems($category)) / 6);
echo View::make('user.closet')->with('items', $items)
->with('page', $page)
->with('category', $category)
->with('total_pages', $total_pages)
2016-08-28 10:05:21 +08:00
->with('user', (new User(session('uid'))))
2016-07-21 22:01:57 +08:00
->render();
}
public function info()
{
2016-09-10 21:39:45 +08:00
return json($this->closet->getItems());
2016-07-21 22:01:57 +08:00
}
public function add(Request $request)
2016-07-21 22:01:57 +08:00
{
$this->validate($request, [
'tid' => 'required|integer',
'name' => 'required|nickname',
]);
2016-07-21 22:01:57 +08:00
if ($this->closet->add($request->tid, $request->name)) {
$t = Texture::find($request->tid);
2016-07-21 22:01:57 +08:00
$t->likes += 1;
$t->save();
2016-09-24 22:49:20 +08:00
return json(trans('user.closet.add.success', ['name' => $request->input('name')]), 0);
2016-09-10 21:39:45 +08:00
} else {
2016-09-24 22:49:20 +08:00
return json(trans('user.closet.add.repeated'), 1);
2016-07-21 22:01:57 +08:00
}
}
public function remove(Request $request)
2016-07-21 22:01:57 +08:00
{
$this->validate($request, [
'tid' => 'required|integer'
]);
2016-07-21 22:01:57 +08:00
if ($this->closet->remove($request->tid)) {
$t = Texture::find($request->tid);
2016-07-21 22:01:57 +08:00
$t->likes = $t->likes - 1;
$t->save();
2016-09-24 22:49:20 +08:00
return json(trans('user.closet.remove.success'), 0);
2016-09-10 21:39:45 +08:00
} else {
2016-09-24 22:49:20 +08:00
return json(trans('user.closet.remove.non-existent'), 0);
2016-07-21 22:01:57 +08:00
}
}
}