def join_room(self, user_id: str, user_name: str, room_id: str, room_name: str) -> None:
self.get_room_name(room_id)
@with_session
def _join_room(session=None):
room = session.query(Rooms).filter(Rooms.uuid == room_id).first()
user = session.query(Users).filter(Users.uuid == user_id).first()
if user is None:
user = Users()
user.uuid = user_id
user.name = user_name
session.add(user)
if room is None:
logger.error('no such room %s (%s)' % (room_id, room_name))
raise NoSuchRoomException(room_id)
user.rooms.append(room)
session.add(room)
room.users.append(user)
session.add(room)
session.commit()
try:
_join_room()
except UnmappedInstanceError as e:
error_msg = 'user "%s" (%s) tried to join room "%s" (%s), but the room was None when joining; ' \
'likely removed after check and before joining: %s'
logger.warning(error_msg % (user_id, user_name, room_id, room_name, str(e)))
except IntegrityError as e:
logger.warning('user "%s" (%s) tried to join room "%s" (%s) but it has been deleted: %s' %
(user_name, user_id, room_name, room_id, str(e)))
raise NoSuchRoomException(room_id)
评论列表
文章目录