Maintenance::AddCountriesTask

Source code
# frozen_string_literal: true

class Maintenance::AddCountriesTask < MaintenanceTasks::Task
  include DatadogTrace

  csv_collection

  COUNTRY_CODE_HEADER = 'code'
  COUNTRY_NAME_HEADER = 'name'

  def process(row)
    country_code = row[COUNTRY_CODE_HEADER]

    raise Utils::Errors::MissedCountryCode unless country_code

    country_name = fetch_country_name_from_api(country_code) || row[COUNTRY_NAME_HEADER]

    raise Utils::Errors::WrongCountryCode.new(country_code:) unless country_name

    Country.find_or_create_by(code: country_code).update!(display_name: country_name)
  end

  private

  def fetch_country_name_from_api(code)
    CountryNameFetcherService.new(code).call
  end
end

Previous Runs

Succeeded
#88

Processed 2 out of 2 items (100%).

Ran for less than 5 seconds, finished .


Metadata:
user_id
Succeeded
#82

Processed 5 out of 5 items (100%).

Ran for less than 5 seconds, finished .


Errored
#81

Processed 0 out of 5 items (0%).

Ran for less than 5 seconds until an error happened .

ActiveRecord::StatementInvalid

PG::UndefinedTable: ERROR: relation "async_job_logs" does not exist LINE 10: WHERE a.attrelid = '"async_job_logs"'::regclass ^

lib/loggers/async_job_logger.rb:30:in `log'
lib/loggers/async_job_logger.rb:21:in `error'
app/tasks/maintenance/add_countries_task.rb:13:in `process'

Errored
#80

Processed 0 out of 5 items (0%).

Ran for less than 5 seconds until an error happened .

ActiveRecord::StatementInvalid

PG::UndefinedTable: ERROR: relation "async_job_logs" does not exist LINE 10: WHERE a.attrelid = '"async_job_logs"'::regclass ^

lib/loggers/async_job_logger.rb:30:in `log'
lib/loggers/async_job_logger.rb:21:in `error'
app/tasks/maintenance/add_countries_task.rb:13:in `process'

Succeeded
#79

Processed 5 out of 5 items (100%).

Ran for less than 5 seconds, finished .


Succeeded
#75

Processed 15 out of 15 items (100%).

Ran for less than 5 seconds, finished .


Succeeded
#74

Processed 15 out of 15 items (100%).

Ran for less than 5 seconds, finished .