in opbeans/views.py [0:0]
def post_order(request):
data = json.loads(request.body)
if 'customer_id' not in data:
return HttpResponse(status=400)
customer_obj = get_object_or_404(m.Customer, pk=data['customer_id'])
order_obj = m.Order.objects.create(customer=customer_obj)
total_amount = 0
for line in data['lines']:
product_obj = get_object_or_404(m.Product, pk=line['id'])
m.OrderLine.objects.create(
order=order_obj,
product=product_obj,
amount=line['amount']
)
total_amount += line['amount'] * product_obj.selling_price
# store lines count in and total amount in tags
label(
lines_count=len(data['lines']),
total_amount=total_amount / 100.0,
)
line_item_counter.inc(len(data['lines']))
order_summary.observe(total_amount / 100.0)
# store customer in transaction custom data
elasticapm.set_custom_context({
'customer_name': customer_obj.full_name,
'customer_email': customer_obj.email,
})
tasks.update_stats.delay()
return JsonResponse({'id': order_obj.pk})