From 72a29a6b8ba59802b76e05f9b0fad53097b349f0 Mon Sep 17 00:00:00 2001 From: Dominic DiTaranto Date: Sat, 13 Jun 2026 22:39:23 -0400 Subject: [PATCH] classy --- api/models.py | 3 --- api/views/base.py | 13 +++++++++++++ api/views/event.py | 21 ++++++++++----------- web/admin.py | 1 + web/models/event.py | 1 - web/views.py | 3 --- 6 files changed, 24 insertions(+), 18 deletions(-) delete mode 100644 api/models.py create mode 100644 api/views/base.py delete mode 100644 web/views.py diff --git a/api/models.py b/api/models.py deleted file mode 100644 index 71a8362..0000000 --- a/api/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/api/views/base.py b/api/views/base.py new file mode 100644 index 0000000..903a77b --- /dev/null +++ b/api/views/base.py @@ -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 diff --git a/api/views/event.py b/api/views/event.py index d32a82e..5aba7c4 100644 --- a/api/views/event.py +++ b/api/views/event.py @@ -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 api.serializers.event import EventSerializer +from api.views.base import BaseView +from web.models.event import Event -class EventView(APIView): - def get(self, requets, event_id): +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) @@ -26,6 +28,7 @@ class EventView(APIView): email=data.get('email'), phone_number=data.get('phone_number'), ) + event.save() return self._build_response(event) @@ -33,6 +36,7 @@ class EventView(APIView): 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) @@ -53,9 +57,4 @@ class EventView(APIView): event = get_object_or_404(Event, pk=event_id) event.active = False event.save() - - def _build_response(self, data): - event_serializer = EventSerializer(data) - response = Response() - response.data = event_serializer.data - return response + return self._build_response(event) diff --git a/web/admin.py b/web/admin.py index efb705c..8c4a464 100644 --- a/web/admin.py +++ b/web/admin.py @@ -5,6 +5,7 @@ from web.models.event_category import EventCategory, EventCategoryAdmin from web.models.event_tag import EventTag, EventTagAdmin from web.models.tag import Tag, TagAdmin + admin.site.register(Category, CategoryAdmin) admin.site.register(Event, EventAdmin) admin.site.register(EventCategory, EventCategoryAdmin) diff --git a/web/models/event.py b/web/models/event.py index c702866..3fb5ca7 100644 --- a/web/models/event.py +++ b/web/models/event.py @@ -4,7 +4,6 @@ from web.models.base import BaseModel from enum import StrEnum - class Event(BaseModel): class Status(models.TextChoices): SCHEDULED = 'scheduled', 'Scheduled' diff --git a/web/views.py b/web/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/web/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here.