api: include full URL in cancel_url and accept_url attributes (#17145)

This commit is contained in:
Frédéric Péters 2017-06-23 11:30:53 +02:00
parent 20e20bda0b
commit 2907e4bb90
2 changed files with 7 additions and 3 deletions

View File

@ -249,12 +249,13 @@ class Fillslot(GenericAPIView):
'booking_id': new_booking.id,
'datetime': localtime(event.start_datetime),
'api': {
'cancel_url': reverse('api-cancel-booking', kwargs={'booking_pk': new_booking.id})
'cancel_url': request.build_absolute_uri(
reverse('api-cancel-booking', kwargs={'booking_pk': new_booking.id}))
}
}
if new_booking.in_waiting_list:
response['api']['accept_url'] = reverse('api-accept-booking',
kwargs={'booking_pk': new_booking.id})
response['api']['accept_url'] = request.build_absolute_uri(
reverse('api-accept-booking', kwargs={'booking_pk': new_booking.id}))
return Response(response)

View File

@ -250,6 +250,7 @@ def test_booking_api(app, some_data, user):
assert resp.json['datetime'] == localtime(event.start_datetime).isoformat()
assert 'accept_url' not in resp.json['api']
assert 'cancel_url' in resp.json['api']
assert urlparse.urlparse(resp.json['api']['cancel_url']).netloc
assert Booking.objects.count() == 1
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id))
@ -491,6 +492,8 @@ def test_waiting_list_booking(app, some_data, user):
assert resp.json['in_waiting_list'] is True
assert 'accept_url' in resp.json['api']
assert 'cancel_url' in resp.json['api']
assert urlparse.urlparse(resp.json['api']['accept_url']).netloc
assert urlparse.urlparse(resp.json['api']['cancel_url']).netloc
# cancel a booking that was not on the waiting list
booking = Booking.objects.filter(event=event, in_waiting_list=False)[0]