Make "exists" functions call "get_id" functions to do the checking. Then just check for an exception and return true or false. Also, removed some redundant error checking. modified: listfix/db.py
Brian Barto bartobrian@gmail.com
Wed, 30 Mar 2022 11:39:01 -0400
1 files changed,
8 insertions(+),
18 deletions(-)
jump to
M
listfix/db.py
→
listfix/db.py
@@ -17,11 +17,11 @@ self.db.execute("create table recipients(id INTEGER primary key autoincrement, list_id int, name text, email text)")
self.db.commit() def check_list_exists(self, list_email): - lists = self.get_lists() - if (list_email in lists): - return True - else: + try: + self.get_list_id(list_email) + except ValueError: return False + return True def get_lists(self): lists = []@@ -63,15 +63,13 @@ self.db.execute("DELETE FROM recipients WHERE list_id = ?", [list_id])
self.db.commit() def check_recipient_exists(self, list_email, recipient_email): - recipients = self.get_list_recipients(list_email) - if (recipient_email in recipients): - return True - else: + try: + self.get_recipient_id(list_email, recipient_email) + except ValueError: return False + return True def get_recipient_id(self, list_email, recipient_email): - if (not self.check_list_exists(list_email)): - raise ValueError(f"Email list does not exist: {list_email}") list_id = self.get_list_id(list_email) row = self.db.execute("SELECT id FROM recipients WHERE list_id = ? and email = ?", [list_id, recipient_email]).fetchone() if (not row):@@ -79,8 +77,6 @@ raise ValueError(f"Recipient does not exist: {recipient_email}")
return row[0] def get_recipient_name(self, list_email, recipient_email): - if (not self.check_list_exists(list_email)): - raise ValueError(f"Email list does not exist: {list_email}") list_id = self.get_list_id(list_email) row = self.db.execute("SELECT name FROM recipients WHERE list_id = ? and email = ?", [list_id, recipient_email]).fetchone() if (not row):@@ -88,8 +84,6 @@ raise ValueError(f"Recipient does not exist: {recipient_email}")
return row[0] def create_recipient(self, list_email, recipient_email, recipient_name): - if (not self.check_list_exists(list_email)): - raise ValueError(f"Email list does not exist: {list_email}") if (self.check_recipient_exists(list_email, recipient_email)): raise ValueError(f"Recipient already exists: {recipient_email}") list_id = self.get_list_id(list_email)@@ -97,10 +91,6 @@ self.db.execute("INSERT INTO recipients (list_id, name, email) VALUES (?,?,?)", [list_id, recipient_name, recipient_email])
self.db.commit() def destroy_recipient(self, list_email, recipient_email): - if (not self.check_list_exists(list_email)): - raise ValueError(f"Email list does not exist: {list_email}") - if (not self.check_recipient_exists(list_email, recipient_email)): - raise ValueError(f"Recipient does not exist: {recipient_email}") list_id = self.get_list_id(list_email) recipient_id = self.get_recipient_id(list_email, recipient_email) self.db.execute("DELETE FROM recipients WHERE id = ?", [recipient_id])