PageRenderTime 29ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/api/authentication/TwitterService.py

https://gitlab.com/fdemian/Shelob
Python | 53 lines | 41 code | 11 blank | 1 comment | 5 complexity | 171d00d2d712fc6beb65f7b0980a960d MD5 | raw file
  1. import tornado
  2. import tornado.web
  3. import tornado.auth
  4. from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
  5. from api.model.sessionHelper import get_session
  6. from api.model.models import User
  7. class TwitterService(tornado.web.RequestHandler, tornado.auth.TwitterMixin):
  8. @tornado.gen.coroutine
  9. def get(self, auth_code, redirect_url):
  10. #user = self.get_user(fb_user)
  11. return None
  12. @staticmethod
  13. def get_user(fb_user):
  14. try:
  15. session_object = get_session()
  16. session = session_object()
  17. user = session.query(User).filter(User.email == fb_user['email']).one()
  18. payload = {
  19. 'id': user.id,
  20. 'avatar': user.avatar,
  21. 'username': user.username,
  22. 'role': 'author',
  23. 'link': fb_user["link"]
  24. }
  25. except MultipleResultsFound:
  26. payload = None
  27. except NoResultFound:
  28. if not fb_user['picture']['data']['is_silhouette']:
  29. picture = fb_user['picture']['data']['url']
  30. else:
  31. picture = ""
  32. payload = {
  33. 'id': fb_user["id_str"],
  34. 'avatar': picture,
  35. 'username': fb_user["name"],
  36. 'role': 'guest',
  37. 'link': fb_user["link"]
  38. }
  39. return payload