From 3f6a719e9de40a5f6c19d43d291dba038c9adfd8 Mon Sep 17 00:00:00 2001 From: Ojakoo Date: Sun, 31 Jul 2022 11:12:51 +0300 Subject: [PATCH] Added error handling, send email to user if adding fails --- webapp/utils.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/webapp/utils.py b/webapp/utils.py index aaae579..fb944bd 100644 --- a/webapp/utils.py +++ b/webapp/utils.py @@ -125,7 +125,7 @@ def admin_send_email_signupees(list, subject, content): send_email(to.email, subject, markdown.markdown(content), True) -def add_to_mailinglist(email): +def add_to_mailinglist(email: str): try: # get data SCOPES = ["https://www.googleapis.com/auth/admin.directory.group"] @@ -140,6 +140,16 @@ def add_to_mailinglist(email): service = build("admin", "directory_v1", credentials=credentials) service.members().insert(groupKey=GROUP_KEY, body={"email": email}).execute() except HttpError as err: - logging.exception("Something fukd: {}".format(err.error_details)) - return err.error_details.message + # Already in list, do nothing + if err.status_code == 409: + pass + # Something went wrong, send notification to maintainer. + else: + logging.exception("Failed adding user to list") + + to = "ilari.ojakorpi@sahkoinsinoorikilta.fi" + subject = "Web error: Failed adding to google groups" + body = "Error code: {}\nError details: {}\nEmail that was not added: {}\n\nAdd user manually to jäsenet groups.".format(err.status_code, err.error_details, email) + + send_email(to, subject, body)