def post(self, request, format=None):
        # TODO: Make it possible to create orders with options.
        # at the moment, no options are passed to this method, which means they
        # are also not created.

        basket = parse_basket_from_hyperlink(request.data, format)

        if not request_allows_access_to_basket(request, basket):
            return response.Response(
                "Unauthorized", status=status.HTTP_401_UNAUTHORIZED)

        c_ser = self.serializer_class(
            data=request.data, context={'request': request})

        if c_ser.is_valid():
            order = c_ser.save()
            basket.freeze()
            o_ser = self.order_serializer_class(
                order, context={'request': request})

            resp = response.Response(o_ser.data)

            oscarapi_post_checkout.send(
                sender=self, order=order, user=request.user,
                request=request, response=resp)
            return resp

        return response.Response(c_ser.errors, status.HTTP_406_NOT_ACCEPTABLE)
    def post(self, request, format=None):
        # TODO: Make it possible to create orders with options.
        # at the moment, no options are passed to this method, which means they
        # are also not created.

        basket = parse_basket_from_hyperlink(request.data, format)

        if not request_allows_access_to_basket(request, basket):
            return response.Response("Unauthorized",
                                     status=status.HTTP_401_UNAUTHORIZED)

        c_ser = self.serializer_class(data=request.data,
                                      context={"request": request})

        if c_ser.is_valid():
            order = c_ser.save()
            basket.freeze()
            o_ser = self.order_serializer_class(order,
                                                context={"request": request})

            resp = response.Response(o_ser.data)

            oscarapi_post_checkout.send(
                sender=self,
                order=order,
                user=request.user,
                request=request,
                response=resp,
            )
            return resp

        return response.Response(c_ser.errors, status.HTTP_406_NOT_ACCEPTABLE)
Beispiel #3
0
    def post(self, request, format=None):
        # TODO: Make it possible to create orders with options.
        # at the moment, no options are passed to this method, which means they
        # are also not created.
        email = request.query_params.get('email', None)
        print(email)
        if email is not None:
            request.user = User.objects.filter(email=email).first()

        basket = parse_basket_from_hyperlink(request.data, format)

        if not request_allows_access_to_basket(request, basket):
            return response.Response("Unauthorized",
                                     status=status.HTTP_401_UNAUTHORIZED)

        c_ser = self.serializer_class(data=request.data,
                                      context={'request': request})

        if c_ser.is_valid():
            order = c_ser.save()
            _record_products_in_order(order)
            _record_user_order(request.user, order)
            basket.freeze()
            o_ser = self.order_serializer_class(order,
                                                context={'request': request})

            resp = response.Response(o_ser.data)

            oscarapi_post_checkout.send(sender=self,
                                        order=order,
                                        user=request.user,
                                        request=request,
                                        response=resp)
            return resp

        return response.Response(c_ser.errors, status.HTTP_406_NOT_ACCEPTABLE)