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>
44 lines
1.4 KiB
Python
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)
|