diff --git a/web_server/database/app.db b/web_server/database/app.db index 0efecef..ff11209 100644 Binary files a/web_server/database/app.db and b/web_server/database/app.db differ diff --git a/web_server/database/users.sql b/web_server/database/users.sql index 47e7a0d..ccbbf5e 100644 --- a/web_server/database/users.sql +++ b/web_server/database/users.sql @@ -57,4 +57,11 @@ CREATE TABLE followed_categories PRIMARY KEY (user_id, category_id), FOREIGN KEY(user_id) REFERENCES users(user_id) ON DELETE CASCADE, FOREIGN KEY(category_id) REFERENCES categories(category_id) ON DELETE CASCADE +); + +DROP TABLE IF EXISTS newsletter; +CREATE TABLE newsletter +( + email VARCHAR(256) NOT NULL, + PRIMARY KEY(email) ); \ No newline at end of file diff --git a/web_server/utils/email.py b/web_server/utils/email.py index 848245f..2e7dd09 100644 --- a/web_server/utils/email.py +++ b/web_server/utils/email.py @@ -7,6 +7,7 @@ from utils.auth import generate_token from secrets import token_hex from .user_utils import get_session_info_email import redis +from database.database import Database redis_url = "redis://redis:6379/1" r = redis.from_url(redis_url, decode_responses=True) @@ -157,4 +158,35 @@ def newsletter_conf(email): """ + add_to_newsletter(email) + return content + +def add_to_newsletter(email): + """ + Add a person to the newsletter database + """ + # Create connection to the database + db = Database() + db.create_connection() + + # Add the users email to the newsletter table + db.execute(""" + INSERT INTO newsletter (email) + VALUES (?); + """, (email,)) + + +def remove_from_newsletter(email): + """ + Remove a person from the newsletter database + """ + # Create connection to the database + db = Database() + db.create_connection() + + # Remove the users email from the newsletter table + db.execute(""" + DELETE FROM newsletter + WHERE email = ?; + """, (email,))