korabo/api/views/availability.py

41 lines
1.2 KiB
Python

from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404
from rest_framework.views import APIView
from api.serializers.event import EventSerializer
from common.build_response import build_response
from web.models import Event, EventComment
class AvailabilityView(APIView):
def post(self, request, event_id):
try:
event = get_object_or_404(Event, pk=event_id)
except Exception:
return build_response(404, message='Unable to find related event!')
data = request.POST
try:
user = User.objects.filter(email=data.get('created_by')).first()
except Exception:
return build_response(500, message="Could not find user!")
try:
new_comment = EventComment(
event=event,
content=data.get('content'),
submitted_by=user
)
new_comment.save()
except Exception:
return build_response(500, message='Unable to create new comment!')
try:
event_serializer = EventSerializer(event)
except Exception:
return build_response(422)
return build_response(data=event_serializer.data)