35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
|
|
from django.shortcuts import get_object_or_404
|
||
|
|
from rest_framework.views import APIView
|
||
|
|
from rest_framework.response import Response
|
||
|
|
|
||
|
|
from apps.dashboard.models import Item, List
|
||
|
|
from apps.api.serializers import ItemSerializer, ListSerializer
|
||
|
|
|
||
|
|
|
||
|
|
class ListDetailAPI(APIView):
|
||
|
|
def get(self, request, list_id):
|
||
|
|
list_ = get_object_or_404(List, id=list_id)
|
||
|
|
serializer = ListSerializer(list_)
|
||
|
|
return Response(serializer.data)
|
||
|
|
|
||
|
|
class ListItemsAPI(APIView):
|
||
|
|
def post(self, request, list_id):
|
||
|
|
list_ = get_object_or_404(List, id=list_id)
|
||
|
|
serializer = ItemSerializer(data=request.data)
|
||
|
|
if serializer.is_valid():
|
||
|
|
serializer.save(list=list_)
|
||
|
|
return Response(serializer.data, status=201)
|
||
|
|
return Response(serializer.errors, status=400)
|
||
|
|
|
||
|
|
class ListsAPI(APIView):
|
||
|
|
def get(self, request):
|
||
|
|
lists = List.objects.filter(owner=request.user)
|
||
|
|
serializer = ListSerializer(lists, many=True)
|
||
|
|
return Response(serializer.data)
|
||
|
|
|
||
|
|
def post(self, request):
|
||
|
|
list_ = List.objects.create(owner=request.user)
|
||
|
|
item = Item.objects.create(text=request.data.get("text", ""), list=list_)
|
||
|
|
serializer = ListSerializer(list_)
|
||
|
|
return Response(serializer.data, status=201)
|