online_chat.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from abc import ABCMeta
  2. from enum import Enum
  3. class UserService(object):
  4. def __init__(self):
  5. self.users_by_id = {} # key: user id, value: User
  6. def add_user(self, user_id, name, pass_hash):
  7. pass
  8. def remove_user(self, user_id):
  9. pass
  10. def add_friend_request(self, from_user_id, to_user_id):
  11. pass
  12. def approve_friend_request(self, from_user_id, to_user_id):
  13. pass
  14. def reject_friend_request(self, from_user_id, to_user_id):
  15. pass
  16. class User(object):
  17. def __init__(self, user_id, name, pass_hash):
  18. self.user_id = user_id
  19. self.name = name
  20. self.pass_hash = pass_hash
  21. self.friends_by_id = {} # key: friend id, value: User
  22. self.friend_ids_to_private_chats = {} # key: friend id, value: private chats
  23. self.group_chats_by_id = {} # key: chat id, value: GroupChat
  24. self.received_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
  25. self.sent_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
  26. def message_user(self, friend_id, message):
  27. pass
  28. def message_group(self, group_id, message):
  29. pass
  30. def send_friend_request(self, friend_id):
  31. pass
  32. def receive_friend_request(self, friend_id):
  33. pass
  34. def approve_friend_request(self, friend_id):
  35. pass
  36. def reject_friend_request(self, friend_id):
  37. pass
  38. class Chat(metaclass=ABCMeta):
  39. def __init__(self, chat_id):
  40. self.chat_id = chat_id
  41. self.users = []
  42. self.messages = []
  43. class PrivateChat(Chat):
  44. def __init__(self, first_user, second_user):
  45. super(PrivateChat, self).__init__()
  46. self.users.append(first_user)
  47. self.users.append(second_user)
  48. class GroupChat(Chat):
  49. def add_user(self, user):
  50. pass
  51. def remove_user(self, user):
  52. pass
  53. class Message(object):
  54. def __init__(self, message_id, message, timestamp):
  55. self.message_id = message_id
  56. self.message = message
  57. self.timestamp = timestamp
  58. class AddRequest(object):
  59. def __init__(self, from_user_id, to_user_id, request_status, timestamp):
  60. self.from_user_id = from_user_id
  61. self.to_user_id = to_user_id
  62. self.request_status = request_status
  63. self.timestamp = timestamp
  64. class RequestStatus(Enum):
  65. UNREAD = 0
  66. READ = 1
  67. ACCEPTED = 2
  68. REJECTED = 3