From 24b439feb0dfe92a0990495860de24e6632b22bc Mon Sep 17 00:00:00 2001 From: nfoert Date: Wed, 21 Aug 2024 09:08:43 -0400 Subject: [PATCH] Remove cards from your wallet --- cardie/main/urls.py | 3 ++- cardie/main/views.py | 20 +++++++++++++++- cardie/static/main/scripts/home/home.js | 24 ++++++++++++++++++++ cardie/staticfiles/main/scripts/home/home.js | 24 ++++++++++++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) diff --git a/cardie/main/urls.py b/cardie/main/urls.py index 2af8d3f..d7662f0 100644 --- a/cardie/main/urls.py +++ b/cardie/main/urls.py @@ -21,5 +21,6 @@ path("deletecard", views.delete_card, name="deletecard"), path("renamecard", views.rename_card, name="renamecard"), path("savetowallet", views.save_to_wallet, name="savetowallet"), - path("getwallet", views.get_wallet, name="getwallet") + path("getwallet", views.get_wallet, name="getwallet"), + path("removefromwallet", views.remove_from_wallet, name="removefromwallet") ] \ No newline at end of file diff --git a/cardie/main/views.py b/cardie/main/views.py index bec6e8c..98db224 100644 --- a/cardie/main/views.py +++ b/cardie/main/views.py @@ -349,10 +349,28 @@ def get_wallet(request): wallet.append(wallet_item) - return JsonResponse(wallet, safe=False) + return JsonResponse(wallet, safe=False) except KeyError: return HttpResponse("Not signed in") + else: + return HttpResponse("Request is not a POST request") + +@csrf_exempt +def remove_from_wallet(request): + if request.method == "POST": + try: + me = User.objects.filter(username=request.session["username"])[0] + + card_to_remove = me.wallet.filter(uuid=request.headers["uuid"]) + print(card_to_remove) + me.wallet.remove(card_to_remove[0]) + + return HttpResponse("Success") + + except KeyError: + return HttpResponse("Not signed in") + else: return HttpResponse("Request is not a POST request") \ No newline at end of file diff --git a/cardie/static/main/scripts/home/home.js b/cardie/static/main/scripts/home/home.js index 651929a..84d113e 100644 --- a/cardie/static/main/scripts/home/home.js +++ b/cardie/static/main/scripts/home/home.js @@ -146,7 +146,31 @@ function home_wallet_view(event) { } async function home_wallet_remove(event) { + const response = await fetch(server_ip + "/removefromwallet", { + method: "POST", + headers: { + "uuid": event.target.closest(".home_card").querySelector(":scope > .home_card_text > .home_card_text_uuid").innerText + } + }); + response.text().then(function (text) { + if (text == "Request is not a POST request") { + create_notification("There was a problem removing that card from your wallet", text, "warning"); + log("WARNING", text); + + } else if (text == "Not signed in") { + create_notification("There was a problem removing that card from your wallet", text, "warning"); + log("WARNING", text); + + } else if (text == "Success") { + create_notification("Card removed from wallet", "The card has been removed from your wallet", "check-circle"); + window.location.reload(); + + } else { + create_notification("There was a problem removing that card from your wallet", "There was an unknown issue", "warning"); + log("WARNING", "There was an unknown issue: " + text); + } + }); } async function list_cards() { diff --git a/cardie/staticfiles/main/scripts/home/home.js b/cardie/staticfiles/main/scripts/home/home.js index 651929a..84d113e 100644 --- a/cardie/staticfiles/main/scripts/home/home.js +++ b/cardie/staticfiles/main/scripts/home/home.js @@ -146,7 +146,31 @@ function home_wallet_view(event) { } async function home_wallet_remove(event) { + const response = await fetch(server_ip + "/removefromwallet", { + method: "POST", + headers: { + "uuid": event.target.closest(".home_card").querySelector(":scope > .home_card_text > .home_card_text_uuid").innerText + } + }); + response.text().then(function (text) { + if (text == "Request is not a POST request") { + create_notification("There was a problem removing that card from your wallet", text, "warning"); + log("WARNING", text); + + } else if (text == "Not signed in") { + create_notification("There was a problem removing that card from your wallet", text, "warning"); + log("WARNING", text); + + } else if (text == "Success") { + create_notification("Card removed from wallet", "The card has been removed from your wallet", "check-circle"); + window.location.reload(); + + } else { + create_notification("There was a problem removing that card from your wallet", "There was an unknown issue", "warning"); + log("WARNING", "There was an unknown issue: " + text); + } + }); } async function list_cards() {