mastodon/app/workers/fasp/backfill_worker.rb
2025-08-08 09:46:09 +00:00

33 lines
847 B
Ruby

# frozen_string_literal: true
class Fasp::BackfillWorker < Fasp::BaseWorker
sidekiq_options retry: 5
def perform(backfill_request_id)
backfill_request = Fasp::BackfillRequest.find(backfill_request_id)
with_provider(backfill_request.fasp_provider) do
announce(backfill_request)
backfill_request.advance!
end
rescue ActiveRecord::RecordNotFound
# ignore missing backfill requests
end
private
def announce(backfill_request)
Fasp::Request.new(backfill_request.fasp_provider).post('/data_sharing/v0/announcements', body: {
source: {
backfillRequest: {
id: backfill_request.id.to_s,
},
},
category: backfill_request.category,
objectUris: backfill_request.next_uris,
moreObjectsAvailable: backfill_request.more_objects_available?,
})
end
end