def user_leave_room(room_id):
member = RoomMember.select('room_members.id','room_members.user_id', 'r.user_id as owner_id') \
.join('rooms as r', 'r.id', '=', 'room_members.room_id') \
.where('room_members.room_id', room_id) \
.where('room_members.user_id', g.user['id']) \
.first()
if not member:
return jsonify({'message': "Unknown Room"}), 400
if member.user_id == member.owner_id:
Room.where('id', room_id).delete()
socketio.emit('close_room', {'room_id': room_id}, room='room-%s' % room_id)
close_room(room='room-%s' % room_id, namespace='/')
else:
member.delete()
clients = _.where(connected_users, {'id': member.user_id})
if clients and _.isList(clients):
for item in clients:
leave_room('room-%s' % room_id, sid=item['sid'], namespace='/')
socketio.emit('update_members', {'room_id': room_id, 'detach': []}, room='room-%s' % room_id)
return jsonify({'message': 'Success'}), 200
评论列表
文章目录