diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php new file mode 100644 index 000000000..6b36da7ba --- /dev/null +++ b/app/Http/Controllers/BaseController.php @@ -0,0 +1,44 @@ + true, + 'data' => $result, + 'message' => $message, + ]; + return response()->json($response, 200); + } + + + /** + * return error response. + * + * @return \Illuminate\Http\Response + */ + public function sendError($error, $errorMessages = [], $code = 404) + { + $response = [ + 'success' => false, + 'message' => $error, + ]; + + if(!empty($errorMessages)){ + $response['data'] = $errorMessages; + } + + return response()->json($response, $code); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 000000000..a0a2a8a34 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +pagination_limit = '5'; + } + + public function index() + { + $event = Event::orderBy('createdAt', 'desc')->get(); + return $this->sendResponse(new EventResource($event), 'all events retrieved successfully.'); + } + + public function active_events(Request $request) + { + $data_all = $request->all(); + if ($data_all['startAt'] && $data_all['endAt']) { + $startAt = Carbon::parse($data_all['startAt'])->toDateTimeString(); + $endAt = Carbon::parse($data_all['endAt'])->toDateTimeString(); + $data_result = Event::whereBetween('createdAt', [$startAt, $endAt])->get(); + } else { + $data_result = []; + } + return $this->sendResponse(new EventResource($data_result), 'intervel events retrieved successfully.'); + } + + public function get_event($id) + { + $event = Event::find($id); + return $this->sendResponse(new EventResource($event), 'one events retrieved successfully.'); + } + + public function create_event(Request $request) + { + $input = $request->all(); + $validator = Validator::make($input, [ + 'event_name' => 'required|unique:events,name', + ]); + + if($validator->fails()){ + return $this->sendError('Validation Error.', $validator->errors()); + } + + $input_data['name'] = $input['event_name']; + $input_data['slug'] = Str::slug($input['event_name']); + $event = Event::create($input_data); + return $this->sendResponse(new EventResource($event), 'event created successfully.'); + } + + public function update_event(Request $request, $id) + { + $input = $request->all(); + $event = Event::find($id); + if($event){ + $validator = Validator::make($input, [ + 'event_name' => "required|unique:events,name,{$id}", + ]); + + if($validator->fails()){ + return $this->sendError('Validation Error.', $validator->errors()); + } + + $input_data['name'] = $input['event_name']; + $input_data['slug'] = Str::slug($input['event_name']); + + $event->update($input_data); + $message = 'event updated successfully.'; + }else{ + $validator = Validator::make($input, [ + 'event_name' => 'required|unique:events,name', + ]); + + if($validator->fails()){ + return $this->sendError('Validation Error.', $validator->errors()); + } + + $input_data['name'] = $input['event_name']; + $input_data['slug'] = Str::slug($input['event_name']); + + $event = Event::create($input_data); + $message = 'event created successfully.'; + } + return $this->sendResponse(new EventResource($event), $message); + } + + public function delete_event($id) + { + $event = Event::find($id); + if($event){ + $delete = $event->delete(); + if($delete==true){ + $data_response['id'] = $event->id; + $message = 'event made soft deleted successfully.'; + }else{ + $data_response['id'] = $event->id; + $message = 'something went wrong.'; + } + }else{ + $data_response['id'] = $id; + $message = 'this id not exist.'; + } + return $this->sendResponse($data_response, $message); + } + + public function event_list_web() + { + $event = Event::orderBy('createdAt', 'desc')->paginate($this->pagination_limit); + return view('event.event_list', [ + 'events' => $event, + 'search' => '0', + ]); + } + + public function event_show_web($id) + { + $event = Event::find($id); + return view('event.event_show', compact('event')); + } + + public function event_edit_web($id) + { + if(Auth::check()) { + $event = Event::findOrFail($id); + return view('event.event_edit', compact('event')); + }else{ + return redirect()->route('login'); + } + } + + public function event_name_exist(Request $request) + { + $data_all = $request->all(); + if(isset($data_all['event_id'])){ + if(isset($data_all['event_name'])){ + $exist_value = DB::table('events')->where('events.name', $data_all['event_name'])->whereNotIn('events.id',[$data_all['event_id']])->get()->count(); + }elseif(isset($data_all['event_slug'])){ + $exist_value = DB::table('events')->where('events.slug', $data_all['event_slug'])->whereNotIn('events.id',[$data_all['event_id']])->get()->count(); + } + }else{ + if(isset($data_all['event_name'])){ + $exist_value = DB::table('events')->where('events.name', $data_all['event_name'])->get()->count(); + } + } + if($exist_value > '0'){ + $count_status = '0'; + }else{ + $count_status = 'true'; + } + echo $count_status; + } + + public function event_create_web() + { + if(Auth::check()) { + return view('event.event_create'); + }else{ + return redirect()->route('login'); + } + } + + public function delete_event_web(Request $request) + { + $data_all = $request->all(); + $event = Event::find($data_all['event_id']); + if($event){ + $delete = $event->delete(); + if($delete==true){ + $data_response['id'] = $event->id; + $message = 'event made soft deleted successfully.'; + }else{ + $data_response['id'] = $event->id; + $message = 'something went wrong.'; + } + }else{ + $data_response['id'] = $id; + $message = 'this id not exist.'; + } + return $this->sendResponse($data_response, $message); + } + + public function search_event_web(Request $request) + { + $data_all = $request->all(); + $event = Event::where('events.id', 'like', '%' . $data_all['event_search_val'] . '%')->orWhere('events.name', 'like', '%' . $data_all['event_search_val'] . '%')->orWhere('events.slug', 'like', '%' . $data_all['event_search_val'] . '%')->orderBy('createdAt', 'desc')->paginate($this->pagination_limit); + return view('event.event_list', [ + 'events' => $event, + 'search' => '1', + ]); + } + + public function event_list_cache() + { + $cachedBlog = Redis::get('event'); + if(isset($cachedBlog)) { + $event = json_decode($cachedBlog, FALSE); + return response()->json([ + 'status_code' => 201, + 'message' => 'Fetched from redis', + 'data' => $event, + ]); + }else { + $event = Event::orderBy('createdAt', 'desc')->paginate($this->pagination_limit); + Redis::set('event', $event); + + return response()->json([ + 'status_code' => 201, + 'message' => 'Fetched from database', + 'data' => $event, + ]); + } + } + + public function event_list_remote() + { + return view('event.remote_list'); + } +} + + +// echo "
"; +// print_r($data); +// echo ""; +// exit(); \ No newline at end of file diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 000000000..7cbc2c3f0 --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,28 @@ +middleware('auth'); + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Contracts\Support\Renderable + */ + public function index() + { + return view('home'); + } +} diff --git a/app/Http/Resources/Event.php b/app/Http/Resources/Event.php new file mode 100644 index 000000000..6565b382f --- /dev/null +++ b/app/Http/Resources/Event.php @@ -0,0 +1,19 @@ + +
ID | +Name | +Slug | +Created At | +Action | +
---|---|---|---|---|
= $event->id ?> | += $event->name ?> | += $event->slug ?> | += $event->createdAt ?> | ++ Edit + Onclick="delete_event('= $event->id ?>');" Onclick="go_to_login();" >Delete + | +
There is no events. | +