'required|string', 'validity' => 'required', 'bootcamp_id' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } // check duplicate title for same bootcamp id $title = BootcampModule::join('bootcamps', 'bootcamp_modules.bootcamp_id', 'bootcamps.id') ->where('bootcamps.user_id', auth()->user()->id)->where('bootcamp_modules.title', $request->title)->first(); if ($title) { Session::flash('error', get_phrase('This title has been taken.')); return redirect()->back(); } $data['title'] = $request->title; $data['restriction'] = $request->restriction; $data['bootcamp_id'] = $request->bootcamp_id; $date = explode('-', $request->validity); $data['publish_date'] = strtotime($date[0]); $data['expiry_date'] = strtotime($date[1]); BootcampModule::insert($data); Session::flash('success', get_phrase('Module has been created.')); return redirect()->back(); } public function delete($id) { $module = BootcampModule::where('id', $id); if ($module->doesntExist()) { Session::flash('error', get_phrase('Data not found.')); return redirect()->back(); } $module->delete(); Session::flash('success', get_phrase('Module has been deleted.')); return redirect()->back(); } public function update(Request $request, $id) { $module = BootcampModule::where('id', $id)->where('bootcamp_id', $request->bootcamp_id); if ($module->doesntExist()) { Session::flash('error', get_phrase('Data not fount.')); return redirect()->back(); } // check duplicate title for same bootcamp id $title = BootcampModule::join('bootcamps', 'bootcamp_modules.bootcamp_id', 'bootcamps.id') ->where('bootcamp_modules.id', '!=', $id) ->where('bootcamps.user_id', auth()->user()->id) ->where('bootcamp_modules.title', $request->title)->first(); if ($title) { Session::flash('error', get_phrase('This title has been taken.')); return redirect()->back(); } $rules = [ 'title' => 'required|string', 'validity' => 'required', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $data['title'] = $request->title; $data['restriction'] = $request->restriction; $date = explode('-', $request->validity); $data['publish_date'] = strtotime($date[0]); $data['expiry_date'] = strtotime($date[1]); $module->update($data); Session::flash('success', get_phrase('Module has been updated.')); return redirect()->back(); } public function sort(Request $request) { $modules = json_decode($request->itemJSON); foreach ($modules as $key => $value) { $updater = $key + 1; BootcampModule::where('id', $value)->update(['sort' => $updater]); } return response()->json([ 'status' => true, 'success' => get_phrase('Modules sorted successfully'), ]); } }