def partnerOrderPrice(request): try: user = request.user Profile.objects.get(user=user) originCountry = request.data.get('originCountry') destinationCountry = request.data.get('destinationCountry') shippingWeight = request.data.get('shippingWeight') shippingMode = request.data.get('shippingMode') service = Service.objects.get(id=request.data.get('service')) if shippingMode == EXPRESS_SHIPPING: serviceCosts = Service.computeExpressCosts( shippingWeight, originCountry, destinationCountry, service.partnerForwarderMargin ) else: serviceCosts = Service.computeStandardCosts( shippingWeight, originCountry, destinationCountry, service.partnerForwarderMargin ) finalPrice = functools.reduce(lambda a, b: a + b, map(lambda p: p['amount'], serviceCosts)) finalPrice = Service.eurToUsdConversion(finalPrice) return Response({'success': True, 'price': finalPrice}) except Exception as e: return Response({'success': False, 'error': e.message})