<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019-06-15
 * Time: 10:53
 */

namespace App\Http\Controllers\V1;


use App\Repositories\CategoryRepository;
use App\Transformers\CategoryTransformer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use League\Fractal\Manager;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection;

class CategoryController extends Controller {
    public function __construct(CategoryRepository $categoryRepository) {
        $this->categoryRepository = $categoryRepository;
    }
    //列表
    public function index(Request $request) {
        $categoryList = $this->categoryRepository->lists($request->all());
        $fractal = new Manager();
        $resource = new Collection($categoryList, new CategoryTransformer());
        $resource->setPaginator(new IlluminatePaginatorAdapter($categoryList));
        $data = $fractal->createData($resource)->toArray();
        return jsonSuccess($data);
    }
    //获取多个话题
    public function getTopics(Request $request){
        $data = $request->only('ids');
        $validator = Validator::make($data, [
            'ids' => 'required|string',
        ]);
        if ($validator->fails()) {
            return jsonError($validator->errors()->first());
        }
        $categoryList = $this->categoryRepository->getTopics($data['ids']);
        return jsonSuccess($categoryList);
    }
}