This commit is contained in:
Dominic DiTaranto 2026-06-13 22:39:23 -04:00
parent af65d4b57e
commit 72a29a6b8b
6 changed files with 24 additions and 18 deletions

View file

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

13
api/views/base.py Normal file
View file

@ -0,0 +1,13 @@
from rest_framework.views import APIView
from rest_framework.response import Response
class BaseView(APIView):
SERIALIZER = None
def _build_response(self, data):
model_serializer = self.SERIALIZER(data)
response = Response()
response.data = model_serializer.data
return response

View file

@ -1,12 +1,14 @@
from rest_framework.views import APIView
from rest_framework.response import Response
from web.models.event import Event
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from api.serializers.event import EventSerializer from api.serializers.event import EventSerializer
from api.views.base import BaseView
from web.models.event import Event
class EventView(APIView): class EventView(BaseView):
def get(self, requets, event_id): SERIALIZER = EventSerializer
def get(self, request, event_id):
event = get_object_or_404(Event, pk=event_id) event = get_object_or_404(Event, pk=event_id)
return self._build_response(event) return self._build_response(event)
@ -26,6 +28,7 @@ class EventView(APIView):
email=data.get('email'), email=data.get('email'),
phone_number=data.get('phone_number'), phone_number=data.get('phone_number'),
) )
event.save() event.save()
return self._build_response(event) return self._build_response(event)
@ -33,6 +36,7 @@ class EventView(APIView):
data = request.POST data = request.POST
event = get_object_or_404(Event, pk=event_id) event = get_object_or_404(Event, pk=event_id)
event.name = data.get('name', event.name) event.name = data.get('name', event.name)
event.description = data.get('description', event.description) event.description = data.get('description', event.description)
event.url = data.get('url', event.url) event.url = data.get('url', event.url)
@ -53,9 +57,4 @@ class EventView(APIView):
event = get_object_or_404(Event, pk=event_id) event = get_object_or_404(Event, pk=event_id)
event.active = False event.active = False
event.save() event.save()
return self._build_response(event)
def _build_response(self, data):
event_serializer = EventSerializer(data)
response = Response()
response.data = event_serializer.data
return response

View file

@ -5,6 +5,7 @@ from web.models.event_category import EventCategory, EventCategoryAdmin
from web.models.event_tag import EventTag, EventTagAdmin from web.models.event_tag import EventTag, EventTagAdmin
from web.models.tag import Tag, TagAdmin from web.models.tag import Tag, TagAdmin
admin.site.register(Category, CategoryAdmin) admin.site.register(Category, CategoryAdmin)
admin.site.register(Event, EventAdmin) admin.site.register(Event, EventAdmin)
admin.site.register(EventCategory, EventCategoryAdmin) admin.site.register(EventCategory, EventCategoryAdmin)

View file

@ -4,7 +4,6 @@ from web.models.base import BaseModel
from enum import StrEnum from enum import StrEnum
class Event(BaseModel): class Event(BaseModel):
class Status(models.TextChoices): class Status(models.TextChoices):
SCHEDULED = 'scheduled', 'Scheduled' SCHEDULED = 'scheduled', 'Scheduled'

View file

@ -1,3 +0,0 @@
from django.shortcuts import render
# Create your views here.