Guest User

Untitled

a guest
May 22nd, 2018
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. import time
  2.  
  3. """
  4. Записываю коды ответов в виде словаря
  5. """
  6. code_dict = {
  7. 100: 'BASIC_NOTICE',
  8. 101: 'IMPORTANT_NOTICE',
  9. 200: 'OK',
  10. 201: 'OBJECT_CREATED',
  11. 202: 'ACCEPTED',
  12. 400: 'WRONG_REQUEST',
  13. 401: 'NOT_AUTHORIZED',
  14. 402: 'INCORRECT_LOGIN_OR_PASSWORD',
  15. 403: 'USERS_FORBIDDEN',
  16. 404: 'USER_OR_CHAT_NOT_FOUND_IN_SERVER',
  17. 409: 'USER_ALREADY_USES_THIS_LOGIN',
  18. 410: 'USER_OFFLINE',
  19. 500: 'SERVER_ERROR'
  20. }
  21.  
  22. class JIMMsg:
  23. """
  24. Метод создает сообщение на основе переданных ему параметров в виде dict и типа действия и дополняет его timestap
  25. """
  26. def __init__(self, action, message=None):
  27. self.msg = {'action': '',
  28. 'time': '',
  29. 'message': ''}
  30. if action in ['presence', 'msg']:
  31. self.msg['action'] = action
  32. else:
  33. raise Exception('Недопустмое значение поял action!')
  34. self.msg['time'] = time.time()
  35. self.msg[message] = message
  36.  
  37. class JIMResponse:
  38. """
  39. Метод создающий сообщения-ответы в зависимости от кода ответа клиента
  40. """
  41. def __init__(self, response_code):
  42. self.resp = {'response': '',
  43. 'time': '',
  44. 'error': ''}
  45. if type(response_code) is int:
  46. if response_code in [200, 400]:
  47. self.resp['response'] = response_code
  48. else:
  49. raise Exception('Недопустимое значение response_code!')
  50. else:
  51. raise Exception('Недопустимый форма поля response_code!')
  52. self.resp['time'] = time.time()
  53. if response_code == 400:
  54. self.resp['error'] = 'недопустимый запрос / json-объект!'
  55.  
  56.  
  57. """ Константы для jim протокола, настройки"""
  58.  
  59. # Ключи
  60. ACTION = 'action'
  61. TIME = 'time'
  62. USER = 'user'
  63. ACCOUNT_NAME = 'account_name'
  64. RESPONSE = 'response'
  65. ERROR = 'error'
  66. TYPE = 'type'
  67. TO = 'to'
  68. FROM = 'encoding'
  69. MESSAGE = 'message'
  70. STATUS = 'status'
  71. ALERT = 'alert'
  72.  
  73. # Значения
  74. PRESENCE = 'presence'
  75.  
  76. # Коды ответов
  77. BASIC_NOTICE = 100
  78. IMPORTANT_NOTICE = 101
  79. OK = 200
  80. OBJECT_CREATED = 201
  81. ACCEPTED = 202
  82. WRONG_REQUEST = 400
  83. NOT_AUTHORIZED = 401
  84. INCORRECT_LOGIN_OR_PASSWORD = 402
  85. USERS_FORBIDDEN = 403
  86. USER_OR_CHAT_NOT_FOUND_IN_SERVER = 404
  87. USER_ALREADY_USES_THIS_LOGIN = 409
  88. USER_OFFLINE = 410
  89. SERVER_ERROR = 500
  90.  
  91. # Кортеж из кодов ответов
  92. RESPONSE_CODES = (BASIC_NOTICE, OK, ACCEPTED, WRONG_REQUEST, SERVER_ERROR)
Add Comment
Please, Sign In to add comment