diff options
author | shivam kohli <kohlishivam5522@gmail.com> | 2018-07-10 01:47:35 +0530 |
---|---|---|
committer | shivam kohli <kohlishivam5522@gmail.com> | 2018-07-10 01:47:35 +0530 |
commit | 6e43119342e68812a1fb7d2f735c5478262a9ae6 (patch) | |
tree | 1840250129c50ec1708cf192681703f2c3b39973 | |
parent | c1b0677b2a9e48f2916f61fbd69194aad7830d8a (diff) | |
download | codeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.tar.gz codeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.tar.bz2 codeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.zip |
error handling improved
-rw-r--r-- | inventory/migrations/0002_auto_20180709_1228.py | 19 | ||||
-rw-r--r-- | inventory/views.py | 34 |
2 files changed, 47 insertions, 6 deletions
diff --git a/inventory/migrations/0002_auto_20180709_1228.py b/inventory/migrations/0002_auto_20180709_1228.py new file mode 100644 index 0000000..ffcccd9 --- /dev/null +++ b/inventory/migrations/0002_auto_20180709_1228.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='order', + name='product_id', + field=models.ManyToManyField(blank=True, to='inventory.Product'), + ), + ] diff --git a/inventory/views.py b/inventory/views.py index 681009d..88f7199 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -40,7 +40,19 @@ from django.http import JsonResponse def fulfillment(request): - return render(request, 'inventory/fulfillment.html') + order_id = request.GET.get('order_id') + if order_id is None: + return HttpResponse("Error while loading the page") + order_instance = Order.objects.get(order_id=order_id) + product = order_instance.product_id.all() + for item in range(len(product)): + if product[item].document: + filename = product[item].document.file.name.split('/')[-1] + response = HttpResponse(product[item].document.file, content_type='application/pdf') + response['Content-Disposition'] = 'inline; filename=%s' % filename + return response + else: + return render(request, 'inventory/fulfillment.html') def shipment(request): @@ -106,7 +118,7 @@ def pay(request): def payment(request): - # session_id = request.session.session_key + session_id = request.session.session_key name = request.GET.get('name') price = request.GET.get('price') merchant = request.GET.get('merchant') @@ -139,15 +151,25 @@ def payment(request): ) ) order_resp = backend_post("order", order) + try: + order_id = order_resp["order_id"] + except Exception as e: + return HttpResponse("Please refresh and try again") # Checking Payment Status and Prompting for Payment pay_params = dict( instance="default", - order_id=order_resp["order_id"], - # session_id=session_id, + order_id=order_id, + session_id=session_id, ) pay_status = backend_get("check-payment", pay_params) - payment_redirect_url = pay_status["payment_redirect_url"] - return redirect(payment_redirect_url) + if pay_status["paid"]: + base_url = request.build_absolute_uri().rsplit('/', 1)[0] + url = base_url+"/fulfillment?order_id="+order_resp["order_id"] + return redirect(url) + else: + if pay_status["payment_redirect_url"]: + payment_redirect_url = pay_status["payment_redirect_url"] + return redirect(payment_redirect_url) def backend_get(endpoint, params): |