updated some error handling, logging, and text of emails

This commit is contained in:
David Kennedy 2023-09-20 05:20:09 -04:00
parent 82b097d2f6
commit 91aaa0ff3e
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
4 changed files with 52 additions and 26 deletions

View file

@ -29,16 +29,21 @@ class Command(BaseCommand):
) )
def handle(self, **options): def handle(self, **options):
"""Delete existing TransitionDomains. Generate test ones.""" """Delete existing TransitionDomains. Generate test ones.
expects options[emails]; emails will be assigned to transition
domains at the time of creation"""
# split options[emails] into an array of test emails # split options[emails] into an array of test emails
test_emails = options["emails"].split(",") test_emails = options["emails"].split(",")
# setting up test data if len(test_emails) > 0:
# set up test data
self.delete_test_transition_domains() self.delete_test_transition_domains()
self.load_test_transition_domains(test_emails) self.load_test_transition_domains(test_emails)
else:
logger.error("list of emails for testing is required")
def load_test_transition_domains(self, test_emails): def load_test_transition_domains(self, test_emails: list):
"""Load test transition domains""" """Load test transition domains"""
# counter for test_emails index # counter for test_emails index

View file

@ -42,7 +42,7 @@ class Command(BaseCommand):
def handle(self, **options): def handle(self, **options):
"""Process the objects in TransitionDomain.""" """Process the objects in TransitionDomain."""
logger.debug("checking domains and preparing emails") logger.info("checking domains and preparing emails")
# Get all TransitionDomain objects # Get all TransitionDomain objects
self.transition_domains = TransitionDomain.objects.filter( self.transition_domains = TransitionDomain.objects.filter(
email_sent=False, email_sent=False,
@ -51,15 +51,15 @@ class Command(BaseCommand):
self.build_emails_to_send_array() self.build_emails_to_send_array()
if options["send_emails"]: if options["send_emails"]:
logger.debug("about to send emails") logger.info("about to send emails")
self.send_emails() self.send_emails()
logger.debug("done sending emails") logger.info("done sending emails")
self.update_domains_as_sent() self.update_domains_as_sent()
logger.debug("done sending emails and updating transition_domains") logger.info("done sending emails and updating transition_domains")
else: else:
logger.debug("not sending emails") logger.info("not sending emails")
def build_emails_to_send_array(self): def build_emails_to_send_array(self):
"""this method sends emails to distinct usernames""" """this method sends emails to distinct usernames"""
@ -104,13 +104,16 @@ class Command(BaseCommand):
f"error retrieving domain {transition_domain.domain_name}: {err}" f"error retrieving domain {transition_domain.domain_name}: {err}"
) )
# if there are at least one more transition domains than errors, # if there are at least one more transition domains than errors,
# then send one more # then append one more item
if len(self.transition_domains) > len(self.domains_with_errors): if len(self.transition_domains) > len(self.domains_with_errors):
self.emails_to_send.append(email_context) self.emails_to_send.append(email_context)
def send_emails(self): def send_emails(self):
if len(self.emails_to_send) > 0:
for email_data in self.emails_to_send: for email_data in self.emails_to_send:
self.send_email(email_data) self.send_email(email_data)
else:
logger.info("no emails to send")
def send_email(self, email_data): def send_email(self, email_data):
try: try:
@ -122,8 +125,8 @@ class Command(BaseCommand):
"domains": email_data["domains"], "domains": email_data["domains"],
}, },
) )
# if log level set to debug, success message is logged # success message is logged
logger.debug( logger.info(
f"email sent successfully to {email_data['email']} for " f"email sent successfully to {email_data['email']} for "
f"{[domain['name'] for domain in email_data['domains']]}" f"{[domain['name'] for domain in email_data['domains']]}"
) )

View file

@ -1,11 +1,29 @@
You have been invited to manage {% if domains|length > 1 %}multiple domains{% else %}the domain {{ domains.0.name }}{% endif %} on get.gov, {% autoescape off %}{# In a text file, we don't want to have HTML entities escaped #}
the registrar for .gov domain names. Hi.
{%if domains|length > 1 %}
To accept your invitation, go to each of the following urls: You have been added as a manager on {% if domains|length > 1 %}multiple domains (listed below){% else %}{{ domains.0.name }}{% endif %}.
{% for domain in domains %}
{{ domain.url }} (to manage {{ domain.name }}) YOU NEED A LOGIN.GOV ACCOUNT
{% endfor %} Youll need a Login.gov account to manage your .gov domain{% if domains|length > 1 %}s{% endif %}. Login.gov provides a simple and secure process for signing into many government services with one account. If you dont already have one, follow these steps to create your Login.gov account <https://login.gov/help/get-started/create-your-account/>.
{% else %}
To accept your invitation, go to <{{ domains.0.url }}>. DOMAIN MANAGEMENT
As a .gov domain manager you can add or update information about your domain{% if domains|length > 1 %}s{% endif %}. Youll also serve as a contact for your .gov domain{% if domains|length > 1 %}s{% endif %}. Please keep your contact information updated. Learn more about domain management <https://get.gov/help/>.
{% if domains|length > 1 %}
DOMAINS
{% for domain in domains %} {{ domain.name }}
{% endfor %}{% else %}
{% endif %} {% endif %}
You will need to log in with a Login.gov account using this email address. SOMETHING WRONG?
If youre not affiliated with {{ domain.name }} or think you received this message in error, contact the .gov team <https://get.gov/help/#contact-us>.
THANK YOU
.Gov helps the public identify official, trusted information. Thank you for using a .gov domain.
----------------------------------------------------------------
The .gov team
Contact us: <https://get.gov/contact/>
Visit <https://get.gov>
{% endautoescape %}

View file

@ -1 +1 @@
You are invited to manage {% if domains|length > 1 %}multiple domains{% else %}{{ domains.0 }}{% endif %} on get.gov You've been added to a .gov domain