From 7521ad4050f25147c7f807b8bffd9872734a15d5 Mon Sep 17 00:00:00 2001
From: braydonjustice <braydonjustice@gmail.com>
Date: Fri, 6 Dec 2024 00:15:19 -0800
Subject: [PATCH] accounts for valkyrie storage, and allows for exporting of
 files.

---
 app/parsers/bulkrax/csv_parser.rb | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/app/parsers/bulkrax/csv_parser.rb b/app/parsers/bulkrax/csv_parser.rb
index 03159ebb..721bb3a1 100644
--- a/app/parsers/bulkrax/csv_parser.rb
+++ b/app/parsers/bulkrax/csv_parser.rb
@@ -244,15 +244,19 @@ def store_files(identifier, folder_count)
       record = Bulkrax.object_factory.find(identifier)
       return unless record
 
-      file_sets = record.file_set? ? Array.wrap(record) : record.file_sets
+      if record.file_set?
+        file_sets = Array.wrap(record)
+      else # for valkyrie
+        file_sets = record.respond_to?(:file_sets) ? record.file_sets : record.members&.select{|m| m.file_set?}
+      end
       file_sets << record.thumbnail if exporter.include_thumbnails && record.thumbnail.present? && record.work?
       file_sets.each do |fs|
         path = File.join(exporter_export_path, folder_count, 'files')
         FileUtils.mkdir_p(path) unless File.exist? path
         file = filename(fs)
         next if file.blank? || fs.original_file.blank?
-
-        io = open(fs.original_file.uri)
+        byebug
+        io = fs.original_file.respond_to?(:uri) ? (fs.original_file.uri) : fs.original_file.file.io
         File.open(File.join(path, file), 'wb') do |f|
           f.write(io.read)
           f.close