localist/api/views/category.py
madeleinema 175ffda130 added cors headers to settings file, and changed request.post to json.loads(request.body) for frontend (#2)
I updated the

- settings.py file to influce cors headers
- requirements.txt to include cors-headers
- Updated views/events, categories, and tags "request.post" to "json.loads(request.body)"
Please approve.

Co-authored-by: Madeleine <madeleine@Madeleines-MacBook-Air.local>
Reviewed-on: #2
Reviewed-by: dominic <me@domdit.com>
2026-06-20 17:59:53 -04:00

44 lines
1.4 KiB
Python

import json
from django.shortcuts import get_object_or_404
from api.serializers.category import CategorySerializer
from api.views.base import BaseView
from web.models.category import Category
class CategoryView(BaseView):
SERIALIZER = CategorySerializer
def get(self, request, category_id=None):
if category_id:
category = get_object_or_404(Category, pk=category_id)
return self._build_response(category)
else:
categories = Category.objects.filter(active=True).all()
return self._build_multi_response(categories)
def post(self, request):
data = json.loads(request.body)
category = Category(
name=data.get('name'),
description=data.get('description')
)
category.save()
return self._build_response(category)
def put(self, request, category_id):
data = json.loads(request.body)
category = get_object_or_404(Category, pk=category_id)
category.name = data.get('name', category.name)
category.description = data.get('description', category.description)
return self._build_response(category)
def delete(self, request, category_id):
category = get_object_or_404(Category, pk=category_id)
category.active = False
category.save()
return self._build_response(category)