2021-06-08 01:23:25 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module BulkImports
|
|
|
|
class ExportRequestWorker
|
|
|
|
include ApplicationWorker
|
|
|
|
|
2021-10-27 15:23:28 +05:30
|
|
|
data_consistency :always
|
|
|
|
|
2021-06-08 01:23:25 +05:30
|
|
|
idempotent!
|
|
|
|
worker_has_external_dependencies!
|
|
|
|
feature_category :importers
|
|
|
|
|
|
|
|
GROUP_EXPORTED_URL_PATH = "/groups/%s/export_relations"
|
|
|
|
|
|
|
|
def perform(entity_id)
|
|
|
|
entity = BulkImports::Entity.find(entity_id)
|
|
|
|
|
|
|
|
request_export(entity)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def request_export(entity)
|
|
|
|
http_client(entity.bulk_import.configuration)
|
|
|
|
.post(GROUP_EXPORTED_URL_PATH % entity.encoded_source_full_path)
|
|
|
|
end
|
|
|
|
|
|
|
|
def http_client(configuration)
|
2021-09-04 01:27:46 +05:30
|
|
|
@client ||= Clients::HTTP.new(
|
2021-09-30 23:02:18 +05:30
|
|
|
url: configuration.url,
|
2021-06-08 01:23:25 +05:30
|
|
|
token: configuration.access_token
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|