lib/core/jobs/producer.rb (17 lines of code) (raw):
#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.
#
# frozen_string_literal: true
require 'core/connector_settings'
require 'core/elastic_connector_actions'
module Core
module Jobs
class Producer
JOB_TYPES = %i(sync).freeze
class << self
def enqueue_job(job_type:, connector_settings:)
raise UnsupportedJobType unless JOB_TYPES.include?(job_type)
raise ArgumentError unless connector_settings.kind_of?(ConnectorSettings)
ElasticConnectorActions.create_job(connector_settings: connector_settings)
end
end
end
class UnsupportedJobType < StandardError; end
end
end