"""Work with sql requests for getting/updating vendor mapping.""" import config from constants.snowflake_queries import GET_PARENT_REP_OWNER_MAPPING from constants.sql_queries import ( INSERT_INTO_INBOUND_MAJOR_LABEL_MAPPING, SELECT_FROM_INBOUND_MAJOR_LABEL_MAPPING_BY_CODE) from ddex_ingester_common.helpers.rds import run_rds_query from ddex_ingester_common.models.state_machine.body import ( Body as StateMachineBody) from helpers.snowflake_utils import execute_snowflake_query def get_vendor_and_subaccount_for_rep_owner_code_rows( logger, s3_context: StateMachineBody) -> list: """Lookup Orchard vendor_id and subaccount_id for the rep owner code.""" logger.info('Reading vendor/subaccount from RDS given rep owner code.') parent_repertoire_owner_code = (s3_context.product. parent_repertoire_owner_code) repertoire_owner_code = s3_context.product.repertoire_owner_code query_args = (parent_repertoire_owner_code, repertoire_owner_code) return run_rds_query( logger, config.RDS_HOST, config.RDS_DB_NAME, config.RDS_RW_USER, config.secrets_manager_client.get_cred('rds_read_write_password'), SELECT_FROM_INBOUND_MAJOR_LABEL_MAPPING_BY_CODE, query_args, ) def insert_vendor_and_subaccount_mapping( logger, vendor_id: int, subaccount_id: int, s3_context: StateMachineBody): """Insert vendor mapping in RDS.""" logger.info('Updating vendor/subaccount in RDS.') parent_repertoire_owner_code = (s3_context.product. parent_repertoire_owner_code) repertoire_owner_code = s3_context.product.repertoire_owner_code query_args = (vendor_id, subaccount_id, parent_repertoire_owner_code, repertoire_owner_code) run_rds_query( logger, config.RDS_HOST, config.RDS_DB_NAME, config.RDS_RW_USER, config.secrets_manager_client.get_cred('rds_read_write_password'), INSERT_INTO_INBOUND_MAJOR_LABEL_MAPPING, query_args, ) def get_parent_repertoire_owner_mapping( logger, s3_context: StateMachineBody) -> list: """Get parent repertoire owner mapping in REP_OWNER_HIERARCHY table.""" logger.info('Getting parent repertoire owner mapping.') return execute_snowflake_query( GET_PARENT_REP_OWNER_MAPPING, {'rep_owner_key': s3_context.product.repertoire_owner_code})