diff --git a/app/services/seed/parks.rb b/app/services/seed/parks.rb index d102180..d33dade 100644 --- a/app/services/seed/parks.rb +++ b/app/services/seed/parks.rb @@ -9,13 +9,18 @@ class Seed::Parks 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'] + parks, states = response_body['data'] .pluck('parkCode', 'name', 'states', 'activities', 'operatingHours') .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) + 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 #{states.flatten.count} park by state records") end end end