-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathviews.py
More file actions
110 lines (85 loc) · 3.57 KB
/
Copy pathviews.py
File metadata and controls
110 lines (85 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.decorators import api_view, APIView
from rest_framework import status
from .models import Post
from .serializers import PostSerializer
from django.shortcuts import get_object_or_404
@api_view(http_method_names=['GET'])
def buscar_por_titulo(request:Request,title:str):
try:
objeto = Post.objects.get(title=title)
serializer = PostSerializer(objeto)
return Response(serializer.data, status=status.HTTP_200_OK)
except Post.DoesNotExist:
return Response({'detail':'objeto nao encontrado'})
class PostListCreate(APIView):
serializer_class = PostSerializer
def get(self,request:Request,*args,**kwargs):
posts = Post.objects.all()
serializer = self.serializer_class(instance=posts,many=True)
response = {'message':'Posts','data':serializer.data}
return Response(data=response,status=status.HTTP_200_OK)
def post(self,request:Request,*args,**kwargs):
data = request.data
serializer = self.serializer_class(data=data)
if serializer.is_valid():
serializer.save()
return Response(data=serializer.data,status=status.HTTP_201_CREATED)
"""
posts = [
{'id':1,'title':'London park','description':'Lorem ipsun dolor, make'},
{'id':2,'title':'Building','description':'Lorem ipsun dolor, make'},
{'id':3,'title':'Materializer','description':'Lorem ipsun dolor, make'}
]
# Create your views here.
@api_view(http_method_names=['GET','POST'])
def homepage(request:Request):
post = Post.objects.all()
if request.method == 'POST':
data = request.data
serializer = PostSerializer(data=data)
if serializer.is_valid():
serializer.save()
response = {
'message':'Post created',
'data':serializer.data
}
return Response(data=response,status=status.HTTP_201_CREATED)
return Response(data=serializer.errors,status=status.HTTP_400_BAD_REQUEST)
serializer = PostSerializer(instance=post,many=True)
response = {'message':'Posts','data':serializer.data}
return Response(data=response,status=status.HTTP_200_OK)
@api_view(http_method_names=['GET'])
def list_posts(request:Request):
data = posts
response = {'message':'Sucesso','data':data}
return Response(data=response,status=status.HTTP_200_OK)
@api_view(http_method_names=['GET'])
def post_detail(request:Request,post_id:int):
post = get_object_or_404(Post,pk=post_id)
serializer = PostSerializer(instance=post)
response = {
'message':"Post",
'data':serializer.data
}
return Response(data=response,status=status.HTTP_200_OK)
@api_view(http_method_names=['PUT'])
def update_post(request:Request,post_id:int):
post = get_object_or_404(Post,pk=post_id)
data = request.data
serializer = PostSerializer(instance=post,data=data)
if serializer.is_valid():
serializer.save()
response = {
'message':'Updated post successfuly',
'data':serializer.data
}
return Response(data=response,status=status.HTTP_200_OK)
return Response(data=serializer.errors,status=status.HTTP_400_BAD_REQUEST)
@api_view(http_method_names=['DELETE'])
def delete_post(request:Request,post_id:int):
post = get_object_or_404(Post,pk=post_id)
post.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
"""