User.findOne({ 'local.email' : signup_email }, function(err, user) { // if there are any errors, return the error if (err) return done(err); // check to see if theres already a user with that email if (user) { return done(null, false, req.flash('signupMessage', 'Esse e-mail já está em uso.')); } else { // if there is no user with that email // create the user var newUser = new User(); //tratar avatar var options = { email: signup_email, parameters: { 'size': '200', 'd': '404'}, //https://localhost:5000/img/avatares/'+randomAvatar(1, 17)+'.png secure: true } var avatar = gravatar.imageUrl(options); var avatar_user; request({uri:avatar}, function (error, response) { if (!error && response.statusCode == 404) { //sys.puts(body) // Print the google web page. avatar_user = '******'+chance.natural({min: 1, max: 17})+'.png'; createNewUser(avatar_user, signup_email, signup_password); } else { avatar_user = ''; createNewUser(avatar_user, signup_email, signup_password); } //console.log(response.statusCode); }); function createNewUser(avatar_user, signup_email, signup_password) { // set the user's local credentials newUser.local.email = signup_email; newUser.alias = shortid.generate(); newUser.avatar = avatar_user; newUser.permission = 'user'; newUser.name = req.body.name; newUser.local.password = newUser.generateHash(signup_password); // save the user newUser.save(function(err) { if (err) throw err; return done(null, newUser); }); } } });
avatarUser: function avatarUser(req, res, userView, userLogged, renderView) { //a definição da variávei user altera o local que ele lê, //se vier como req.user quer dizer que vai pegar a seção do USUARIO LOGADO na roda /profile //se vier como user é do usuário sendo consultado no banco pela rota user/:id var options = { email: userView.local.email, parameters: { 'size': '200', 'd': '404'}, //https://localhost:5000/img/avatares/'+randomAvatar(1, 17)+'.png secure: true } var hasAvatar = userView.avatar; var avatar = gravatar.imageUrl(options); //verifica se tem avatar cadastrado if (hasAvatar == '' || hasAvatar == null) { request({uri:avatar}, function (error, response) { //verificar se o gravatar existe - se ele não existe vai retornar 404 devido ao parametro passado ao api if (!error && response.statusCode == 200) { //se o gravatar existe, então avatar é igual a url dele avatar = avatar; } else if (!error && response.statusCode == 404) { //se não existe, o avatar será o coelho (por enquanto). :P avatar = '/img/avatares/6.png'; } //o sender tem que ser depois que o request for feito, senão não pega a variável --> Oláááá, callback hell! res.render(renderView, { userView: userView, userLogged: userLogged, avatar: avatar, message: req.flash() }); //console.log(response.statusCode); }); } else { //Nesse caso já tem avatar cadastrado, por personalização, portanto, não precisa do gravatar avatar = hasAvatar; //o sender tem que ser depois que o request for feito, senão não pega a variável --> Oláááá, callback hell! res.render(renderView, { userView: userView, userLogged: userLogged, avatar: avatar, message: req.flash() }); } },
render() { return ( <Image style={[{width: 50, height:50}, this.props.style]} source={{uri:gravatarApi.imageUrl(this.props.options)}} /> ); }