Sha256: 9ca2d58032e1156af8e018149a0a3c79ee35fb2f6cc7765cdf0308758a50c064
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
require 'forwardable' require 'null_logger' require 'zendesk_api' require 'gds_zendesk/users' module GDSZendesk class Client extend Forwardable def_delegators :@zendesk_client, :ticket attr_accessor :config_options def initialize(config_options) @config_options = defaults.merge(config_options) @zendesk_client = build end def users Users.new(@zendesk_client) end def build check_that_username_and_password_are_provided ZendeskAPI::Client.new { |config| config.url = url config.username = username config.token = token if token config.password = password if password config.logger = logger } end protected def logger @config_options[:logger] || @config_options["logger"] end def check_that_username_and_password_are_provided raise ArgumentError, "Zendesk username not provided" if username.nil? raise ArgumentError, "Zendesk password or token not provided" if password.nil? && token.nil? raise ArgumentError, "Provide only one of token or password" unless password.nil? || token.nil? end def username @config_options[:username] || @config_options["username"] end def token @config_options[:token] || @config_options["token"] end def password @config_options[:password] || @config_options["password"] end def url @config_options[:url] || @config_options["url"] end def defaults { logger: NullLogger.instance, url: "https://govuk.zendesk.com/api/v2/" } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gds_zendesk-3.2.0 | lib/gds_zendesk/client.rb |