"""Logic for ows-lyrics.""" from owsrequest import request from src import config from src import service def apply_revisions_to_lyrics(track_id, lyrics): """Apply revisions to lyrics.""" if len(lyrics): return put_track_lyrics(track_id, lyrics) else: return delete_track_lyrics(track_id) def put_track_lyrics(track_id, lyrics): """Put track lyrics.""" response = request.process( config.APPLICATION_NAME, config.ENVIRONMENT, 'PUT', service.OWS_LYRICS, path=f'/tracks/{track_id}/lyrics', headers={'Content-Type': 'application/json'}, json={'lyrics': lyrics}, ) if response.status_code != 200: error_msg = ( f'put_track_lyrics failed for track id {track_id}\n' f'Status code: {response.status_code}\n' f'Error: {response.text}\n' ) raise Exception(error_msg) return response.json() def delete_track_lyrics(track_id): """Delete track lyrics.""" response = request.process( config.APPLICATION_NAME, config.ENVIRONMENT, 'DELETE', service.OWS_LYRICS, path=f'/tracks/{track_id}/lyrics', headers={'Content-Type': 'application/json'} ) if response.status_code != 200: error_msg = ( f'delete_track_lyrics failed for track id {track_id}\n' f'Status code: {response.status_code}\n' f'Error: {response.text}\n' ) raise Exception(error_msg) return response.json()