"""Check ingested sales data for batch id.""" from hooks.royalty_snowflake_hook import RoyaltySnowflakeHook from lib import config from lib.utils.event import get_abacus_event from templates.sales_ingest.snowflake_check_ingest_sales\ import check_ingested_sales def check_ingested_sales_task(dag_run, **kwargs) -> bool: """Check ingested sales data.""" event = get_abacus_event(dag_run, **kwargs) batch_id = event.target_id task_instance = kwargs.get('task_instance') sales_ingest_type = task_instance.xcom_pull( task_ids='determine_sales_ingest_type', key='sales_ingest_type' ) print(f'Checking ingested sales for batch id: {batch_id}') print(f'Sales ingest type: {sales_ingest_type}') snowflake_statement = check_ingested_sales().render( env=config.OWS_ENV, sales_ingest_type=sales_ingest_type, batch_id=batch_id ) snowflake_hook = RoyaltySnowflakeHook(snowflake_conn_id=config.SNOWFLAKE_CONN_NAME) sqlalchemy_engine = snowflake_hook.get_sqlalchemy_engine() with sqlalchemy_engine.begin() as conn: row = conn.execute(snowflake_statement).fetchone() row_count = dict(row).get('count') if row_count == 0: print(f'No ingested sales found for batch_id: {batch_id}. Continuing.') return True else: print(f'Ingested sales found for batch_id: {batch_id}. Stopping DAG.') return False