db = \Config\Database::connect(); $this->model = new SiteModel(); } public function index() { $filter = [ 'SiteCode' => $this->request->getVar('SiteCode'), 'SiteName' => $this->request->getVar('SiteName'), ]; $rows = $this->model->getSites($filter); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); } return $this->respond([ 'status' => 'success', 'message'=> "fetch success", 'data' => $rows ], 200); } public function show($SiteID = null) { //$rows = $this->model->where('SiteID', $SiteID)->findAll(); $row = $this->model->getSite($SiteID); if (empty($row)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => null ], 200); } return $this->respond([ 'status' => 'success', 'message'=> "fetch success", 'data' => $row ], 200); } public function delete() { try { $input = $this->request->getJSON(true); $id = $input["SiteID"]; if (!$id) { return $this->failValidationErrors('ID is required.'); } $this->model->delete($id); return $this->respondDeleted([ 'status' => 'success', 'message' => "{$id} deleted successfully."]); } catch (\Throwable $e) { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } public function create() { $input = $this->request->getJSON(true); $validation = service('validation'); $validation->setRules([ 'SiteCode' => 'required|regex_match[/^[A-Z0-9]{2,6}$/]', 'SiteName' => 'required', ]); if (!$validation->run($input)) { return $this->failValidationErrors($validation->getErrors()); } try { $id = $this->model->insert($input,true); return $this->respondCreated([ 'status' => 'success', 'message' => 'data created successfully', 'data' => $id ], 201); } catch (\Throwable $e) { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } public function update($SiteID = null) { $input = $this->requirePatchPayload($this->request->getJSON(true)); if ($input === null) { return; } $id = $this->requirePatchId($SiteID, 'SiteID'); if ($id === null) { return; } $existing = $this->model->find($id); if (!$existing) { return $this->respond([ 'status' => 'failed', 'message' => 'Site not found', 'data' => [] ], 404); } $input['SiteID'] = $id; if (!empty($input['SiteCode'])) { $validation = service('validation'); $validation->setRules([ 'SiteCode' => 'regex_match[/^[A-Z0-9]{2,6}$/]', ]); if (!$validation->run($input)) { return $this->failValidationErrors($validation->getErrors()); } } try { $this->model->update($id, $input); return $this->respond([ 'status' => 'success', 'message' => 'data updated successfully', 'data' => $id ], 200); } catch (\Throwable $e) { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } }