model = new MasterControlsModel(); $this->rules = [ 'name' => 'required|min_length[1]', 'lot' => 'required|min_length[1]', ]; } public function index() { $keyword = $this->request->getGet('keyword'); try { $rows = $this->model->search($keyword); return $this->respond([ 'status' => 'success', 'message' => 'fetch success', 'data' => $rows ], 200); } catch (\Exception $e) { return $this->failServerError($e->getMessage()); } } public function show($id = null) { try { $row = $this->model->find($id); if (!$row) { return $this->respond([ 'status' => 'success', 'message' => 'data not found.' ], 200); } return $this->respond([ 'status' => 'success', 'message' => 'fetch success', 'data' => [$row] ], 200); } catch (\Exception $e) { return $this->failServerError($e->getMessage()); } } public function create() { $input = $this->request->getJSON(true); $input = camel_to_snake_array($input); if (!$this->validate($this->rules)) { return $this->failValidationErrors($this->validator->getErrors()); } try { $id = $this->model->insert($input, true); return $this->respondCreated([ 'status' => 'success', 'message' => $id ]); } catch (\Exception $e) { return $this->failServerError($e->getMessage()); } } public function update($id = null) { $input = $this->request->getJSON(true); $input = camel_to_snake_array($input); if (!$this->validate($this->rules)) { return $this->failValidationErrors($this->validator->getErrors()); } try { $this->model->update($id, $input); return $this->respond([ 'status' => 'success', 'message' => 'update success', 'data' => [$id] ], 200); } catch (\Exception $e) { return $this->failServerError($e->getMessage()); } } public function delete($id = null) { try { $this->model->delete($id); return $this->respond([ 'status' => 'success', 'message' => 'delete success', 'data' => [$id] ], 200); } catch (\Exception $e) { return $this->failServerError($e->getMessage()); } } }