Merge branch 'main' of bitbucket.org:jubilian/nhance_partner_be
This commit is contained in:
commit
fb8390b2fe
@ -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);
|
||||
|
||||
|
||||
@ -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.',
|
||||
],
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user