Create search index

This commit is contained in:
2025-10-08 08:35:14 -07:00
parent 55f712d043
commit b4f45bf5c8

View File

@@ -9,13 +9,18 @@ class Seed::Parks
response_body = NpsClient.current.parks(offset: offset).body response_body = NpsClient.current.parks(offset: offset).body
offset = response_body['start'].to_i + response_body['limit'].to_i offset = response_body['start'].to_i + response_body['limit'].to_i
total = response_body['total'].to_i total = response_body['total'].to_i
parks = response_body['data'] parks, states = response_body['data']
.pluck('parkCode', 'name', 'states', 'activities', 'operatingHours') .pluck('parkCode', 'name', 'states', 'activities', 'operatingHours')
.map do |code, name, states, activities, operating_hours| .map do |code, name, states, activities, operating_hours|
{ code:, name:, properties: { activities:, operating_hours: } } [
end { code:, name:, properties: { activities:, operating_hours: } },
states.split(',').map { { state: it.strip.upcase, park_code: code } }
]
end.transpose
Park.upsert_all(parks, unique_by: :code) Park.upsert_all(parks, unique_by: :code)
ParksByState.upsert_all(states.flatten, unique_by: :index_parks_by_states_on_state_and_park_code)
Rails.logger.info("Upserted #{parks.count} national parks") Rails.logger.info("Upserted #{parks.count} national parks")
Rails.logger.info("Upserted #{states.flatten.count} park by state records")
end end
end end
end end