From 7517a558a9c9523a1bdd9c64ca12b5d47b8e02ec Mon Sep 17 00:00:00 2001 From: Max Kadel Date: Thu, 18 Apr 2024 10:49:55 -0400 Subject: [PATCH] Use ReportDownloader for AlmaRenewList Co-authored-by: Beck Davis --- app/models/alma_renew/alma_renew_list.rb | 37 ++---------------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/app/models/alma_renew/alma_renew_list.rb b/app/models/alma_renew/alma_renew_list.rb index 266e606a..7b452e28 100644 --- a/app/models/alma_renew/alma_renew_list.rb +++ b/app/models/alma_renew/alma_renew_list.rb @@ -14,8 +14,6 @@ def initialize(input_sftp_base_dir: Rails.application.config.alma_sftp.renew_rep @input_sftp_base_dir = input_sftp_base_dir @file_pattern = file_pattern @sftp = alma_sftp - @renew_item_list = [] - @remote_filenames = [] download_renew_items end @@ -29,39 +27,10 @@ def mark_files_as_processed private - # rubocop:disable Metrics/MethodLength def download_renew_items - # report_downloader = ReportDownloader.new(sftp: AlmaSftp.new, file_pattern:, process_class: AlmaRenew::AlmaRenewList, input_sftp_base_dir:) - # report_downloader.run - working_file_names = [] - sftp.start do |sftp_conn| - sftp_conn.dir.foreach(input_sftp_base_dir) do |entry| - next if /\.processed$/.match?(entry.name) - next unless /#{file_pattern}/.match?(entry.name) && date_in_range?(file_name: entry.name) - - Rails.logger.debug { "Found matching pattern in file: #{entry.name}" } - remote_filename = File.join(input_sftp_base_dir, entry.name) - # ascii-8bit required for download! to succeed - temp_file = Tempfile.new(encoding: 'ascii-8bit') - sftp_conn.download!(remote_filename, temp_file) - process(temp_file) - remote_filenames << remote_filename - end - end - working_file_names - end - - # rubocop:enable Metrics/MethodLength - def date_in_range?(*) - true - end - - def process(temp_file) - CSVValidator.new(csv_filename: temp_file.path).require_headers ['Barcode', 'Patron Group', 'Expiry Date', 'Primary Identifier'] - CSV.foreach(temp_file, headers: true, encoding: 'bom|utf-8') do |row| - renew_item_list << Item.new(row.to_h) - end - renew_item_list + report_downloader = ReportDownloader.new(sftp: AlmaSftp.new, file_pattern:, process_class: AlmaRenew::RenewFile, input_sftp_base_dir:) + @renew_item_list = report_downloader.run.flatten + @remote_filenames = report_downloader.remote_filenames end end end