%PDF- %PDF-
Direktori : /var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/ |
Current File : //var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/PostsController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Posts\CreatePostRequest; use App\Models\App\AppField; use App\Models\Post; use App\Models\User; use App\Transformers\FieldTransformer; use App\Transformers\PostTransformer; use Illuminate\Http\Request; class PostsController extends ApiController { /** * @var User. */ protected $user; /** * @var FieldTransformer */ private $transformer; /** * PostsController constructor. * @param PostTransformer $transformer */ public function __construct(PostTransformer $transformer) { $this->transformer = $transformer; $this->user = auth() ->guard('api') ->user(); } public function index(Request $request) { $categoriesId = $this->user->categories() ->pluck('category_id'); $posts = Post::query()->whereIn('category_id', $categoriesId); $posts = $posts->orderBy('created_at', 'DESC'); $posts = $posts->paginate($request->get('perPage')); return $this->withPaginated($posts, $this->transformer); } public function show(AppField $field) { return $this->item($field, $this->transformer); } public function store(CreatePostRequest $request) { try { $data = $request->only([ 'title', 'type', 'expires_at', 'fieldId', 'categoryId', ]); $post = Post::createItem($data); return $this->item($post, $this->transformer); } catch (\Exception $e) { return $this->wrongArguments([ 'message' => $e->getMessage(), ]); } } }