summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshivam kohli <kohlishivam5522@gmail.com>2018-07-10 01:47:35 +0530
committershivam kohli <kohlishivam5522@gmail.com>2018-07-10 01:47:35 +0530
commit6e43119342e68812a1fb7d2f735c5478262a9ae6 (patch)
tree1840250129c50ec1708cf192681703f2c3b39973
parentc1b0677b2a9e48f2916f61fbd69194aad7830d8a (diff)
downloadcodeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.tar.gz
codeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.tar.bz2
codeless-6e43119342e68812a1fb7d2f735c5478262a9ae6.zip
error handling improved
-rw-r--r--inventory/migrations/0002_auto_20180709_1228.py19
-rw-r--r--inventory/views.py34
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):