import json from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from api import api from utils import decimal_to_float, format_token @csrf_exempt async def shop(request): try: products = None if request.method == 'GET': products = api.get_products() user_agent = request.headers.get('User-Agent') products = decimal_to_float(products) print("get_shop", user_agent) return JsonResponse({"success": products}, status=200) except Exception as error: return JsonResponse({"error": format(error)}, status=500) initialUser = { "id": -1, "nickname": '', "email": '', "token": '', "token_expiry_date": '', "money": '', "histories_id": [] } @csrf_exempt async def user(request): try: user1 = dict() if request.method == 'POST': if request.body: body: dict = json.loads(request.body) if "register" in body.keys(): token = api.registration(body["register"]["nickname"], body["register"]["password"], body["register"]["email"]) elif "login" in body.keys(): token = api.login(body["login"]["email"], body["login"]["password"]) elif "unregister" in body.keys(): token = format_token(request.headers.get("Authorization")) api.unregister(token) return JsonResponse({"success": [initialUser]}, status=200) elif "logout" in body.keys(): token = format_token(request.headers.get("Authorization")) api.logout(token) return JsonResponse({"success": [initialUser]}, status=200) elif "add_money" in body.keys(): token = format_token(request.headers.get("Authorization")) api.add_money(token, body["add_money"]["money"]) else: token = format_token(request.headers.get("Authorization")) user1 = api.get_user(token) return JsonResponse({"success": [user1]}, status=200) except Exception as error: return JsonResponse({"error": format(error)}, status=500) @csrf_exempt async def basket(request): try: basket1 = None if request.method == 'POST': token = format_token(request.headers.get("Authorization")) if request.body: body: dict = json.loads(request.body) if "add_product" in body.keys(): api.add_product_to_basket(token, body["add_product"]["product_id"]) elif "delete_product" in body.keys(): api.delete_product_from_basket(token, body["delete_product"]["product_id"]) elif "clear" in body.keys(): api.clear_basket(token) elif "buy_products" in body.keys(): api.buy_products(token) products_id = api.get_products_id(token, "basket") basket1 = api.get_products_by_id(products_id) return JsonResponse({"success": basket1}, status=200) except Exception as error: return JsonResponse({"error": format(error)}, status=500) @csrf_exempt async def history(request): try: histories = None if request.method == 'POST': token = format_token(request.headers.get("Authorization")) histories = api.get_histories_with_products(token) return JsonResponse({"success": histories}, status=200) except Exception as error: return JsonResponse({"error": format(error)}, status=500)