hashtagServices = $hashtagServices; $this->chapterServices = $chapterServices; $this->comicService = $comicService; parent::__construct(); } /** * Display a listing of the resource. */ public function index(Request $request) { $request['isBackend'] = true; $request['loading_hashtag']= true; $request['loading_tagged']= true; $comics = $this->comicService->index($request); $comics = $this->comicService->prepareHashtags($comics); $param = ($request->except(['page'])); return view('Backend.pages.comics.list', compact('comics','param')); } /** * Show the form for creating a new resource. */ public function create(Request $request) { $hashtags = $this->hashtagServices->index($request); return view('Backend.pages.comics.add',compact('hashtags')); } /** * Store a newly created resource in storage. */ public function store(ComicRequest $request) { $comic = $request->only([ 'comic_name', 'bg_color', 'tranfer_color', 'summary_contents', 'tagged' ]); try { $this->comicService->uploadGGDrive($request,$comic); }catch (\Exception $e){ $request->session()->flash('msgFail', $e->getMessage()); return back()->with(['comic' => $comic]); } DB::beginTransaction(); try { $result = $this->comicService->save($comic); DB::commit(); $request->session()->flash('msgSuccess', trans('comic.msg_content.msg_add_success')); return redirect()->route('comics.edit', ['code' => $result->comic_code]); } catch (\Exception $e) { DB::rollback(); $request->session()->flash('msgFail', $e->getMessage()); return back()->with(['comic' => $comic]); } } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(Request $request,string $id) { $comic = $this->comicService->show($id); $chapters = $this->chapterServices->findByComics($request,$comic->id); $param= $request->except(['page']); $hashtags = $this->hashtagServices->index($request); return view('Backend.pages.comics.edit', compact('comic','chapters','param','hashtags')); } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { $comic = $request->only([ 'comic_name', 'bg_color', 'tranfer_color', 'summary_contents', 'tagged' ]); $comic['comic_code'] = $id; try { $this->comicService->uploadGGDrive($request,$comic); }catch (\Exception $e){ $request->session()->flash('msgFail', $e->getMessage()); return back()->with(['comic' => $comic]); } DB::beginTransaction(); try { $result = $this->comicService->save($comic); DB::commit(); $request->session()->flash('msgSuccess', trans('comic.msg_content.msg_edit_success')); return redirect()->route('comics.edit', ['code' => $result->comic_code]); } catch (\Exception $e) { DB::rollback(); $request->session()->flash('msgFail', $e->getMessage()); return back()->with(['comic' => $comic]); } } /** * Remove the specified resource from storage. */ public function destroy(Request $request, string $id) { $result = $this->comicService->delete($id); if (!$result) { $request->session()->flash('msgFail', trans('comic.msg_content.msg_delete_fail')); } return redirect()->route('comics.list') ; } }