Add seed parks service

This commit is contained in:
2025-10-08 01:44:48 -07:00
parent c0c3a1beb5
commit fe0c04b971

View File

@@ -0,0 +1,21 @@
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