/** * 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; }
/** * 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; }