in source/lambda/capture_news_feed/lambda_function.py [0:0]
def process_config_handler(event, context):
if event["source"] == os.environ["INGESTION_NAMESPACE"]:
data = event["detail"]
aggregated_feed = None
if data.get("topic", None) is None:
logger.debug("Since topic is none, gettting news feed for all available topics")
aggregated_feed = retrieve_feed_from_all_topics(data["url"])
else:
logger.debug(f"Retrieving news feed for topic: {data['topic']}")
aggregated_feed = retrieve_feed(data.url, topic=data["topic"])
for feed in aggregated_feed:
account = data["account"]
url = data["url"]
search_query = data.get("query", None)
# if search_query is set empty or as ALL or as '*', it not filter any records, hence setting it as None
if search_query == "" or search_query == "ALL" or search_query == "*":
search_query = None
tracker = get_query_tracker(account, url, search_query, feed["topic"])
create_and_publish_record(
feed, account, data["platform"], tracker["LAST_PUBLISHED_TIMESTAMP"], search_query
)
ddb_helper.update_query_tracker(account, feed["url"], search_query, feed["topic"])
else:
logger.error("Target resource not configured for received namespace")
raise IncorrectEventNameSpaceError("Target resource not configured for received namespace")