コード例 #1
0
def create_basket_session(request, parameters):
    serializer = serializers.BasketSerializer(data=parameters)
    serializer.is_valid(raise_exception=True)

    custom = serializer.validated_data.get('custom_basket')
    # validate product list
    if custom:
        product_serializer = serializers.CheckoutCustomProductSerializer(data=serializer.initial_data.get('products'), many=True)
    else:
        product_serializer = serializers.CheckoutProductSerializer(data=serializer.initial_data.get('products'), many=True)
    product_serializer.is_valid(raise_exception=True)
        
    # validate basket
    if serializer.validated_data.get('vouchers'):
        if custom:
            basket = createCustomBasket(serializer.validated_data['products'],
                                        request.user, serializer.validated_data['system'],
                                        vouchers=serializer.validated_data['vouchers'])
        else:
            basket = createBasket(serializer.validated_data['products'], request.user,
                                    serializer.validated_data['system'],
                                    vouchers=serializer.validated_data['vouchers'])
    else:
        if custom:
            basket = createCustomBasket(serializer.validated_data['products'],
                                        request.user, serializer.validated_data['system'])
        else:
            basket = createBasket(serializer.validated_data['products'],
                                    request.user, serializer.validated_data['system'])

    return basket, BasketMiddleware().get_basket_hash(basket.id)
コード例 #2
0
def create_basket_session(request, parameters):
    serializer = serializers.BasketSerializer(data=parameters)
    serializer.is_valid(raise_exception=True)
    custom = serializer.validated_data.get('custom_basket')
    booking_reference = None
    if 'booking_reference' in parameters:
        booking_reference = serializer.validated_data['booking_reference']
    # validate product list
    if custom:
        product_serializer = serializers.CheckoutCustomProductSerializer(
            data=serializer.initial_data.get('products'), many=True)
    else:
        product_serializer = serializers.CheckoutProductSerializer(
            data=serializer.initial_data.get('products'), many=True)
    product_serializer.is_valid(raise_exception=True)
    # Cleaning up stale Baskets
    if request.user:
        if request.user.__class__.__name__ == 'EmailUser':
            ba = Basket.objects.filter(owner=request.user).exclude(
                status='Submitted')
            for b in ba:
                b.status = 'Frozen'
                b.save()
    # validate basket
    if serializer.validated_data.get('vouchers'):
        if custom:
            basket = createCustomBasket(serializer.validated_data['products'],
                                        request.user,
                                        serializer.validated_data['system'],
                                        serializer.validated_data['vouchers'],
                                        True, booking_reference)
        else:
            basket = createBasket(serializer.validated_data['products'],
                                  request.user,
                                  serializer.validated_data['system'],
                                  serializer.validated_data['vouchers'], True,
                                  booking_reference)
    else:
        if custom:
            basket = createCustomBasket(serializer.validated_data['products'],
                                        request.user,
                                        serializer.validated_data['system'],
                                        None, True, booking_reference)
        else:
            basket = createBasket(serializer.validated_data['products'],
                                  request.user,
                                  serializer.validated_data['system'], None,
                                  True, booking_reference)

    return basket, BasketMiddleware().get_basket_hash(basket.id)