Пример #1
0
    def update(self, request, *args, **kwargs):
        """Sobreescribir respuesta cuando se crea un objeto"""
        instance = self.get_object()
        serializer = self.get_serializer(instance, data=request.data)
        try:
            serializer.is_valid(raise_exception=True)
            self.perform_update(serializer)
        except ModelValidationError as ex:
            return ErrorRestResponse(
                message=ex.messages[0],
                status=status.HTTP_500_INTERNAL_SERVER_ERROR
            )
        except RESTValidationError as ex:
            return ErrorRestResponse(
                message=_('There are problems with the data'),
                status=status.HTTP_400_BAD_REQUEST,
                data=ex.detail
            )
        except DatabaseError as ex:
            return ErrorRestResponse(str(ex))

        if getattr(instance, '_prefetched_objects_cache', None):
            # En caso contenta relaciones foreanas se actualizan en la base de datos
            instance = self.get_object()
            serializer = self.get_serializer(instance)
        else:
            instance = self.get_object()
            serializer = self.get_serializer(instance)

        return SuccessRestResponse(
            message=_('Object was updated successly'),
            data=serializer.data,
        )
Пример #2
0
 def get(self, request, *args, **kargs):
     try:
         envio = Envio.objects.get(id=kargs.get('pk'))
         return Response(EnvioSerializer(envio).data)
     except Envio.DoesNotExist:
         return ErrorRestResponse(_('Recurso no encontrado'),
                                  status=status.HTTP_404_NOT_FOUND)
Пример #3
0
 def post(self, request):
     serializer = DepartamentoSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save(usuario_creacion=request.user.id,
                         fecha_eliminacion=dt.now())
         return SuccessRestResponse(
             _('Registro agregado de manera correcta'),
             status=status.HTTP_201_CREATED,
             data=serializer.data)
     return ErrorRestResponse(_('Tiene los siguientes errores'),
                              status=status.HTTP_400_BAD_REQUEST,
                              data=serializer.errors)
Пример #4
0
    def destroy(self, request, *args, **kwargs):
        """Sobreecribir la respuesta cuando se elimina un objeto"""
        instance = self.get_object()
        try:
            instance.delete()
        except DatabaseError as ex:
            return ErrorRestResponse(str(ex))

        return SuccessRestResponse(
            message=_('Object was deleted successly'),
            status=status.HTTP_204_NO_CONTENT
        )
Пример #5
0
 def put(self, request, *args, **kargs):
     envio = Envio.objects.get(id=kargs.get('pk'))
     serializer = EnvioSerializer(envio, data=request.data)
     try:
         if serializer.is_valid():
             serializer.save(usuario_modificacion=request.user.id,
                             fecha_modificacion=dt.now())
             return SuccessRestResponse(
                 _('Registro actualizado de manera correcta'),
                 status=status.HTTP_201_CREATED,
                 data=serializer.data)
     except Aeropuerto.DoesNotExist:
         return ErrorRestResponse(_('Tiene los siguientes errores'),
                                  status=status.HTTP_400_BAD_REQUEST,
                                  data=serializer.errors)
Пример #6
0
 def create(self, request, *args, **kwargs):
     """Sobreescribir la respuesta cuando se crea un modelo"""
     serializer = self.get_serializer(data=request.data)
     try:
         serializer.is_valid(raise_exception=True)
         self.perform_create(serializer)
     except ModelValidationError as ex:
         return ErrorRestResponse(
             message=ex.message,
             status=status.HTTP_500_INTERNAL_SERVER_ERROR
         )
     except RESTValidationError as ex:
         return ErrorRestResponse(
             message=_('There are problems with the data'),
             data=ex.detail,
             status=status.HTTP_400_BAD_REQUEST
         )
     except DatabaseError as ex:
         return ErrorRestResponse(str(ex))
     return SuccessRestResponse(
         message=_('Operation finish successly'),
         status=status.HTTP_201_CREATED,
         data=serializer.data
     )
Пример #7
0
 def post(self, request):
     serializer = EnvioSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save(
             usuario_creacion=request.user.id,
             pais_rem_id=serializer.validated_data.get('pais_rem_id'),
             pais_des_id=serializer.validated_data.get('pais_des_id'),
             departamento_rem_id=serializer.validated_data.get(
                 'departamento_rem_id'),
             departamento_des_id=serializer.validated_data.get(
                 'departamento_des_id'))
         return SuccessRestResponse(
             _('Registro agregado de manera correcta'),
             status=status.HTTP_201_CREATED,
             data=serializer.data)
     return ErrorRestResponse(_('Tiene los siguientes errores'),
                              status=status.HTTP_400_BAD_REQUEST,
                              data=serializer.errors)