app/controllers/spotlight/solr_controller.rb in blacklight-spotlight-2.7.2 vs app/controllers/spotlight/solr_controller.rb in blacklight-spotlight-2.8.0

- old
+ new

@@ -34,11 +34,18 @@ def solr_documents req = ActiveSupport::JSON.decode(json_content) Array.wrap(req).map do |r| - blacklight_config.document_model.new(r).to_solr.merge(@exhibit.solr_data).merge(r) + custom_field_data = r.dup.extract! @exhibit.custom_fields.pluck(:slug) + other_field_data = r.except(custom_field_data.keys) + + doc = blacklight_config.document_model.new(other_field_data) + + create_or_update_solr_document_sidecar(doc, r) + + doc.to_solr.merge(@exhibit.solr_data).merge(other_field_data) end end def json_content if params[:resources_json_upload] @@ -50,8 +57,18 @@ def validate_writable_index! return if Spotlight::Engine.config.writable_index render plain: 'Spotlight is unable to write to solr', status: 409 + end + + def create_or_update_solr_document_sidecar(doc, data) + return if data.blank? + + sidecar = doc.sidecar(@exhibit) + sidecar.data = sidecar.data.merge(data) + sidecar.save + + sidecar end end end