"""Utils module.""" import logging import requests from models import ows_artist def get_or_create_artist_info_record(name, vendor_id, session=requests): """Get or create a matching artist info record.""" # Find the artist_info record that maps to release_artist. artist_info_list = ows_artist.filter_artists_info( name, vendor_id, session)['items'] if artist_info_list: # Assume artist with lowest pk is the correct one. artist = artist_info_list[0] else: # If no matching artist is found, create one. artist = ows_artist.create_artist_info(name, vendor_id, session) return artist def get_contributor_and_update_artist_info_id( contributors, track_or_release_contributor_id, artist): """Find matching track or product contributor and update artist info id.""" for index, contributor in enumerate(contributors): contributor_id = contributor.get('id') or \ contributor.get('track_artist_id') or \ contributor['track_writer_id'] if contributor_id == track_or_release_contributor_id: contributors[index] = dict(contributor) contributors[index]['artist_info_id'] = artist['id'] return contributors logging.warning('Could not find a matching contributor to update.') return contributors