"""Email.""" from glom import glom from switchboard_consumer.config import (DDEX_INGEST_EVENTS_EMAIL_GROUP, ENVIRONMENT, ENVIRONMENT_PROD, FROM_EMAIL_ADDRESS, ) from switchboard_consumer.connectors import ses from switchboard_consumer.constants import email from switchboard_consumer.utils import ( switchboard_graphql_json as swb_formatter ) def send_unsubmit_email(orchard_product, swb_product, release_corrections=False): """Send an email about unsubmitted a product Args: orchard_product (dict): Orchard product information swb_product (dict): Swb product information Returns: None """ additional_text = ( email.FAILED_RC_SCENARIO if release_corrections else email.UNSUBMIT_SCENARIO ) values = { 'upc': glom(orchard_product, 'upc', default=''), 'label_email': glom(orchard_product, 'label.assignedToEmail', default=None), 'product_title': swb_formatter.get_product_title(swb_product) or '', 'label_name': swb_formatter.get_label_name(swb_product) or '', 'swb_deal_name': swb_formatter.get_deal_name(swb_product) or '', 'sony_maint_owner': swb_formatter.get_maintenance_owner_name( swb_product) or '', 'artist_name': swb_formatter.get_product_artist_name( swb_product) or '', 'additional_text': additional_text } recipients = [*DDEX_INGEST_EVENTS_EMAIL_GROUP.split(',')] if ENVIRONMENT == ENVIRONMENT_PROD and values['label_email']: # Append the label manager if prod recipients.append( values['label_email'] ) params = { 'subject': email.UNSUBMIT_PRODUCT_SUBJECT.format(**values), 'to': recipients, 'sender': FROM_EMAIL_ADDRESS, 'text_body': email.UNSUBMIT_PRODUCT_TEXT_BODY.format(**values), } return ses.send_email(params)