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)