api: return overbooked_places in accept endpoint response (#40017)

This commit is contained in:
Lauréline Guérin 2020-03-05 16:18:09 +01:00
parent 8ea7b2ae37
commit f675e0e7ef
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 18 additions and 1 deletions

View File

@ -796,7 +796,12 @@ class AcceptBooking(APIView):
}
return Response(response)
booking.accept()
response = {'err': 0, 'booking_id': booking.id}
event = booking.event
response = {
'err': 0,
'booking_id': booking.pk,
'overbooked_places': max(0, event.booked_places - event.places),
}
return Response(response)

View File

@ -1355,6 +1355,8 @@ def test_accept_booking(app, some_data, user):
assert resp.json['err_desc'] == 'secondary booking'
resp = app.post('/api/booking/%s/accept/' % primary.id)
assert resp.json['err'] == 0
assert resp.json['overbooked_places'] == 0
assert Booking.objects.filter(in_waiting_list=True).count() == 0
assert Booking.objects.filter(in_waiting_list=False).count() == 2
primary.refresh_from_db()
@ -1377,6 +1379,16 @@ def test_accept_booking(app, some_data, user):
assert Booking.objects.filter(in_waiting_list=True).count() == 2
assert Booking.objects.filter(in_waiting_list=False).count() == 0
# accept a booking with overbooking
event.places = 1
event.save()
Booking.objects.update(cancellation_datetime=None)
primary.refresh_from_db()
primary.suspend()
resp = app.post('/api/booking/%s/accept/' % primary.pk)
assert resp.json['err'] == 0
assert resp.json['overbooked_places'] == 1
def test_suspend_booking(app, some_data, user):
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id