import base64 import json from sendgrid import SendGridAPIClient from sendgrid.helpers.mail import From, To, Subject, PlainTextContent, HtmlContent, Mail def send_email_notification(event, context): """Triggered from a message on a Pub/Sub topic. Args: event (dict): Event payload. context (google.cloud.functions.Context): Metadata for the event. """ pubsub_message = base64.b64decode(event['data']).decode('utf-8') message_json = json.loads(pubsub_message) timestamp = message_json['timestamp'] intendID = message_json['intendID'] projectName = message_json['projectName'] artifactName = message_json['artifactName'] artifactVersion = message_json['artifactVersion'] environment = message_json['environment'] requesterEmail = message_json['requesterEmail'] html_text = f"""
GCP Hackathon - Nisum
RELEASE  ARTIFACT DEPLOYMENT REQUEST
REQUEST DETAILS
Timestamp = { timestamp }
Intend ID = "{ intendID }"
Project Name = { projectName }
Artifact Name = { artifactName }
Artifact Version = { artifactVersion }
Environment Name = { environment }
Requester Email = { requesterEmail }
Click to Submit Artifact Approval Form
Thanks!
Team Geek Speak Hertz

Geek Speak Hertz

Nisum Pakistan, Karachi, Sindh 75500

♥ POWERED BY GEEK SPEAK HERTZ
""" if "environment" in message_json: print("Environment Key exist in JSON data") if message_json["environment"] == "QA": message = Mail( from_email='asad.r.hussain@gmail.com', to_emails=['asad.r.hussain@gmail.com','niks3595@gmail.com'], subject='GCP Hackathon - Request Artifact Deployment', html_content= HtmlContent(html_text)) elif message_json["environment"] == "DEV": message = Mail( from_email='asad.r.hussain@gmail.com', to_emails=['asad.r.hussain@gmail.com','t3hami@gmail.com'], subject='GCP Hackathon - Request Artifact Deployment', html_content= HtmlContent(html_text)) elif message_json["environment"] == "PERF": message = Mail( from_email='asad.r.hussain@gmail.com', to_emails=['asad.r.hussain@gmail.com'], subject='GCP Hackathon - Request Artifact Deployment', html_content= HtmlContent(html_text)) elif message_json["environment"] == "PROD": message = Mail( from_email='asad.r.hussain@gmail.com', to_emails=['asad.r.hussain@gmail.com','t3hami@gmail.com','niks3595@gmail.com'], subject='GCP Hackathon - Request Artifact Deployment', html_content= HtmlContent(html_text)) else: print("Environment Not Found") try: sg = SendGridAPIClient('