|
@@ -1,4 +1,5 @@
|
|
|
import datetime
|
|
|
+import json
|
|
|
from django.db import IntegrityError
|
|
|
from django.http import HttpResponseNotFound, HttpResponseRedirect, JsonResponse, HttpResponseNotAllowed
|
|
|
from django.shortcuts import render
|
|
@@ -127,6 +128,26 @@ def update_slots(request, url):
|
|
|
participant.save()
|
|
|
return HttpResponseRedirect(f'/{event.url}')
|
|
|
|
|
|
+def event_api(request, url):
|
|
|
+ """
|
|
|
+ REST JSON API for an event
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ event = Event.objects.get(url=url)
|
|
|
+ except Event.DoesNotExist:
|
|
|
+ return JsonResponse({'error': 'Event not found'}, status=404)
|
|
|
+ if request.method == 'GET':
|
|
|
+ return JsonResponse({
|
|
|
+ 'name': event.name,
|
|
|
+ 'url': event.url,
|
|
|
+ 'start_time': event.start_time.strftime('%H:%M'),
|
|
|
+ 'end_time': event.end_time.strftime('%H:%M'),
|
|
|
+ 'slot_interval': event.slot_interval.seconds // 60,
|
|
|
+ 'dates': [date.date.strftime('%Y-%m-%d') for date in event.date_set.all()],
|
|
|
+ })
|
|
|
+ else:
|
|
|
+ return HttpResponseNotAllowed(['GET'])
|
|
|
+
|
|
|
@csrf_exempt
|
|
|
def slots_api(request, url):
|
|
|
"""
|