/** * Create an issue with option to create a project * * @param int $index * @param Model\User $creator * @param Model\User $assign * @param Model\Project $project * * @return Model\Project\Issue */ public function createIssue($index = 0, Model\User $creator, Model\User $assign = null, Model\Project $project = null) { $project = $project ?: $this->createProject($index, [$assign]); $issueData = ['title' => 'Issue ' . $index, 'body' => 'body of issue ' . $index, 'time_quote' => ['h' => 0, 'm' => 0, 's' => 0], 'upload_token' => '-', 'tag' => '']; $issueData['assigned_to'] = null !== $assign ? $assign->id : ''; $issue = new Model\Project\Issue(); $issue->setRelation('project', $project); $issue->setRelation('user', $creator); $issue->createIssue($issueData); return $issue; }
/** * Download an attachment file * * @param Project $project * @param Issue $issue * @param Attachment $attachment * * @return \Symfony\Component\HttpFoundation\BinaryFileResponse */ public function getDownloadAttachment(Project $project, Issue $issue, Attachment $attachment) { $issue->setRelation('project', $project); $attachment->setRelation('issue', $issue); $path = config('filesystems.disks.local.root') . '/' . config('tinyissue.uploads_dir') . '/' . $issue->project_id . '/' . $attachment->upload_token . '/' . $attachment->filename; return response()->download($path, $attachment->filename); }
/** * To create a new issue * * @param Project\Issue $issue * @param FormRequest\GlobalIssue $request * * @return \Illuminate\Http\RedirectResponse */ public function postNewIssue(Project\Issue $issue, FormRequest\GlobalIssue $request) { $project = Project::find((int) $request->input('project')); $issue->setRelation('project', $project); $issue->setRelation('user', $this->auth->user()); $issue->createIssue(['title' => $request->input('title'), 'body' => $request->input('body'), 'tag' => $request->input('tag'), 'upload_token' => $request->input('upload_token'), 'assigned_to' => (int) $project->default_assignee, 'time_quote' => 0]); return redirect($issue->to())->with('notice', trans('tinyissue.issue_has_been_created')); }