app/jobs/cangaroo/base_job.rb
module Cangaroo
class BaseJob < Job
include Cangaroo::ClassConfiguration
class_configuration :connection
class_configuration :path, ''
class_configuration :parameters, {}
class_configuration :process_response, true
protected
def connection_request
Cangaroo::Webhook::Client.new(destination_connection, path).post(transform, job_id, parameters)
end
def restart_flow(response)
# if no json was returned, the response should be discarded
return if response.blank?
return unless process_response
command = Cangaroo::PerformFlow.call(
source_connection: destination_connection,
json_body: response,
jobs: Rails.configuration.cangaroo.jobs.reject{ |job| job == self.class }
)
fail Cangaroo::Webhook::Error, command.message unless command.success?
end
def destination_connection
@destination_connection ||= Cangaroo::Connection.find_by!(name: connection)
end
end
end