app/models/concerns/bulkrax/file_factory.rb in bulkrax-4.4.2 vs app/models/concerns/bulkrax/file_factory.rb in bulkrax-5.0.0
- old
+ new
@@ -43,12 +43,18 @@
@parsed_remote_files.delete(nil)
@parsed_remote_files
end
def new_remote_files
- return if object.is_a? FileSet
-
- @new_remote_files ||= if object.present? && object.file_sets.present?
+ @new_remote_files ||= if object.is_a? FileSet
+ parsed_remote_files.select do |file|
+ # is the url valid?
+ is_valid = file[:url]&.match(URI::ABS_URI)
+ # does the file already exist
+ is_existing = object.import_url && object.import_url == file[:url]
+ is_valid && !is_existing
+ end
+ elsif object.present? && object.file_sets.present?
parsed_remote_files.select do |file|
# is the url valid?
is_valid = file[:url]&.match(URI::ABS_URI)
# does the file already exist
is_existing = object.file_sets.detect { |f| f.import_url && f.import_url == file[:url] }