public function deleteOrFail($project_id) { if (Project::find($project_id)) { return $this->find($project_id)->delete(); } return "Error: project not found"; }
public function isMember($project, $member) { try { $projeto = $this->project->find($project); foreach ($projeto->members as $m) { if ($m->id == $member) { return true; } } return false; } catch (ValidatorException $e) { return response()->json(['error' => true, 'message' => $e->getMessageBag()]); } catch (ModelNotFoundException $e) { return response()->json(['error' => true, 'message1' => $e->getMessage(), 'message2' => 'Projeto ID ' . $project . ' nao encontrado.']); } }
public function findMemberAssociation($project_id, $user_id) { // assume-se que o project_id ja foi checado na camada de servico $project = Project::find($project_id); foreach ($project->memberAssociations as $pm) { if ($pm->user_id == $user_id) { return $pm; } } return null; }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $project_id = $request->route('project') ? $request->route('project') : $request->all()['project_id']; $user_id = \Authorizer::getResourceOwnerId(); if (is_null(Project::find($project_id))) { return Errors::invalidId($project_id); } if (!$this->repository->isMember($project_id, $user_id)) { return Errors::basic('Acesso negado! Você não é membro deste projeto.'); } return $next($request); }
public function find($project_id, $member_id) { $pm = ProjectMember::find($member_id); if (is_null($pm)) { return Errors::invalidId($member_id); } if (is_null(Project::find($project_id))) { return Errors::invalidId($project_id); } if ($pm->project_id != $project_id) { return Errors::basic("Falha. Projeto " . $project_id . " nao possui membro " . $member_id); } return $this->repository->find($member_id); }
public function find($project_id, $task_id) { $task = ProjectTask::find($task_id); if (is_null($task)) { return Errors::invalidId($task_id); } if (is_null(Project::find($project_id))) { return Errors::invalidId($project_id); } if ($task->project_id != $project_id) { return Errors::basic("Falha. Projeto " . $project_id . " nao possui a tarefa " . $task_id); } return $this->repository->find($task_id); }
public function find($project_id, $note_id) { $note = ProjectNote::find($note_id); if (is_null($note)) { return Errors::invalidId($note_id); } if (is_null(Project::find($project_id))) { return Errors::invalidId($project_id); } if ($note->project_id != $project_id) { return Errors::basic("Falha. Projeto " . $project_id . " nao possui a nota " . $note_id); } return $this->repository->find($note_id); }
public function createFile(array $data) { try { $this->validator->with($data)->passesOrFail(); $project = Project::find($data['project_id']); if (is_null($project)) { return Errors::invalidId($data['project_id']); } $user_id = \Authorizer::getResourceOwnerId(); if (!$this->projectRepository->isMember($data['project_id'], $user_id)) { return Errors::basic('Acesso negado. Você não é membro do projeto selecionado.'); } $data['extension'] = $data['file']->getClientOriginalExtension(); $projectFile = $this->repository->create($data); $nome = $projectFile->id . "." . $data['extension']; $arquivo = $this->filesystem->get($data['file']); $this->storage->put($nome, $arquivo); return ['message' => 'Arquivo criado']; } catch (ValidatorException $e) { return Errors::basic($e->getMessageBag()); } }
public function removeMember($project_id, $member_id) { $project = Project::find($project_id); if (is_null($project)) { return Errors::invalidId($project_id); } if (is_null(User::find($member_id))) { return Errors::invalidId($member_id); } if ($member_id == $project->owner_id) { return Errors::basic("Não é possível remover o dono do projeto."); } $pm = $this->repository->findMemberAssociation($project_id, $member_id); if (is_null($pm)) { return Errors::basic("Este usuário não é membro do projeto."); } return $this->projectMemberService->delete($pm->id); }
public function delete($id) { $entity = Project::find($id); if (is_null($entity)) { return Errors::invalidId($id); } foreach ($entity->tasks as $task) { $this->projectTaskService->delete($task->id); } foreach ($entity->notes as $note) { $this->projectNoteService->delete($note->id); } foreach ($entity->memberAssociations as $pm) { $this->projectMemberService->delete($pm->id); } $this->repository->delete($id); return ['message' => "Registro deletado!"]; }