public function delete($id)
 {
     $projectFile = $this->repository->skipPresenter()->find($id);
     if ($this->storage->exists($projectFile->getFileName())) {
         $this->storage->delete($projectFile->getFileName());
         return $projectFile->delete();
     }
     /*
     // recupera somente os Files
     $files = $this->repository->skipPresenter()->find($projectId)->files;
     
     //dd($files);
     
     $deletar = [];
     foreach ($files as $file) {
         $path = $file->id . '.' . $file->extension;
     
         // deletar da bd
         if($file->delete($file->id))
             $deletar[] = $path;
     }
     
     //dd($deletar);
     
     $r = $this->storage->delete($deletar);
     
     if($r)
         return ['error' => false];
     else
         return ['error' => true];
     */
 }
 public function delete($id)
 {
     $projectFile = $this->repository->skipPresenter()->find($id);
     if ($this->storage->exists($projectFile->getFileName())) {
         $this->storage->delete($projectFile->getFileName());
         return $projectFile->delete();
     }
 }
 public function showFile($id, $idFile)
 {
     if ($this->projectService->checkProjectPermissions($id) == false) {
         return ['error' => 'Access Forbidden'];
     }
     $model = $this->repository->skipPresenter()->find($idFile);
     $filePath = $this->service->getFilePath($idFile);
     $fileContent = file_get_contents($filePath);
     $file64 = base64_encode($fileContent);
     return ['file' => $file64, 'size' => filesize($filePath), 'name' => $this->service->getFileName($idFile), 'mime_type' => $this->storage->mimeType($model->getFileName())];
 }
 public function destroy($id, $fileId)
 {
     $projectFile = $this->repository->skipPresenter()->findWhere(['project_id' => $id, 'id' => $fileId])->first();
     try {
         if ($projectFile->delete($fileId)) {
             $this->storage->delete($projectFile->id . '.' . $projectFile->extension);
         }
     } catch (ErrorException $e) {
         return ['error' => true, 'message' => $e->getMessage()];
     }
 }
 public function download($project_id, $file_id)
 {
     /*if( $this->service->checkProjectPermissions($project_id) == false ){
           return ['error' => 'Acesso negado'];
       }*/
     #return response()->download($this->service->show($file_id));
     $model = $this->repository->skipPresenter()->find($file_id);
     $file_path = $this->service->show($file_id);
     $file_content = file_get_contents($file_path);
     $file64 = base64_encode($file_content);
     return ['file' => $file64, 'size' => filesize($file_path), 'name' => $this->service->getFileName($file_id), 'mime_type' => $this->storage->mimeType($this->service->getFileName($file_id))];
 }
 public function getFileName($id)
 {
     $projectFile = $this->repository->skipPresenter()->find($id);
     return $projectFile->getFileName();
 }
 public function checkProjectMember($projectFileId)
 {
     $userId = \Authorizer::getResourceOwnerId();
     $projectId = $this->repository->skipPresenter()->find($projectFileId)->project_id;
     return $this->projectRepository->hasMember($projectId, $userId);
 }