trabajo-afectivo/lib/sequencer/unit/zendesk/client.rb

43 lines
1.3 KiB
Ruby
Raw Permalink Normal View History

2022-01-01 13:38:12 +00:00
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
class Sequencer
class Unit
module Zendesk
class Client < Sequencer::Unit::Common::Provider::Fallback
provides :client
private
def client
require 'zendesk_api' # Only load this gem when it is really used.
ZendeskAPI::Client.new do |config|
config.url = Setting.get('import_zendesk_endpoint')
# Basic / Token Authentication
config.username = Setting.get('import_zendesk_endpoint_username')
config.token = Setting.get('import_zendesk_endpoint_key')
# when hitting the rate limit, sleep automatically,
# then retry the request.
config.retry = true
# disable cache to avoid unneeded memory consumption
# since we are using each object only once
# Inspired by: https://medium.com/swiftype-engineering/using-jmat-to-find-analyze-memory-in-jruby-1c4196c1ec72
config.cache = false
# increase timeouts to avoid network issues.
config.client_options = {
request: {
open_timeout: 20, # default is 10
timeout: 120, # default is 60
},
}
end
end
end
end
end
end