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
Files changed (3) hide show
  1. modelos_usuarios/views.py +48 -3
  2. setup/settings.py +1 -1
  3. 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
  ]