Spaces:
Running
Running
luanpoppe
feat: adicionando get, put e delete de um registro da tabela de modelos dos usuários
7a8dfd2
from rest_framework.views import APIView | |
from rest_framework.response import Response | |
from modelos_usuarios.models import ModeloUsuarioModel | |
from modelos_usuarios.serializer import ModeloUsuarioSerializer | |
class ListCreateModeloUsuarioView(APIView): | |
def get(self, request): | |
all = ModeloUsuarioModel.objects.all() | |
print("\n\n\n") | |
print(all) | |
return Response(ModeloUsuarioSerializer(all, many=True).data) | |
def post(self, request): | |
serializer = ModeloUsuarioSerializer(data=request.data) | |
if serializer.is_valid(raise_exception=True): | |
registro = ModeloUsuarioModel.objects.create(**serializer.validated_data) | |
return Response(ModeloUsuarioSerializer(registro).data) | |
class CreateUpdateDeleteModeloUsuarioView(APIView): | |
def get_registro(self, pk): | |
try: | |
registro = ModeloUsuarioModel.objects.get(pk=pk) | |
return registro | |
except: | |
return Response({"error": f"O item buscado de id {pk} não foi encontrando no banco de dados."}, 404) | |
def get(self, request, pk): | |
registro = self.get_registro(pk) | |
try: | |
serializer = ModeloUsuarioSerializer(registro) | |
return Response(serializer.data) | |
except: | |
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) | |
def put(self, request, pk): | |
registro = self.get_registro(pk) | |
try: | |
serializer = ModeloUsuarioSerializer(registro, data=request.data) | |
if serializer.is_valid(raise_exception=True): | |
serializer.save() | |
return Response(serializer.data) | |
except: | |
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) | |
def delete(self, request, pk): | |
registro = self.get_registro(pk) | |
try: | |
registro.delete() | |
return Response({"msg": f"Item de id {pk} foi deletado com sucesso"}) | |
except: | |
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) | |
class ListModelosPorUsuarioView(APIView): | |
def get(self, request, user_id): | |
try: | |
registro = ModeloUsuarioModel.objects.filter(user_id=user_id) | |
if(len(registro) == 0): | |
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) | |
serializer = ModeloUsuarioSerializer(registro, many=True) | |
return Response(serializer.data) | |
except: | |
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"}) |