def process_config_handler()

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")