response.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: response.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-10-25 21:07:00 (CST)
  9. # Last Update:星期六 2016-12-17 10:38:49 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import jsonify
  14. from flask_babelex import gettext as _
  15. class HTTPResponse(object):
  16. NORMAL_STATUS = '200'
  17. AUTH_USER_OR_PASSWORD_ERROR = '301'
  18. AUTH_CAPTCHA_ERROR = '302'
  19. AUTH_USERNAME_UNIQUE = '303'
  20. AUTH_EMAIL_UNIQUE = '303'
  21. AUTH_EMAIL_NOT_REGISTER = '304'
  22. AUTH_USER_IS_CONFIRMED = '305',
  23. FORM_VALIDATE_ERROR = '305'
  24. AUTH_TOKEN_VERIFY_FAIL = '306'
  25. FORBIDDEN = '403'
  26. STATUS_DESCRIPTION = {
  27. NORMAL_STATUS: 'normal',
  28. AUTH_USER_OR_PASSWORD_ERROR: _('Username or Password Error'),
  29. AUTH_CAPTCHA_ERROR: _('Captcha Error'),
  30. AUTH_EMAIL_UNIQUE: _('The email has been registered!'),
  31. AUTH_USERNAME_UNIQUE: _('The username has been registered!'),
  32. AUTH_EMAIL_NOT_REGISTER: _('The email is error'),
  33. AUTH_USER_IS_CONFIRMED:
  34. _('Your account has been confirmed,don\'t need again!'),
  35. AUTH_TOKEN_VERIFY_FAIL:
  36. _('Token is out of time,please get token again!'),
  37. FORM_VALIDATE_ERROR: _('Form validate error'),
  38. FORBIDDEN: _('You have no permission!')
  39. }
  40. def __init__(self,
  41. status='200',
  42. message='',
  43. data=None,
  44. description='',
  45. pageinfo=None):
  46. self.status = status
  47. self.message = self.STATUS_DESCRIPTION.get(status)
  48. self.data = data
  49. self.description = description
  50. self.pageinfo = pageinfo
  51. def to_dict(self):
  52. response = {
  53. 'status': self.status,
  54. 'message': self.message,
  55. 'data': self.data,
  56. 'description': self.description,
  57. }
  58. if self.pageinfo is not None:
  59. response.update(pageinfo=self.pageinfo)
  60. return response
  61. def to_response(self):
  62. response = self.to_dict()
  63. return jsonify(response)