Class: OpenTopo::Services::ResponseToCatalogListConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/open_topo/services/response_to_catalog_list_converter.rb

Class Method Summary collapse

Class Method Details

.call(data) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/open_topo/services/response_to_catalog_list_converter.rb', line 6

def self.call(data)
  datasets = data&.dig("Datasets", "Dataset")
  return [] if datasets.nil?

  datasets.map do |dataset|
    created_at = dataset["temporalCoverage"].split(" / ").map { |string_date| Date.parse(string_date) }

    OpenTopo::Catalog.new(
      full_name: dataset["name"],
      name: dataset["alternateName"],
      url: dataset["url"],
      date_created: dataset["dateCreated"],
      temporal_coverage: {from: created_at[0], to: created_at[1]},
      unit: dataset["spatialCoverage"]["additionalProperty"].find { |p| p["name"] == "Unit" }&.fetch("value")
    )
  end
end