Merge branch 'main' of bitbucket.org:jubilian/nhance_partner_be
This commit is contained in:
commit
fb8390b2fe
@ -201,15 +201,60 @@ class StaffController extends ResourceController
|
|||||||
try{
|
try{
|
||||||
$data = $this->request->getJSON(true);
|
$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);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 = [
|
$insertData = [
|
||||||
'name' => $data['name'],
|
'name' => $data['name'],
|
||||||
'email' => $data['email'],
|
'email' => $data['email'] ?? null,
|
||||||
'mobile' => $data['mobile'],
|
'mobile' => $data['mobile'] ?? null,
|
||||||
'role_id' => $data['role_id'],
|
'role_id' => $data['role_id'],
|
||||||
'manager_id' => $data['manager_id'],
|
'manager_id' => $data['manager_id'] ?? null,
|
||||||
'handler_id' => json_encode($handlerArray),
|
'handler_id' => json_encode($data['handler_id'] ?? []),
|
||||||
'created_by' => $data['created_by']
|
'created_by' => $data['created_by']
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -27,20 +27,6 @@ class StaffModel extends Model
|
|||||||
|
|
||||||
protected $useTimestamps = false; // we manually manage created_on / updated_on
|
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.',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user