"""Lambda podcast_notifications function module.""" import config from src.common import sentry from owsrequest import request OWS_PODCAST = 'ows-podcast' ENDPOINTS = { 'episodes-gone-live': '/job/episode-gone-live', 'episode-going-live-tomorrow': '/job/episode-going-live-tomorrow', 'ad-past-due': '/job/ad-past-due', 'ad-due-tomorrow': '/job/ad-due-tomorrow', 'episode-spike-detection': '/job/episode-spike-detection' } def call_podcast_endpoint(endpoint): """Update the podcast adread to say pdf is safe.""" response = request.process( application=config.APPLICATION_NAME, environment=config.ENVIRONMENT, method='GET', service_name=OWS_PODCAST, path=endpoint, ) if response.status_code != 200: sentry.capture_message('ows-podcast error, code {}'.format(response.status_code)) def handler(event, context): """Lambda entry point.""" try: print(event) if 'eventType' not in event: msg = 'Event does not have event type {}'.format(event) config.logger.info(msg) sentry.capture_message(msg) return if event['eventType'] not in ENDPOINTS: msg = 'eventType does not map to an endpoint {}'.format(event) config.logger.info(msg) sentry.capture_message(msg) return endpoint = ENDPOINTS[event['eventType']] call_podcast_endpoint(endpoint) except Exception as e: config.logger.exception(str(e)) raise e