middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); $module = file_get_contents(dirname(__FILE__, 3) . '/module.json'); $this->module = json_decode($module); } /** * Display a listing of the resource. * * @return Renderable */ public function index(CityDataTable $dataTable, Request $request) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.read')) { abort(403, 'Sorry !! You are Unauthorized to view any ' . $this->module->alias . ' !'); } if (isset($request->province_id) && !empty($request->province_id)) { $this->show($request); return; } addVendor('chained-select'); $countries = Country::all(); $_table = $dataTable->render($this->module->alias . '::city.index', compact('countries')); if(!empty($_table->data)){ return $_table; } } /** * Store a newly created resource in storage. * * @param Request $request * * @return Renderable */ public function store(StoreCityRequest $request) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.create')) { abort(403, 'Sorry !! You are Unauthorized to create any ' . $this->module->alias . ' !'); } //Validate the request $validated = $request->validated(); // Store the City... if ($validated) { try { $this->model::create($validated); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' city created successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city created failed.']); } return; } echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city created failed.']); } /** * Show the form for creating a new resource. * * @return Renderable */ public function create() { if (is_null($this->user) || !$this->user->can($this->module->alias . '.create')) { abort(403, 'Sorry !! You are Unauthorized to create any ' . $this->module->alias . ' !'); } abort(404); } /** * Show the specified resource. * * @param int $id * * @return Renderable */ public function show(Request $request) { if(is_null($this->user) || !$this->user->can($this->module->alias . '.read')) { abort(403, 'Sorry !! You are Unauthorized to view any ' . $this->module->alias . ' !'); } $cities = City::where('province_id', $request->province_id)->get(); $data = []; foreach ($cities as $row) { $result = [ $row->id => $row->name, ]; $data[] = $result; } echo json_encode($data); } /** * Show the form for editing the specified resource. * * @param int $id * * @return Renderable */ public function edit($id) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.update')) { abort(403, 'Sorry !! You are Unauthorized to update any ' . $this->module->alias . ' !'); } $data = $this->model::with('province')->find($id); echo json_encode($data); } /** * Update the specified resource in storage. * * @param Request $request * @param int $id * * @return Renderable */ public function update(UpdateCityRequest $request, City $city) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.update')) { abort(403, 'Sorry !! You are Unauthorized to update any ' . $this->module->alias . ' !'); } //Validate the request $validated = $request->validated(); // Update the City... if ($validated) { try { $city->update($validated); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' city updated successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city updated failed.']); } return; } echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city updated failed.']); } /** * Remove the specified resource from storage. * * @param int $id * * @return Renderable */ public function destroy(City $city) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.delete')) { abort(403, 'Sorry !! You are Unauthorized to delete any ' . $this->module->alias . ' !'); } try { $city->delete(); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' city deleted successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city deleted failed.']); } } }