db = \Config\Database::connect(); $this->model = new ContactModel(); $this->rules = [ 'NameFirst' => 'required' ]; $this->patchRules = [ 'NameFirst' => 'permit_empty' ]; } public function index() { $ContactName = $this->request->getVar('ContactName'); $Specialty = $this->request->getVar('Specialty'); $rows = $this->model->getContacts($ContactName, $Specialty); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); } $rows = ValueSet::transformLabels($rows, [ 'Specialty' => 'specialty', 'Occupation' => 'occupation', ]); return $this->respond([ 'status' => 'success', 'message'=> "fetch success", 'data' => $rows ], 200); } public function show($ContactID = null) { $model = new ContactModel(); $row = $model->getContactWithDetail($ContactID); if (empty($row)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => null ], 200); } $row = ValueSet::transformLabels([$row], [ 'Specialty' => 'specialty', 'Occupation' => 'occupation', ])[0]; return $this->respond([ 'status' => 'success', 'message'=> "fetch success", 'data' => $row ], 200); } public function delete() { try { $input = $this->request->getJSON(true); $ContactID = $input["ContactID"]; if (!$ContactID) { return $this->failValidationErrors('ContactID is required.'); } $this->model->delete($ContactID); return $this->respondDeleted([ 'status' => 'success', 'message' => "Contact with {$ContactID} deleted successfully."]); } catch (\Throwable $e) { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } public function create() { $input = $this->request->getJSON(true); if (!$this->validateData($input, $this->rules)) { return $this->failValidationErrors($this->validator->getErrors()); } try { $id = $this->model->saveContact($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($ContactID = null) { $input = $this->requirePatchPayload($this->request->getJSON(true)); if ($input === null) { return; } $id = $this->requirePatchId($ContactID, 'ContactID'); if ($id === null) { return; } $existing = $this->model->find($id); if (!$existing) { return $this->respond([ 'status' => 'failed', 'message' => 'Contact not found', 'data' => [] ], 404); } $validationInput = array_intersect_key($input, $this->patchRules); if (!empty($validationInput) && !$this->validateData($validationInput, $this->patchRules)) { return $this->failValidationErrors($this->validator->getErrors()); } $input['ContactID'] = $id; try { $this->model->saveContact($input); $id = $input['ContactID']; return $this->respond([ 'status' => 'success', 'message' => 'data updated successfully', 'data' => $id ], 200); } catch (\Throwable $e) { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } }