all repos — listfix @ 2044a2da03d78e4dcc1e90897231eb07c684e2b1

Postfix Mailing List Software; Maintained on behalf the of Agency Economy Incorporated NFP.

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
commit

2044a2da03d78e4dcc1e90897231eb07c684e2b1

parent

ea023354de4229a6dd618686110fddc461b2a25c

1 files changed, 8 insertions(+), 18 deletions(-)

jump to
M listfix/db.pylistfix/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])