Spaces:
Running
Running
luanpoppe
commited on
Commit
·
7a8dfd2
1
Parent(s):
d561cde
feat: adicionando get, put e delete de um registro da tabela de modelos dos usuários
Browse files- modelos_usuarios/views.py +48 -3
- setup/settings.py +1 -1
- setup/urls.py +4 -2
modelos_usuarios/views.py
CHANGED
@@ -8,10 +8,55 @@ class ListCreateModeloUsuarioView(APIView):
|
|
8 |
all = ModeloUsuarioModel.objects.all()
|
9 |
print("\n\n\n")
|
10 |
print(all)
|
11 |
-
return Response(all)
|
12 |
|
13 |
def post(self, request):
|
14 |
serializer = ModeloUsuarioSerializer(data=request.data)
|
15 |
-
if serializer.is_valid():
|
16 |
registro = ModeloUsuarioModel.objects.create(**serializer.validated_data)
|
17 |
-
return Response(registro.data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
all = ModeloUsuarioModel.objects.all()
|
9 |
print("\n\n\n")
|
10 |
print(all)
|
11 |
+
return Response(ModeloUsuarioSerializer(all, many=True).data)
|
12 |
|
13 |
def post(self, request):
|
14 |
serializer = ModeloUsuarioSerializer(data=request.data)
|
15 |
+
if serializer.is_valid(raise_exception=True):
|
16 |
registro = ModeloUsuarioModel.objects.create(**serializer.validated_data)
|
17 |
+
return Response(ModeloUsuarioSerializer(registro).data)
|
18 |
+
|
19 |
+
class CreateUpdateDeleteModeloUsuarioView(APIView):
|
20 |
+
def get_registro(self, pk):
|
21 |
+
try:
|
22 |
+
registro = ModeloUsuarioModel.objects.get(pk=pk)
|
23 |
+
return registro
|
24 |
+
except:
|
25 |
+
return Response({"error": f"O item buscado de id {pk} não foi encontrando no banco de dados."}, 404)
|
26 |
+
|
27 |
+
def get(self, request, pk):
|
28 |
+
registro = self.get_registro(pk)
|
29 |
+
try:
|
30 |
+
serializer = ModeloUsuarioSerializer(registro)
|
31 |
+
return Response(serializer.data)
|
32 |
+
except:
|
33 |
+
return Response({"error": f"Não foi possível retornar o valor do item de id {pk}. Tente novamente ou entre em contato com a equipe de desenvolvimento para solução do erro"}, status=400)
|
34 |
+
|
35 |
+
def put(self, request, pk):
|
36 |
+
registro = self.get_registro(pk)
|
37 |
+
try:
|
38 |
+
serializer = ModeloUsuarioSerializer(registro, data=request.data)
|
39 |
+
if serializer.is_valid(raise_exception=True):
|
40 |
+
serializer.save()
|
41 |
+
return Response(serializer.data)
|
42 |
+
except:
|
43 |
+
return Response({"error": f"Não foi possível atualizar o item de id {pk}. Tente novamente ou entre em contato com a equipe de desenvolvimento para solução do erro"}, status=500)
|
44 |
+
|
45 |
+
def delete(self, request, pk):
|
46 |
+
registro = self.get_registro(pk)
|
47 |
+
try:
|
48 |
+
registro.delete()
|
49 |
+
return Response({"msg": f"Item de id {pk} foi deletado com sucesso"})
|
50 |
+
except:
|
51 |
+
return Response({"error": f"Não foi possível deletar o item de id {pk}. Tente novamente ou entre em contato com a equipe de desenvolvimento para solução do erro"}, status=500)
|
52 |
+
|
53 |
+
class ListModelosPorUsuarioView(APIView):
|
54 |
+
def get(self, request, user_id):
|
55 |
+
try:
|
56 |
+
registro = ModeloUsuarioModel.objects.filter(user_id=user_id)
|
57 |
+
if(len(registro) == 0):
|
58 |
+
return Response({"error": f"O usuário de id {user_id} não existe ou não possui modelos salvos no banco de dados"}, 204)
|
59 |
+
serializer = ModeloUsuarioSerializer(registro, many=True)
|
60 |
+
return Response(serializer.data)
|
61 |
+
except:
|
62 |
+
return Response({"error": "Não fo possível obter os modelos do usuário por algum motivo. Tente novamente ou entre em contato com a equipe de desenvolvimento para solução do erro"})
|
setup/settings.py
CHANGED
@@ -169,7 +169,7 @@ REST_FRAMEWORK = {
|
|
169 |
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
170 |
'PAGE_SIZE': 10,
|
171 |
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
|
172 |
-
"DEFAULT_PARSER_CLASSES": ["rest_framework.parsers.MultiPartParser", "rest_framework.parsers.FormParser"]
|
173 |
}
|
174 |
|
175 |
SPECTACULAR_SETTINGS = {
|
|
|
169 |
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
170 |
'PAGE_SIZE': 10,
|
171 |
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
|
172 |
+
"DEFAULT_PARSER_CLASSES": ["rest_framework.parsers.JSONParser", "rest_framework.parsers.MultiPartParser", "rest_framework.parsers.FormParser"]
|
173 |
}
|
174 |
|
175 |
SPECTACULAR_SETTINGS = {
|
setup/urls.py
CHANGED
@@ -6,7 +6,7 @@ from drf_spectacular.views import SpectacularSwaggerView, SpectacularAPIView
|
|
6 |
|
7 |
from endpoint_teste.views import EndpointTesteViewSet, getTeste, getPDF
|
8 |
from resumos.views import ResumoView
|
9 |
-
from modelos_usuarios.views import ListCreateModeloUsuarioView
|
10 |
|
11 |
router = routers.DefaultRouter()
|
12 |
# router.register("endpoint-teste", EndpointTesteViewSet, basename="Basename do endpoint-teste")
|
@@ -19,5 +19,7 @@ urlpatterns = [
|
|
19 |
path("teste", getTeste),
|
20 |
path('pdf', getPDF, name='upload-pdf'),
|
21 |
path('resumo', ResumoView.as_view(), name='summary-pdf'),
|
22 |
-
path("modelo", ListCreateModeloUsuarioView.as_view())
|
|
|
|
|
23 |
]
|
|
|
6 |
|
7 |
from endpoint_teste.views import EndpointTesteViewSet, getTeste, getPDF
|
8 |
from resumos.views import ResumoView
|
9 |
+
from modelos_usuarios.views import ListCreateModeloUsuarioView, CreateUpdateDeleteModeloUsuarioView, ListModelosPorUsuarioView
|
10 |
|
11 |
router = routers.DefaultRouter()
|
12 |
# router.register("endpoint-teste", EndpointTesteViewSet, basename="Basename do endpoint-teste")
|
|
|
19 |
path("teste", getTeste),
|
20 |
path('pdf', getPDF, name='upload-pdf'),
|
21 |
path('resumo', ResumoView.as_view(), name='summary-pdf'),
|
22 |
+
path("modelo", ListCreateModeloUsuarioView.as_view()),
|
23 |
+
path("modelo/<int:pk>", CreateUpdateDeleteModeloUsuarioView.as_view()),
|
24 |
+
path("usuario/<int:user_id>/modelos", ListModelosPorUsuarioView.as_view())
|
25 |
]
|