Sha256: 324e81afa9742d54463aa1e610945824b31a9ec192fc491671dc090bc1b7add5

Contents?: true

Size: 1.92 KB

Versions: 8

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

# Import GBLv1
class ImportGblv1 < Import
  # validations, constants and methods

  def mapping_configuration
    GeoblacklightAdmin::Schema.instance.importable_fields
  end

  def klass_delimiter
    "|"
  end

  # Solr Field => Hard Value
  def default_mappings
    [
      {geoblacklight_version: "1.0"}
    ]
  end

  # Copy Value from Field to Field
  def assumed_mappings
    # No longer assuming identfier == slug
    # [
    #   { 'dc_identifier_s': 'layer_slug_s' }
    # ]
    # Return empty array
    []
  end

  # Derived Values
  def derived_mappings
    [
      {dct_references_s:
        {
          field: "dct_references_s",
          method: "geomg_dct_references_s"
        }},
      {b1g_date_range_drsim:
        {
          field: "b1g_date_range_drsim",
          method: "geomg_b1g_date_range_drsim"
        }}
    ]
  end

  # Required Values
  # Key / Default Value
  def required_mappings
    [
      {b1g_status_s: "Active"}
    ]
  end

  def solr_geom_mapping(geom)
    # Example: "ENVELOPE(-87\\, -85.76\\, 39.78\\, 37.96)"
    geom&.delete("\\")
  end

  def geomg_b1g_date_range_drsim(args)
    data_hash = args[:data_hash]
    field = args[:field]

    # Ex. [2020 TO 2020], [* TO 2020], [2020 TO *]
    date_range = nil
    date_range = data_hash[field][0] unless data_hash[field].empty?
    date_range = date_range[1..12]&.gsub(" TO ", "-") unless date_range.nil?
    date_range
  end

  def geomg_dct_references_s(args)
    data_hash = args[:data_hash]
    field = args[:field]
    references = []

    unless data_hash[field].empty?
      dct_references = data_hash[field][0]
      json_data = JSON.parse(dct_references[:value])

      json_data.each do |key, value|
        reference = {
          value: value,
          category: GeoblacklightAdmin::FieldMappingsGblv1.uri_2_category_references_mappings[key]
        }
        references << reference
      end
    end

    references
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
geoblacklight_admin-0.8.0 app/models/import_gblv1.rb
geoblacklight_admin-0.7.1 app/models/import_gblv1.rb
geoblacklight_admin-0.7.0 app/models/import_gblv1.rb
geoblacklight_admin-0.6.3 app/models/import_gblv1.rb
geoblacklight_admin-0.6.2 app/models/import_gblv1.rb
geoblacklight_admin-0.6.1 app/models/import_gblv1.rb
geoblacklight_admin-0.6.0 app/models/import_gblv1.rb
geoblacklight_admin-0.5.1 app/models/import_gblv1.rb