import argparse import config import connection def get_releases_records(release_id, existing_display_upc, logger): sql_select = f"""SELECT release_id FROM releases WHERE release_id = %s AND display_upc = %s""" select_bindings = (release_id,) + (existing_display_upc,) db_connection = connection.ar_db_connection() add_logs('Select query arguments are %s' % str(select_bindings), logger) cursor = db_connection.cursor() cursor.execute(sql_select, select_bindings) db_connection.commit() row_count = cursor.rowcount add_logs('Records fetched for release_id %s and display_upc %s: %s' % (release_id, existing_display_upc, row_count), logger) return row_count def update_releases_records(release_id, new_display_upc, logger): sql_update = f"""UPDATE releases SET display_upc = %s WHERE release_id = %s""" update_bindings = (new_display_upc,) + (release_id,) db_connection = connection.ar_db_connection() add_logs('Update query arguments are %s' % str(update_bindings), logger) cursor = db_connection.cursor() cursor.execute(sql_update, update_bindings) db_connection.commit() add_logs('Records updated: %s' % cursor.rowcount, logger) if cursor.rowcount > 0: add_logs('Display UPC %s is updated for release_id %s' % (new_display_upc, release_id), logger) db_connection.close() def add_logs(message, logger): logger.info(message) print(message) def main(correlation_id=None): parser = argparse.ArgumentParser(prefix_chars='+') parser.add_argument( 'release_id', nargs=1, help = 'Please enter the release_id' ) parser.add_argument( 'existing_display_upc', nargs=1, help='Please enter the existing display upc' ) parser.add_argument( 'new_display_upc', nargs=1, help='Please enter the new display upc' ) args = parser.parse_args() logger = config.get_current_logger(correlation_id) add_logs('Running script to update display UPC', logger) release_id = int(args.release_id[0]) existing_display_upc = str(args.existing_display_upc[0]) new_display_upc = str(args.new_display_upc[0]) release_row_count = get_releases_records(release_id, existing_display_upc, logger) if release_row_count == 0: add_logs('Release with release_id %s and display_upc %s does not exist' % (release_id, existing_display_upc), logger) add_logs('Display UPC is not updated for release_id %s' % release_id, logger) add_logs('Script executed successfully', logger) return update_releases_records(release_id, new_display_upc, logger) add_logs('Script executed successfully', logger) if __name__ == '__main__': main()