"""Processing logic.""" from src.logic.lyrics import apply_revisions_to_lyrics from src.logic.release_correction import get_lyric_revisions def processing_logic(error_correction_id): """Logic to apply track lyric revisions.""" track_lyric_revisions = get_lyric_revisions(error_correction_id) if not len(track_lyric_revisions): return 'exited' revisions_not_applied = set(list(map( lambda x: x['key_id'], track_lyric_revisions))) try: for item in track_lyric_revisions: track_id = item['key_id'] apply_revisions_to_lyrics( track_id=track_id, lyrics=item['key_value'] ) revisions_not_applied.remove(track_id) except Exception as e: error_msg = ( f'Failed to apply revision to lyrics for track ids ' f'{list(revisions_not_applied)}\n' f'{str(e)}' ) raise Exception(error_msg) return 'applied'