From e8521a666149dc33f317378d9e7e2d11898689cf Mon Sep 17 00:00:00 2001 From: white <122345776@umail.ucc.ie> Date: Mon, 3 Mar 2025 13:59:37 +0000 Subject: [PATCH] FEAT: added route for unsubscribing --- web_server/blueprints/user.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/web_server/blueprints/user.py b/web_server/blueprints/user.py index 3f394d7..d0fa182 100644 --- a/web_server/blueprints/user.py +++ b/web_server/blueprints/user.py @@ -3,7 +3,7 @@ from utils.user_utils import * from utils.auth import * from utils.utils import get_category_id from blueprints.middleware import login_required -from utils.email import send_email, forgot_password_body, newsletter_conf +from utils.email import send_email, forgot_password_body, newsletter_conf, remove_from_newsletter from utils.path_manager import PathManager from celery_tasks.streaming import convert_image_to_png import redis @@ -196,10 +196,22 @@ def user_reset_password(token, new_password): """ salt_value = r.get(token) if salt_value: - r.delete(token) + r.delete(token) email = verify_token(token[:-5], salt_value) if email: reset_password(new_password, email) return jsonify({"message": "Password reset successful"}), 200 + return jsonify({"error": "Invalid token"}), 400 + +@user_bp.route("/unsubscribe/", methods=["POST"]) +def unsubscribe(token): + salt = r.get(token) + if salt: + r.delete(token) + + email = verify_token(token[:-5], salt) + if email: + remove_from_newsletter(email) + return jsonify({"message": "unsubscribed from newsletter"}), 200 return jsonify({"error": "Invalid token"}), 400 \ No newline at end of file