Example #1
0
 /**
  * Handle a registration request for the application.
  *
  * @param  App\Http\Requests\RegisterRequest  $request
  * @param  App\Repositories\UserRepository $user_gestion
  * @return Response
  */
 public function postRegister(Guard $auth, Request $request, UserRepository $user_gestion, OperadorRepository $operador_gestion, ServiciosOperadorRepository $gestion)
 {
     $inputData = Input::get('formData');
     parse_str($inputData, $formFields);
     if ($inputData != "") {
         $userData = array('username' => $formFields['username'], 'email' => $formFields['email'], 'password' => $formFields['password'], 'email_confirmation' => $formFields['email_confirmation']);
     } else {
         $userData = array('username' => $request->input('username'), 'email' => $request->input('email'), 'password' => $request->input('password'), 'email_confirmation' => $request->input('email_confirmation'));
     }
     //Valida que los campos sean unicos y cumplan con los requerimientos
     $validator = Validator::make($userData, $this->validationRules);
     //Si el validador falla se ejecutan las acciones
     if ($validator->fails()) {
         return response()->json(array('fail' => true, 'errors' => $validator->getMessageBag()->toArray()));
     } else {
         $user = $user_gestion->store($userData, $confirmation_code = str_random(30));
         //Se almacenan los datos por default del contacto, se pueden modificar cuando ya ingrese
         $operadorData = array('nombre_contacto_operador_1' => $formFields['username'], 'telf_contacto_operador_1' => "", 'ip_registro_operador' => $this->getIp(), 'email_contacto_operador' => $formFields['email'], 'direccion_empresa_operador' => "", 'id_usuario' => $user->id, 'id_tipo_operador' => 3, 'estado_contacto_operador' => 1, 'id_usuario_op' => 0);
         //Almacena el operador y almacena en sesion su identificacion
         $operador = $operador_gestion->store($operadorData);
         $request->session()->put('operador_id', $operador->id);
         if ($request->session()->has('user_id')) {
             $request->session()->forget('user_id');
         }
         //Se realiza el login y redireccion
         $request->session()->put('user_name', $user->email);
         $auth->login($user);
         $email = $auth->user()->email;
         $nombre = $auth->user()->email;
         try {
             $this->dispatch(new SendMail($user));
         } catch (Exception $e) {
         }
         /* Busca si ya tiene servicios activos o no */
         //logica que comprueba si el usuario tiene servicios para ser modificados
         //caso contrario ingresa nuevos serviciosS
         $listServicios = $gestion->getServiciosidUsuario($user->id);
         if ($listServicios) {
             $data['id_usuario_op'] = $listServicios[0]->id_usuario_op;
             $request->session()->put('operador_id', $data['id_usuario_op']);
             $request->session()->put('tip_oper', $listServicios[0]->id_tipo_operador);
             return redirect('/detalleServicios')->with('user', $user->id);
         } else {
             $returnHTML = '/IguanaTrip/public/myProfileOp';
             //->with('user', $user->id);
             return response()->json(array('success' => true, 'redirectto' => $returnHTML));
         }
     }
 }