'user', 'requestData' => [ 'newEmail' => [ 'validation' => DataValidator::email(), 'error' => ERRORS::INVALID_EMAIL ] ] ]; } public function handler() { $newEmail = Controller::request('newEmail'); $user = Controller::getLoggedUser(); $oldEmail = $user->email; $this->verifyEmail($newEmail, $user); $user->email = $newEmail; $user->store(); $mailSender = MailSender::getInstance(); $mailSender->setTemplate('USER_EMAIL', [ 'to'=>$oldEmail, 'newemail'=>$user->email, 'name'=>$user->name ]); $mailSender->send(); Response::respondSuccess(); } private function verifyEmail($email, $logedUser){ $staff = Staff::getDataStore($email,'email'); $user = User::getDataStore($email,'email'); if($user->email == $email && $logedUser->email != $email){ throw new RequestException(ERRORS::INVALID_EMAIL); } if($staff->email == $email){ throw new RequestException(ERRORS::INVALID_EMAIL); } } }