Skip to content
Snippets Groups Projects
Commit 0657deed authored by Christian Dresen's avatar Christian Dresen
Browse files

[WarpPay] Fixed Transaction REST API Endpoint

parent e027df92
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ urlpatterns = [
url(r'^api/products/$', views.product_list),
url(r'^api/categories/$', views.category_list),
# url(r'^api/gen_token/$', views.gen_token),
url(r'^api/transaction/(?P<user_id>\w+)/$', views.transaction),
url(r'^api/transactions/(?P<user_id>\w+)/$', views.multiple_transaction),
url(r'^api/products/(?P<prod_id>\w+)/barcode/$', views.addBarcode),
]
......@@ -115,13 +115,12 @@ def user_list(request, user_id = 0):
return Response(serializer.data, status=state)
return Response()
@api_view(['PUT'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
def transaction(request, user_id=None):
def multiple_transaction(request, user_id=None):
if request.method == 'PUT':
if 'trans_type' not in request.data or not user_id:
if not user_id:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
try:
......@@ -129,38 +128,54 @@ def transaction(request, user_id=None):
except ObjectDoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
transactions = []
products = []
for transact in request.data:
if 'trans_type' not in transact:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
t = Transaction()
t.type = int(request.data['trans_type'])
t.type = int(transact['trans_type'])
if t.type == 1:
if 'amount' not in request.data or ('amount' in request.data and float(request.data['amount'] < 0)):
if 'amount' not in transact or ('amount' in transact and float(transact['amount'] < 0)):
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
if 'cash_paid' in request.data:
t.cash_paid = bool(request.data['cash_paid'])
if 'cash_paid' in transact:
t.cash_paid = bool(transact['cash_paid'])
else:
t.cash_paid = True
t.amount = float(request.data['amount'])
u.credit +=t.amount
t.amount = float(transact['amount'])
u.credit += t.amount
elif t.type == 2:
try:
product = Product.objects.get(id=request.data['product']['id'])
product = Product.objects.get(id=transact['product']['id'])
t.product = product
if 'cash_paid' in request.data:
t.cash_paid = bool(request.data['cash_paid'])
if 'cash_paid' in transact:
t.cash_paid = bool(transact['cash_paid'])
t.amount = product.price_vk
if not t.cash_paid:
u.credit -= t.amount
product.stock_count -= 1
product.save()
products.append(product)
except:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
else:
return Response(status=status.HTTP_406_NOT_ACCEPTABLE)
transactions.append(t)
for t in transactions:
t.save()
u.save()
return Response()
print(t)
for p in products:
p.save()
print(p)
u.save()
print(u)
return Response()
def sync_users():
for ldapuser in LdapUser.objects.all():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment