Skip to content

Commit

Permalink
Prevent AF loading members or files unless members or files are being…
Browse files Browse the repository at this point in the history
… loaded in the outer Valkyrie object. This speeds up AdministrativeSet and Collection actions that do not require touching the members.
  • Loading branch information
orangewolf authored and tamsin woo committed Apr 23, 2024
1 parent d8f0e9c commit 67ab542
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions lib/wings/active_fedora_converter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,21 @@ def apply_attributes_to_model(af_object)

def parse_attributes(af_object)
converted_attrs = normal_attributes
members = Array.wrap(converted_attrs.delete(:members))
files = converted_attrs.delete(:files)
af_object.attributes = converted_attrs
af_object.attributes = converted_attrs.except(:members, :files)
af_object.extracted_text = create_extrated_text(af_object) if resource.attributes[:extracted_text_id].present?
perform_lease_conversion(af_object: af_object, resource: resource)
perform_embargo_conversion(af_object: af_object, resource: resource)
members.empty? ? af_object.try(:ordered_members)&.clear : af_object.try(:ordered_members=, members)
af_object.try(:members)&.replace(members)
af_object.files.build_or_set(files) if files

if converted_attrs.keys.include?(:members)
members = Array.wrap(converted_attrs.delete(:members))
members.empty? ? af_object.try(:ordered_members)&.clear : af_object.try(:ordered_members=, members)
af_object.try(:members)&.replace(members)
end

if converted_attrs.keys.include?(:files)
files = converted_attrs.delete(:files)
af_object.files.build_or_set(files) if files
end
end

def create_extrated_text(af_object)
Expand Down

0 comments on commit 67ab542

Please sign in to comment.