repository = $repository; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(IndexRequest $request) { $data = $this->repository->paginate(); return $this->respond($data); } /** * Store a newly created resource in storage. * * @param $CLASS\CreateRequest $request * * @return \Illuminate\Http\Response */ public function store(CreateRequest $request) { $data = $this->repository->create($request->all()); if($request->filled('attachments')){ $this->attachments($request->file('attachments'), $data->id); } return $this->respondCreated($data); } /** * Display the specified resource. * @param $CLASS\ShowRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function show(ShowRequest $request, $id) { $data = $this->repository->find($id); event(new UserViewedDocument($data)); return $this->respond($data); } /** * Update the specified resource in storage. * * @param $CLASS\UpdateRequest $request * @param string $id * * @return Response */ public function update(UpdateRequest $request, $id) { $data = $this->gateAction($this->repository, $request, $id) ?: $this->repository->update($request->except('creator_id'), $id); return $this->respond($data); } /** * Remove the specified resource from storage. * * @param $CLASS\DestroyRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function destroy(DestroyRequest $request, $id) { $this->repository->delete($id); return $this->respondNoContent(); } }