localist/api/views/category.py

42 lines
1.3 KiB
Python

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 = request.POST
category = Category(
name=data.get('name'),
description=data.get('description')
)
category.save()
return self._build_response(category)
def put(self, request, category_id):
data = request.POST
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)