Made hot fixes

This commit is contained in:
Sviatoslav Tsariov Yurievich 2025-05-24 12:58:06 +03:00
parent 7f9f66c519
commit e5be4e1f44
2 changed files with 21 additions and 10 deletions

View File

@ -17,7 +17,7 @@ def create_reservation():
current_user = ""#get_jwt_identity()
reservation = Reservation(**request.json, creator=current_user)
id = ReservationRepository.insert(reservation)
notify_clients(reservation.date)
notify_clients(reservation.date, reservation.room_id)
return jsonify({"message": "Reservation created successfully", "id": id})
@reservation_blueprint.route('/<reservation_id>', methods=['DELETE'])
@ -30,7 +30,7 @@ def cancel_reservation(reservation_id):
room_id = reservation["room_id"]
date = reservation["date"]
result = ReservationRepository.delete(reservation_id)
notify_clients(date)
notify_clients(date, room_id)
if not result or result.deleted_count == 0:
return jsonify({"error": "Reservation not found"}), 404
@ -44,7 +44,7 @@ def change_reservation(reservation_id):
try:
reservation = ReservationRepository.get_by_id(reservation_id)
result = ReservationRepository.update(reservation_id, data)
notify_clients(reservation["date"])
notify_clients(reservation["date"], reservation["room_id"])
if not result or result.matched_count == 0:
return jsonify({"error": "Reservation not found"}), 404
except:

View File

@ -18,12 +18,23 @@ def handle_disconnect():
@socketio.on('subscribe_reservations')
def handle_subscribe(data):
date = data.get('date')
join_room(date) # Используем дату как комнату
# Получаем все резервации для указанной даты
reservations = ReservationRepository.list_all({'date': date})
room_id = data.get('room_id')
if room_id:
room = f"{date}_{room_id}"
filters = {'date': date, 'room_id': room_id}
else:
room = date
filters = {'date': date}
join_room(room)
reservations = ReservationRepository.list_all(filters)
emit('reservations_update', reservations)
def notify_clients(date):
# Отправляем всем подписчикам этой даты
reservations = ReservationRepository.list_all({'date': date})
socketio.emit('reservations_update', reservations, room=date)
def notify_clients(date, room_id=None):
all_reservations = ReservationRepository.list_all({'date': date})
socketio.emit('reservations_update', all_reservations, room=date)
if room_id:
room_reservations = [r for r in all_reservations if r.room_id == room_id]
socketio.emit('reservations_update', room_reservations, room=f"{date}_{room_id}")