/** * FileController constructor. * @param ObjectRepository $repository */ public function __construct(ObjectRepository $repository, Request $request) { parent::__construct(); $this->repository = $repository; $this->repository->pushCriteria(new PoolCriteria($request->pool)); $this->middleware("permission:documents::pool-{$request->pool}-read", ['only' => ['index', 'get']]); }
/** * @param Request $request * @return mixed */ public function list_folder(ApiRequest $request) { if (!$this->user->can(["documents:unmanaged::pool-{$request->pool}-read", "documents:unmanaged::pool-{$request->pool}-write"])) { throw new \Dingo\Api\Exception\ResourceException('Permission denied.'); } $parent = $this->getParent($request); $this->repository->pushCriteria(new ParentCriteria($request->input('parent_uid', null))); $this->repository->pushCriteria(new withTrashCriteria($request->input('with_trash', false))); $objects = $this->repository->paginate(100); $meta = ['parent_uid' => $parent ? $parent->parent_uid : null, 'with_trash' => (bool) $request->input('with_trash', false), 'objects' => ['total' => $objects->count(), 'files' => $objects->where('tag', 'file')->count(), 'folders' => $objects->where('tag', 'folder')->count()], 'containing_fq_path' => $parent ? $parent->getFQPath() : '', 'containing_fq_uid' => $parent ? $parent->getFQUid() : '', 'containing_ns_path' => $parent ? $parent->getNSPath() : '']; return $this->response->paginator($objects, new ObjectTransformer())->setMeta($meta); }
/** * @param Request $request * @return mixed */ public function get(ApiRequest $request) { $this->repository->pushCriteria(new withTrashCriteria($request->input('with_trash', false))); $file = $this->repository->findByUid($request->uid); return $this->response->item($file, new ObjectTransformer()); }