response.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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:星期六 2017-4-1 18:51: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. OTHER_ERROR = '500'
  27. STATUS_DESCRIPTION = {
  28. NORMAL_STATUS: 'normal',
  29. AUTH_USER_OR_PASSWORD_ERROR: _('Username or Password Error'),
  30. AUTH_CAPTCHA_ERROR: _('Captcha Error'),
  31. AUTH_EMAIL_UNIQUE: _('The email has been registered!'),
  32. AUTH_USERNAME_UNIQUE: _('The username has been registered!'),
  33. AUTH_EMAIL_NOT_REGISTER: _('The email is error'),
  34. AUTH_USER_IS_CONFIRMED:
  35. _('Your account has been confirmed,don\'t need again!'),
  36. AUTH_TOKEN_VERIFY_FAIL:
  37. _('Token is out of time,please get token again!'),
  38. FORM_VALIDATE_ERROR: _('Form validate error'),
  39. FORBIDDEN: _('You have no permission!'),
  40. OTHER_ERROR: _('Other error')
  41. }
  42. def __init__(self,
  43. status='200',
  44. message='',
  45. data=None,
  46. description='',
  47. pageinfo=None):
  48. self.status = status
  49. self.message = self.STATUS_DESCRIPTION.get(status)
  50. self.data = data
  51. self.description = description
  52. self.pageinfo = pageinfo
  53. def to_dict(self):
  54. response = {
  55. 'status': self.status,
  56. 'message': self.message,
  57. 'data': self.data,
  58. 'description': self.description,
  59. }
  60. if self.pageinfo is not None:
  61. response.update(pageinfo=self.pageinfo.as_dict())
  62. return response
  63. def to_response(self):
  64. response = self.to_dict()
  65. return jsonify(response)