mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-11 01:31:39 -05:00
28 lines
611 B
Ruby
28 lines
611 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Jobs::Create
|
|
class InvalidJobName < StandardError; end
|
|
|
|
attr_reader :job_name, :user
|
|
|
|
def initialize(job_name, user_id)
|
|
@job_name = job_name
|
|
@user = User.find(user_id)
|
|
end
|
|
|
|
def call
|
|
points =
|
|
case job_name
|
|
when 'start_reverse_geocoding'
|
|
user.tracked_points
|
|
when 'continue_reverse_geocoding'
|
|
user.tracked_points.not_reverse_geocoded
|
|
else
|
|
raise InvalidJobName, 'Invalid job name'
|
|
end
|
|
|
|
points.find_each(batch_size: 1_000) do |point|
|
|
point.async_reverse_geocode(force: true)
|
|
end
|
|
end
|
|
end
|