/**
  * @param Request $request
  * @return mixed
  */
 public function create_folder(ApiRequest $request)
 {
     if (!$this->user->can(["documents:unmanaged::pool-{$request->pool}-write"])) {
         throw new \Dingo\Api\Exception\ResourceException('Permission denied.');
     }
     if ($this->validator->with($request->input())->fails(ValidatorInterface::RULE_CREATE)) {
         throw new \Dingo\Api\Exception\StoreResourceFailedException('Could not create new folder.', $this->validator->errors());
     }
     $folder = $this->repository->create(['title' => $request->title, 'description' => $request->description, 'parent_uid' => $request->parent_uid, 'shared' => $request->shared, 'user_id' => $this->user()->id, 'pool_uid' => $request->pool]);
     $folder = $this->updateComputedProperties($request, $folder);
     return $this->response->item($folder, new ObjectTransformer());
 }
Example #2
0
 /**
  * @param Request $request
  * @return mixed
  */
 public function store(ApiRequest $request)
 {
     if ($this->validator->with($request->input())->fails(ValidatorInterface::RULE_CREATE)) {
         throw new \Dingo\Api\Exception\StoreResourceFailedException('Could not upload new file.', $this->validator->errors());
     }
     if (is_null($request->file('data-binary'))) {
         throw new \Dingo\Api\Exception\StoreResourceFailedException('Could not upload new file.', ['data-binary is not a file']);
     }
     $this->validatePoolQuota($request);
     $file = $this->repository->create(['description' => $request->description, 'parent_uid' => $this->sanitizeUid($request->parent_uid), 'shared' => $request->shared, 'user_id' => $this->user()->id, 'pool_uid' => $request->pool]);
     $file = $this->updateComputedProperties($request, $file);
     Storage::disk('storage')->put('documents/' . $file->uid, file_get_contents($request->file('data-binary')->getRealPath()));
     return $this->response->item($file, new ObjectTransformer());
 }