status = $httpStatusCode; } public function authorize() { return true; } public function messages() { return [ 'email' => 'Invalid input format', 'unique' => 'The :attribute is already taken' ]; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(Request $request) { switch($this->method()) { case 'POST': $rules = [ 'username' => 'required|max:32|unique:admin,username,null,null,is_active,1', 'firstname' => ['required','max:32', new AlphaDash], 'lastname' => ['required','max:32', new AlphaDash], 'email' => 'required|email|max:32|unique:admin,email,null,null,is_active,1', 'role' => 'required', 'password' => 'required', 'status' => 'required' ]; return $rules; case 'PUT': $uuid = !empty($this->route('admin')) ? $this->route('admin') : $this->route('uuid'); $details = Admin::whereAdminUuid($uuid)->first(); $rules = [ 'username' => 'required|max:32|unique:admin,username,'.$details['admin_id'].',admin_id,is_active,1', 'firstname' => ['required','max:32', new AlphaDash], 'lastname' => ['required','max:32', new AlphaDash], 'email' => 'required|email|max:32|unique:admin,email,'.$details['admin_id'].',admin_id,is_active,1', // 'role' => 'required' 'status' => 'required' ]; return $rules; default: } } public function response(array $errors) { return $this->status->unprocessableEntity('Form Validation Error',$errors); } } ?>