"""Handlers for processed records.""" from src.logic.art_relations import handlers as ar_handlers from src.utils import log_execution _handlers = { 'art_relations': { 'company_brand': { 'insert': ar_handlers.company_brand_insert_update, 'update': ar_handlers.company_brand_insert_update, }, 'vendor': {'insert': ar_handlers.vendor_insert_update, 'update': ar_handlers.vendor_insert_update}, 'subaccount': {'insert': ar_handlers.subaccount_insert_update, 'update': ar_handlers.subaccount_insert_update}, 'artist_info': { 'insert': ar_handlers.artist_info_insert, 'update': ar_handlers.artist_info_update, 'delete': ar_handlers.artist_info_delete, }, 'project': { 'insert': ar_handlers.project_insert, 'update': ar_handlers.project_update, 'delete': ar_handlers.project_delete, }, 'releases': { 'insert': ar_handlers.product_insert, 'update': ar_handlers.product_update, 'delete': ar_handlers.product_delete, }, 'release_artist': { 'insert': ar_handlers.release_artist_insert, 'update': ar_handlers.release_artist_update, 'delete': ar_handlers.release_artist_delete, }, 'track': { 'insert': ar_handlers.track_insert, 'update': ar_handlers.track_update, 'delete': ar_handlers.track_delete, }, 'track_artist': { 'insert': ar_handlers.track_artist_insert, 'update': ar_handlers.track_artist_update, 'delete': ar_handlers.track_artist_delete, }, 'track_writer': { 'insert': ar_handlers.track_writer_insert, 'update': ar_handlers.track_writer_update, 'delete': ar_handlers.track_writer_delete, }, 'participant_external_link': { 'insert': ar_handlers.participant_external_link_upsert, 'update': ar_handlers.participant_external_link_upsert, }, 'vendor_service_tier': { 'insert': ar_handlers.vendor_service_tier_insert, 'delete': ar_handlers.vendor_service_tier_delete, }, } } def get_record_handler(record): """Get handler for the passed record. Args: record (dict): Source db record. """ handler = _handlers.get(record['database'], {}).get(record['table'], {}).get(record['type']) if handler: return log_execution(handler) return None