11from django .shortcuts import render
2+ from .serializers import *
3+ from rest_framework .response import Response
4+ from .models import Task
5+ from rest_framework .views import APIView
6+ from rest_framework import status
7+ from django .contrib .auth import get_user_model
8+ from rest_framework .permissions import IsAdminUser
9+ from django .http import Http404
10+
11+
212
313# Create your views here.
14+ class TaskView (APIView ):
15+ """
16+ list all task or create a new task
17+ """
18+ def get (self , request , format = None ):
19+ tasks = Task .objects .all ()
20+ serializer = TaskSerializer (tasks , many = True )
21+ return Response (serializer .data )
22+
23+ def post (self , request , format = None ):
24+ serializer = TaskSerializer (data = request .data )
25+ if serializer .is_valid ():
26+ serializer .save ()
27+ return Response (serializer .data , status = status .HTTP_201_CREATED )
28+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
29+
30+
31+ class TaskDetail (APIView ):
32+ """
33+ Retrieve, update or delete a snippet instance.
34+ """
35+ def get_object (self , pk ):
36+ try :
37+ return Task .objects .get (pk = pk )
38+ except Task .DoesNotExist :
39+ raise Http404
40+
41+ def get (self , request , pk , format = None ):
42+ task = self .get_object (pk )
43+ serializer = TaskSerializer (task )
44+ return Response (serializer .data )
45+
46+ def put (self , request , pk , format = None ):
47+ task = self .get_object (pk )
48+ serializer = TaskSerializer (task , data = request .data )
49+ if serializer .is_valid ():
50+ serializer .save ()
51+ return Response (serializer .data )
52+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
53+
54+ def delete (self , request , pk , format = None ):
55+ task = self .get_object (pk )
56+ task .delete ()
57+ return Response (status = status .HTTP_204_NO_CONTENT )
0 commit comments