Exemplo n.º 1
0
 def rate(self, request, *args, **kwargs):
     """Rate ride."""
     ride = self.get_object()
     serializer_class = self.get_serializer_class()
     context = self.get_serializer_context()
     context['ride'] = ride
     serializer = serializer_class(data=request.data, context=context)
     serializer.is_valid(raise_exception=True)
     ride = serializer.save()
     data = RideModelSerializer(ride).data
     return Response(data, status=status.HTTP_201_CREATED)
Exemplo n.º 2
0
 def join(self, request, *args, **kwargs):
     """Add requesting user to ride."""
     ride = self.get_object()
     serializer_class = self.get_serializer_class()
     serializer = JoinRideSerializer(
         ride,
         data={'passenger': request.user.pk},
         context={'ride': ride, 'circle': self.circle},
         partial=True
     )
     serializer.is_valid(raise_exception=True)
     ride = serializer.save()
     data = RideModelSerializer(ride).data
     return Response(data, status=status.HTTP_200_OK)
Exemplo n.º 3
0
 def finish(self, request, *args, **kwargs):
     """Call by owners to finish a ride."""
     ride = self.get_object()
     serializer_class = self.get_serializer_class()
     serializer = serializer_class(
         ride,
         data={'is_active': False, 'current_time': timezone.now()},
         context=self.get_serializer_context(),
         partial=True
     )
     serializer.is_valid(raise_exception=True)
     ride = serializer.save()
     data = RideModelSerializer(ride).data
     return Response(data, status=status.HTTP_200_OK)
Exemplo n.º 4
0
    def qualify(self, request, *args, **kwargs):
        """Manages giving qualification to a ride"""

        serializer_class = self.get_serializer_class()
        serializer = serializer_class(
            data=request.data,
            context=self.get_serializer_context(),
        )

        if serializer.is_valid(raise_exception=True):
            ride = serializer.save()

            data = RideModelSerializer(ride).data

            return Response(data=data, status=HTTP_200_OK)
Exemplo n.º 5
0
 def join(self, request, *args, **kwargs):
     """Añade usuario solicitante para viajar."""
     ride = self.get_object()  # Traemos al ride(viaje) que se coloco en la url.
     # TODO usar el metodo get_serializer_class. --Ya se corrigio
     serializer_class = self.get_serializer_class()
     serializer = serializer_class(
         ride,
         data={'passenger': request.user.pk},  # Enviamos el id del objeto User.
         context={'ride': ride, 'circle': self.circle},  # Eliminamos los datos que ya venian en el context.¿?
         partial=True
     )
     serializer.is_valid(raise_exception=True)  # Valida los campos que son Enviamos y devueltos
     # verificando su validez, en caso que no sea validos. Al colocar raise_exception=True esto mostrara
     # al cliente los errores que ocurrieron. Desde datos Json.
     ride = serializer.save()
     data = RideModelSerializer(ride).data  # Mostraramos de nuevo los datos del viaje
     return Response(data, status=status.HTTP_200_OK)
Exemplo n.º 6
0
 def finish(self, request, *args, **kwargs):
     """Llama a los propietarios para terminar un viaje."""
     ride = self.get_object()
     serializer_class = self.get_serializer_class()
     serializer = serializer_class(
         ride,
         data={'is_active': False, 'current_time': timezone.now()},  # Traemos la fecha actual en la envia el post.
         context=self.get_serializer_context(),
         partial=True  # Cuando mandamos partial= True logramos solo actualizar campos especificos del
         # modelos, por otro lado tambien podemos enviar otros tipos de datos, pero solo tomara los que
         # estan en el modelos(is_active). Y los actualizara al instancia de ride que enviamos tambien.
     )
     serializer.is_valid(raise_exception=True)  # Valida los campos que son Enviamos y devueltos
     # verificando su validez, en caso que no sea validos. Al colocar raise_exception=True esto mostrara
     # al cliente los errores que ocurrieron. Desde datos Json.
     ride = serializer.save()
     data = RideModelSerializer(ride).data  # Mostraramos de nuevo los datos del viaje
     return Response(data, status=status.HTTP_200_OK)
Exemplo n.º 7
0
    def join(self, request, *args, **kwargs):
        """Handles joining to a circle."""

        ride = self.get_object()

        serializer_class = self.get_serializer_class()
        serializer = serializer_class(
            ride,
            data={
                'passenger': request.user.pk
            },
            context=self.get_serializer_context(),
            partial=True
        )

        if serializer.is_valid(raise_exception=True):
            ride = serializer.save()
            data = RideModelSerializer(ride).data

            return Response(data=data, status=HTTP_200_OK)