def create_room(): """ Create Room function POST json format: {"room_name": room_name} Response json format: {"room_name": room_name, "room_id": room_id} If the room for name is already exist, return 406 """ creator = g.user info = get_json_post_data() if info is None: return no_post_data name = info.get('room_name', None) if name is None: return Response(status=406) room_list = ChatRoom.query.filter_by(title=name).all() if len(room_list) > 0: return Response("room %s was existed" % name, 406) # create the room room = ChatRoom(name, creator.id) db.session.add(room) db.session.commit() # and let creator join this room room_manager.join_room(room.id, creator.id) return jsonify(room_name=room.title, room_id=room.id)
def join_room(room_id): """ Join room function: POST: no data Response 200 if success If the room is not exist, return 400 If the user is not online now, return 406 """ join_user = g.user if not online_users.is_online(join_user): return login_first() room = ChatRoom.query.get(room_id) if room is None: return room_not_exist_by_id(room_id) room_manager.join_room(room_id, join_user.id) # broadcast a message to all user room_manager.send_message(join_user.id, room_id, "%s join room!" % join_user.username) return Response("successful join room %s" % room.title, 200)