コード例 #1
0
ファイル: Registrar.php プロジェクト: centaurustech/vivala
 /**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 public function create(array $data)
 {
     $nome = ucwords(strtolower($data['username']));
     $sobrenome = ucwords(strtolower($data['username_last']));
     //Criando perfil, usando dos atributos dentro de fillable[]
     $user = User::create(['username' => $nome, 'email' => $data['email'], 'genero' => $data['genero'], 'password' => bcrypt($data['password'])]);
     //Criando perfil usando as informações da tela de registro.
     $perfil = new Perfil();
     $perfil->user_id = $user->id;
     $perfil->nome_completo = $nome . ' ' . $sobrenome;
     $perfil->apelido = $nome;
     $perfil->aniversario = Carbon::createFromFormat('d/m/Y', $data['aniversario']);
     $perfil->save();
     //Criando uma prettyUrl para o novo usuario (username_currentTimestamp)
     $prettyUrl = new PrettyUrl();
     $prettyUrl->url = str_replace(" ", "", $user->username) . '_' . Carbon::now()->getTimestamp();
     $prettyUrl->tipo = 'usuario';
     $perfil->prettyUrl()->save($prettyUrl);
     // Envia um email de boas vindas
     Mail::send('emails.bemvindo', ['user' => $user], function ($message) use($user) {
         $message->to($user->email, $user->username)->subject('Bem vindo à Vivalá');
         $message->from('*****@*****.**', 'Vivalá');
     });
     // Faz um post de criação de perfil numerado caso seja < 300
     // e não numerado (só com o welcome) caso seja > 300
     if ($user->genero == 'fb.female' || $user->genero == 'feminino') {
         $welcome = "Bem vinda!";
     } else {
         $welcome = "Bem vindo!";
     }
     $novoPost = new Post();
     if ($perfil->id <= 300) {
         $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " é a " . $perfil->id . "ª pessoa a se juntar à Vivalá. " . $welcome;
     } else {
         $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " se juntou à Vivalá. " . $welcome;
     }
     $novoPost->tipo_post = 'acontecimento';
     $novoPost->relevancia = 999;
     $novoPost->relevancia_rate = 10;
     //Salvando novoPost para entidadeAtiva
     $perfil->posts()->save($novoPost);
     return $user;
 }
コード例 #2
0
 /**
  * Se nao encontrar, cria um novo usuario e redireciona-o para o quiz
  * @return User | Redirect           	
  */
 private function findByEmailOrCreate($userData)
 {
     //Procura/Cria o usuário com base no email cadastrado no Fb
     $user = User::where('email', '=', $userData->email)->first();
     $this->criouNovoUsuario = $user == null;
     //Se for um novo usuario
     if ($this->criouNovoUsuario) {
         $user = User::firstOrCreate(['email' => $userData->email]);
         //Atualiza o usuário com os dados do Fb
         $user->username = $userData->name;
         //Usando do translate do Laravel.
         $user->genero = trans("fb." . $userData->{'user'}['gender']);
         $user->fb_token = $userData->token;
         $user->save();
         //criando perfil para usuario
         $perfil = new Perfil();
         $perfil->nome_completo = $userData->name;
         $perfil->genero = trans("fb." . $userData->{'user'}['gender']);
         $perfil->apelido = $userData->{'user'}['first_name'];
         $perfil->user_id = $user->id;
         $perfil->save();
         // Faz um post de criação de perfil numerado caso seja < 300
         // e não numerado (só com o welcome) caso seja > 300
         if ($user->genero == 'fb.female' || $user->genero == 'feminino') {
             $welcome = "Bem vinda!";
         } else {
             $welcome = "Bem vindo!";
         }
         $novoPost = new Post();
         if ($perfil->id <= 300) {
             $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " é a " . $perfil->id . "ª pessoa a se juntar à Vivalá. " . $welcome;
         } else {
             $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " se juntou à Vivalá. " . $welcome;
         }
         $novoPost->tipo_post = 'acontecimento';
         $novoPost->relevancia = 999;
         $novoPost->relevancia_rate = 10;
         //Salvando novoPost para entidadeAtiva
         $perfil->posts()->save($novoPost);
         /**
          * 
          * Criando uma prettyUrl para o novo usuario (username_currentTimestamp)
          */
         $prettyUrl = new PrettyUrl();
         $prettyUrl->url = $user->username . '_' . Carbon::now()->getTimestamp();
         $prettyUrl->tipo = 'usuario';
         $perfil->prettyUrl()->save($prettyUrl);
         // Envia um email de boas vindas
         Mail::send('emails.bemvindo', ['user' => $user], function ($message) use($user) {
             $message->to($user->email, $user->username)->subject('Bem vindo à Vivalá');
             $message->from('*****@*****.**', 'Vivalá');
         });
         $fotoPerfil = new Foto(['path' => $userData->avatar_original, 'tipo' => 'avatar']);
         $perfil->fotos()->save($fotoPerfil);
         //Caso o usuario ja exista, só ainda nao tinha feito login com o facebook
     } else {
         $perfil = $user->perfil;
     }
     //Atualiza a tabela de dados do Fb
     $facebookData = $user->facebookData ? $user->facebookData : new FacebookData();
     if (isset($userData->user_birthday)) {
         $facebookData->user_birthday = $userData->user_birthday;
     }
     if (isset($userData->user_hometown)) {
         $facebookData->user_hometown = $userData->user_hometown;
     }
     if (isset($userData->user_likes)) {
         $facebookData->user_likes = $userData->user_likes;
     }
     if (isset($userData->user_location)) {
         $facebookData->user_location = $userData->user_location;
     }
     $user->facebookData()->save($facebookData);
     return $user;
 }