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)
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)