Files
national-parks-api/app/services/seed/parks.rb
2025-10-08 01:44:48 -07:00

22 lines
607 B
Ruby

class Seed::Parks
def self.call(...)
new(...).call
end
def call
offset, total = 0, 1
while offset < total do
response_body = NpsClient.current.parks(offset: offset).body
offset = response_body['start'].to_i + response_body['limit'].to_i
total = response_body['total'].to_i
parks = response_body['data']
.pluck('parkCode', 'name', 'states')
.map do |code, name, states|
{ code:, name:, states: }
end
Park.upsert_all(parks, unique_by: :code)
Rails.logger.info("Upserted #{parks.count} national parks")
end
end
end