def process_response()

in source/lambda/ingestion-youtube/util/video.py [0:0]


def process_response(youtube_response, video_search_params):
    event_bus = get_service_client("events")
    count = 1
    comments = []

    logger.debug(f"video search parameters {json.dumps(video_search_params)}")
    search_query = f'{video_search_params.get("q", None)}#{video_search_params.get("channelId", None)}'

    for index, item in enumerate(youtube_response["items"]):
        logger.debug(f"Item is {item}")
        comments.append(
            {
                "EventBusName": os.environ["EVENT_BUS_NAME"],
                "Source": os.environ["VIDEO_NAMESPACE"],
                "Detail": json.dumps(
                    {"VideoId": item["id"]["videoId"], "SearchQuery": search_query, "Title": item["snippet"]["title"]}
                ),
                "DetailType": "Video",
            }
        )
        logger.debug(f"Count is {count}")
        # optimize the loop to perform put_events with every 10 items
        if count == 10 or len(youtube_response["items"]) - index == 1:
            service_response = event_bus.put_events(Entries=comments)

            logger.debug(f"Put events response is {json.dumps(service_response)}")
            failed_entry_count = service_response.get("FailedEntryCount", None)
            if failed_entry_count > 0:
                logger.error(f"Error in put events {json.dumps(service_response['Entries'])}")

            count = 1
            comments = []
        else:
            count = count + 1  # optimize the loop to perform put_events with every 10 items