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
|