From 5797457346587514afaa05a6a8f653db27c64fc8 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Fri, 22 Jul 2016 10:20:06 +0300 Subject: [PATCH] #ARC-22 update testapp.py --- chat/testapp.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/chat/testapp.py b/chat/testapp.py index 401abf0..f8e5fa7 100644 --- a/chat/testapp.py +++ b/chat/testapp.py @@ -56,10 +56,8 @@ class TutorialHandler(websocket.WebSocketHandler): waiters = set() def open(self, *args, **kwargs): - self.waiters.add(self) - # print(dir(self)) - print(self.patch) - # print(self.waiters) + self.user_id = kwargs.get('user_id',1) + self.waiters.add((self.user_id, self)) # @gen.coroutine def on_message(self, message): @@ -70,13 +68,16 @@ class TutorialHandler(websocket.WebSocketHandler): if parsed['format_type'] == 'add_message_contact': self.add_message_for_contact(parsed['data']['chat_message'], parsed['data']['sender_id'], parsed['data']['recipent_id']) + elif parsed['format_type'] == 'add_message_order': + self.add_message_for_order(parsed['data']['chat_message'], parsed['data']['sender_id'], + parsed['data']['recipent_id'], parsed['data']['order_id']) elif parsed['format_type'] == 'order_message': self.get_messages_from_order_chat(parsed['order_id']) else: self.get_messages_from_order(parsed['user_id']) def on_close(self): - self.waiters.remove(self) + self.waiters.remove((self.user_id, self)) # insert_sql = "INSERT INTO chat_message (id,text,created,order_id, user_id) VALUES (DEFAULT,'{0}',NOW(),6,4)".format(str(parsed['message'])) # yield self.db.execute(insert_sql) @@ -91,9 +92,19 @@ class TutorialHandler(websocket.WebSocketHandler): insert_sql = "INSERT INTO chat_message (id,text,created,order_id, sender_id,recipent_id, private_type) " \ "VALUES (DEFAULT,'{0}',NOW(),NULL,{1},{2},'true')".format(message, sender_id, recipent_id) yield self.db.execute(insert_sql) - for waiter in self.waiters: + waiters = tuple(w for c, w in self.waiters if c == recipent_id) + for waiter in waiters: waiter.write_message({'msg': message, 'answer_type': 'add_contact'}) + @gen.coroutine + def add_message_for_order(self, message, sender_id,recipent_id, order_id): + insert_sql = "INSERT INTO chat_message (id,text,created,order_id, sender_id,recipent_id, private_type) " \ + "VALUES (DEFAULT,'{0}',NOW(),{1},{2},{3},'false')".format(message,order_id, sender_id, recipent_id) + yield self.db.execute(insert_sql) + waiters = tuple(w for c, w in self.waiters if c == recipent_id) + for waiter in waiters: + waiter.write_message({'msg': message, 'answer_type': 'add_order'}) + @gen.coroutine def get_messages_from_order(self, order_id): sql = "SELECT text FROM chat_message WHERE recipent_id=" + order_id @@ -119,7 +130,7 @@ class TutorialHandler(websocket.WebSocketHandler): class Application(web.Application): def __init__(self): handlers = [ - (r"/chat", TutorialHandler), + (r"/chat/(?P\d+)/", TutorialHandler), (r"/test", TestHandler), ] super().__init__(handlers=handlers, **settings)