Merge branch 'main' of bitbucket.org:jubilian/nhance_partner_be

This commit is contained in:
sanjeev.p 2025-12-22 14:03:18 +05:30
commit fb8390b2fe
2 changed files with 55 additions and 24 deletions

View File

@ -201,17 +201,62 @@ class StaffController extends ResourceController
try{
$data = $this->request->getJSON(true);
$handlerArray = $data['handler_id'] ?? [];
// 1⃣ Either email or mobile must be present
if (empty($data['email']) && empty($data['mobile'])) {
return $this->respond([
'status' => 'failed',
'code' => 422,
'data' => [
'message' => 'Either email or mobile is required'
]
], 200);
}
$insertData = [
'name' => $data['name'],
'email' => $data['email'],
'mobile' => $data['mobile'],
'role_id' => $data['role_id'],
'manager_id' => $data['manager_id'],
'handler_id' => json_encode($handlerArray),
'created_by' => $data['created_by']
];
// 2⃣ Validation rules
$rules = [
'email' => 'permit_empty|valid_email|is_unique[partner_staff.email]',
'mobile' => 'permit_empty|numeric|min_length[10]|max_length[15]|is_unique[partner_staff.mobile]',
'name' => 'required',
'role_id'=> 'required'
];
$messages = [
'email' => [
'valid_email' => 'Invalid email format',
'is_unique' => 'Email already exists'
],
'mobile' => [
'numeric' => 'Mobile must be numeric',
'min_length'=> 'Mobile must be at least 10 digits',
'max_length'=> 'Mobile must be at most 15 digits',
'is_unique' => 'Mobile number already exists'
],
'name' => [
'required' => 'Name is required'
],
'role_id' => [
'required' => 'Role is required'
]
];
if (!$this->validate($rules, $messages)) {
return $this->respond([
'status' => 'failed',
'code' => 422,
'data' => $this->validator->getErrors()
], 200);
}
// 3⃣ Insert data
$insertData = [
'name' => $data['name'],
'email' => $data['email'] ?? null,
'mobile' => $data['mobile'] ?? null,
'role_id' => $data['role_id'],
'manager_id' => $data['manager_id'] ?? null,
'handler_id' => json_encode($data['handler_id'] ?? []),
'created_by' => $data['created_by']
];
$this->StaffModel->insert($insertData);

View File

@ -27,20 +27,6 @@ class StaffModel extends Model
protected $useTimestamps = false; // we manually manage created_on / updated_on
protected $validationRules = [
'name' => 'required|min_length[3]',
'email' => 'permit_empty|valid_email|is_unique[partner_staff.email,id,{id}]',
'mobile' => 'permit_empty|numeric|max_length[20]|is_unique[partner_staff.mobile,id,{id}]',
'manager_id' => 'required|integer',
];
protected $validationMessages = [
'email' => [
'is_unique' => 'Sorry, that email address is already registered.',
],
'mobile' => [
'is_unique' => 'Sorry, that mobile number is already registered.',
],
];
}