"""Module for track-related functionality.""" from collections import defaultdict from masters_registry.connectors import mysql from masters_registry.constant import field_const from masters_registry.models.sql import track as track_sql def get_tuid_isrc_for_vendor_id(isrc_list, vendor_id): """Get tuids corresponding to given ISRC and vendor_id. Args: isrc_list (list): List of international standard recording codes. vendor_id (int): Vendor id Returns: dict: {isrc: [tuid]} """ result = defaultdict(list) with mysql.mr_session_scope() as session: rows = session.execute( track_sql.SELECT_TUID_BY_ISRC_AND_VENDOR_ID, {field_const.VENDOR_ID: vendor_id, 'isrc_list': isrc_list}) for row in rows: tuid, isrc = row result[isrc].append(tuid) return result def get_tuid_isrc_for_subaccount_id(isrc_list, subaccount_id): """Get tuids corresponding to given ISRC and subaccount_id. Args: isrc_list (list): List of international standard recording codes. subaccount_id (int): Subaccount id Returns: dict: {isrc: [tuid]} """ result = defaultdict(list) with mysql.mr_session_scope() as session: rows = session.execute( track_sql.SELECT_TUID_BY_ISRC_AND_SUBACCOUNT_ID, {field_const.SUBACCOUNT_ID: subaccount_id, 'isrc_list': isrc_list}) for row in rows: tuid, isrc = row result[isrc].append(tuid) return result