"""Logic for release corrections.""" from owsrequest import request from src import config from src.constants import service def get_release_correction(release_correction_id): """Get a release correction.""" response = request.process( config.APPLICATION_NAME, config.ENVIRONMENT, 'GET', service.OWS_PRODUCT_WORKFLOW, '/correction/{}'.format(release_correction_id) ) response_json = response.json() if response.status_code != 200: error_message = ( f'Failed get release correction for id {release_correction_id}\n' f'code: {response_json.get("code")}\n' f'message: {response_json.get("message")}' ) raise Exception(error_message) return response_json def get_track_revisions(error_correction_id): """Get track revisions. (Do not include lyric changes).""" revision = get_release_correction(error_correction_id) items = (list(filter(lambda x: ( x['table_name'] == 'track' and x['field_name'] != 'lyrics' ), revision['items']))) return items