def post(self): """ Create fake users for boxes :return: Boll """ nn = datetime.utcnow() for u in ['teddy', 'pipocando']: local_user = User() local_user.id = u local_user.facebook_id = len(u) local_user.facebook_token = '098123098123' local_user.facebook_data = {'name': u} local_user.email = '{}@next.com'.format(u) local_user.name = u.capitalize() local_user.referral = u local_user.avatar = {'big': 'a', 'small': 'b'} local_user.created_at = nn self.db.sync(local_user) user_life = Life() user_life.user_id = local_user.id user_life.created_at = datetime.utcnow() self.db.sync(user_life) referral = ReferralRequest() referral.user_id = local_user.id referral.id = u referral.created_at = nn self.db.sync(referral) return { "message": "", "status": "success", }
def save_user(self, user): db = self.application.settings.get('engine') local_user = None pictures = {} referred_id = uuid4().hex try: big_picture = yield self.facebook_request( '/me/picture', type='square', width='200', height='200', redirect=False, access_token=user.get('access_token')) pictures['small'] = user.get('picture', {}).get('data', {}).get('url') if 'data' not in big_picture.keys(): big_picture = None else: pictures['big'] = big_picture.get('data', {}).get('url') except Exception as e: big_picture = None log.info(big_picture) try: local_user = db.query(User).filter( User.facebook_id == user.get('id')).one() log.info(local_user) if local_user and not local_user.avatar: local_user.avatar = pictures db.sync(local_user) life = local_user = db.query(Life).filter( Life.user_id == local_user.id).one() if life.last_dec: self.session['last_dec'] = life.last_dec except flywheel.query.EntityNotFoundException: try: email = user.get('email') if not email: email = '{}@nomail.me'.format(user.get('id')) local_user = User() local_user.id = uuid4().hex local_user.facebook_id = int(user.get('id')) local_user.facebook_token = user.get('access_token') local_user.facebook_data = user local_user.email = email local_user.name = user.get('name') local_user.referral = referred_id local_user.avatar = pictures local_user.created_at = datetime.utcnow() db.sync(local_user) user_life = Life() user_life.user_id = local_user.id user_life.created_at = datetime.utcnow() db.sync(user_life) referral = ReferralRequest() referral.user_id = local_user.id referral.id = referred_id referral.created_at = datetime.utcnow() db.sync(referral) except Exception as e: log.error(e) raise self.referred(local_user, db) try: self.application.db_conn.get('ping').incr('user_count') except Exception as e: log.warn('User incr not completed: {}'.format(e)) try: if 'nomail.me' not in local_user.email: mail = self.application.settings.get('mailer') path = '{}/assets'.format( self.application.settings.get('instance', {}).get('front')) lShare = quote('{}/r/{}'.format( self.application.settings.get('instance', {}).get('api_email'), referred_id)) log.info(lShare) # faceid = self.application.settings.get('facebook_api_key') mail.send(to=local_user.email, format='html', subject="Bem-vindo ao Desafio Next!", body=self.render_string("template-welcome.html", userName=local_user.name, path=path, shareFacebook=lShare, shareTwitter=lShare)) log.info('Email sent') else: log.warning('User has no mail') except Exception as e: log.warn('EMAIL ERROR: {}'.format(e)) except Exception as e: raise e finally: return local_user