60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
from django.shortcuts import get_object_or_404
|
|
|
|
from api.serializers.event import EventSerializer
|
|
from api.views.base import BaseView
|
|
from web.models.event import Event
|
|
|
|
|
|
class EventView(BaseView):
|
|
SERIALIZER = EventSerializer
|
|
|
|
def get(self, request, event_id):
|
|
event = get_object_or_404(Event, pk=event_id)
|
|
return self._build_response(event)
|
|
|
|
def post(self, request):
|
|
data = request.POST
|
|
event = Event(
|
|
name=data.get('name'),
|
|
description=data.get('description'),
|
|
url=data.get('url'),
|
|
address=data.get('address'),
|
|
status=data.get('status'),
|
|
price=data.get('price'),
|
|
require_rsvp=data.get('require_rsvp'),
|
|
start_time=data.get('start_time'),
|
|
end_time=data.get('end_time'),
|
|
rain_date=data.get('rain_date'),
|
|
email=data.get('email'),
|
|
phone_number=data.get('phone_number'),
|
|
)
|
|
|
|
event.save()
|
|
return self._build_response(event)
|
|
|
|
def put(self, request, event_id):
|
|
data = request.POST
|
|
|
|
event = get_object_or_404(Event, pk=event_id)
|
|
|
|
event.name = data.get('name', event.name)
|
|
event.description = data.get('description', event.description)
|
|
event.url = data.get('url', event.url)
|
|
event.address = data.get('address', event.address)
|
|
event.status = data.get('status', event.status)
|
|
event.price = data.get('price', event.price)
|
|
event.require_rsvp = data.get('require_rsvp', event.require_rsvp)
|
|
event.start_time = data.get('start_time', event.start_time)
|
|
event.end_time = data.get('end_time', event.end_time)
|
|
event.rain_date = data.get('rain_date', event.rain_date)
|
|
event.email = data.get('email', event.email)
|
|
event.phone_number = data.get('phone_number', event.phone_number)
|
|
|
|
event.save()
|
|
self._build_response(event)
|
|
|
|
def delete(self, request, event_id):
|
|
event = get_object_or_404(Event, pk=event_id)
|
|
event.active = False
|
|
event.save()
|
|
return self._build_response(event)
|