guard = request()->has('token') ? 'api' : 'customer'; $this->_config = request('_config'); if (isset($this->_config['authorization_required']) && $this->_config['authorization_required']) { auth()->setDefaultDriver($this->guard); $this->middleware('auth:' . $this->guard); } $this->customerRepository = $customerRepository; $this->customerGroupRepository = $customerGroupRepository; } /** * Method to store user's sign up form data to DB. * * @return \Illuminate\Http\Response */ public function create(Request $request) { $this->validate($request, [ 'first_name' => 'required', 'last_name' => 'required', 'email' => 'email|required|unique:customers,email', 'password' => 'confirmed|min:6|required', ]); $data = [ 'first_name' => $request->get('first_name'), 'last_name' => $request->get('last_name'), 'email' => $request->get('email'), 'password' => $request->get('password'), 'password' => bcrypt($request->get('password')), 'channel_id' => core()->getCurrentChannel()->id, 'is_verified' => 1, 'customer_group_id' => $this->customerGroupRepository->findOneWhere(['code' => 'general'])->id ]; Event::dispatch('customer.registration.before'); $customer = $this->customerRepository->create($data); Event::dispatch('customer.registration.after', $customer); return response()->json([ 'message' => 'Your account has been created successfully.', ]); } /** * Returns a current user data. * * @param int $id * @return \Illuminate\Http\Response */ public function get($id) { if (Auth::user($this->guard)->id === (int) $id) { return new $this->_config['resource']( $this->customerRepository->findOrFail($id) ); } return response()->json([ 'message' => 'Invalid Request.', ], 403); } }