%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/app/Http/Controllers/ |
Current File : /home/graphicd/public_html/vebto/app/Http/Controllers/StarredEntriesController.php |
<?php namespace App\Http\Controllers; use App\FileEntry; use Common\Core\BaseController; use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Common\Tags\Tag; class StarredEntriesController extends BaseController { const TAG_NAME = 'starred'; /** * @var Request */ private $request; /** * @var Tag */ private $tag; /** * @param Request $request * @param Tag $tag */ public function __construct(Request $request, Tag $tag) { $this->request = $request; $this->tag = $tag; } /** * Attach "starred" tag to specified entries. * * @return JsonResponse */ public function add() { $entryIds = $this->request->get('entryIds'); $this->validate($this->request, [ 'entryIds' => 'required|array|exists:file_entries,id' ]); $this->authorize('update', [FileEntry::class, $entryIds]); $tag = $this->tag->where('name', self::TAG_NAME)->first(); $tag->attachEntries($entryIds, $this->request->user()->id); return $this->success(['tag' => $tag]); } /** * Detach "starred" tag from specified entries. * * @return JsonResponse */ public function remove() { $entryIds = $this->request->get('entryIds'); $this->validate($this->request, [ 'entryIds' => 'required|array|exists:file_entries,id' ]); $this->authorize('update', [FileEntry::class, $entryIds]); $tag = $this->tag->where('name', self::TAG_NAME)->first(); $tag->detachEntries($entryIds, $this->request->user()->id); return $this->success(['tag' => $tag]); } }