diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index 3358c5ac7301..02697ba039de 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -34,25 +34,8 @@ class AccountApiController extends BaseAPIController $this->accountRepo = $accountRepo; } - public function register(Request $request) + public function register(RegisterRequest $request) { - $validator = Validator::make($request->all(), [ - 'email' => 'required|unique:users', - 'first_name' => 'required', - 'last_name' => 'required', - 'password' => 'required', - ]); - - if ($validator->fails()) { - - foreach($validator->errors()->all() as $message) - { - return $this->errorResponse(['message'=>$message],400); - } - - - } - $account = $this->accountRepo->create($request->first_name, $request->last_name, $request->email, $request->password); $user = $account->users()->first(); diff --git a/app/Http/Requests/RegisterRequest.php b/app/Http/Requests/RegisterRequest.php index 8709d42cc0a0..91a27556924c 100644 --- a/app/Http/Requests/RegisterRequest.php +++ b/app/Http/Requests/RegisterRequest.php @@ -2,7 +2,11 @@ use Auth; use App\Http\Requests\Request; +use Illuminate\Http\Request as InputRequest; +use Illuminate\Support\Facades\Log; use Illuminate\Validation\Factory; +use App\Libraries\Utils; +use Response; class RegisterRequest extends Request { @@ -11,6 +15,13 @@ class RegisterRequest extends Request * * @return bool */ + + public function __construct(InputRequest $req) + { + $this->req = $req; + } + + public function authorize() { return true; @@ -23,6 +34,7 @@ class RegisterRequest extends Request */ public function rules() { + $rules = [ 'email' => 'required|unique:users', 'first_name' => 'required', @@ -32,4 +44,24 @@ class RegisterRequest extends Request return $rules; } + + public function response(array $errors) + { + /* If the user is not validating from a mobile app - pass through parent::response */ + if(!isset($this->req->api_secret)) + return parent::response($errors); + + /* If the user is validating from a mobile app - pass through first error string and return error */ + foreach($errors as $error) { + foreach ($error as $key => $value) { + + $message['error'] = ['message'=>$value]; + $message = json_encode($message, JSON_PRETTY_PRINT); + $headers = Utils::getApiHeaders(); + + return Response::make($message, 400, $headers); + } + } + } + }