class ZaloAPI::Client
Attributes
config[R]
@return [Configuration] Config
instance
Public Class Methods
new() { |config| ... }
click to toggle source
# File lib/zalo_api/client.rb, line 17 def initialize raise ArgumentError, 'block not given' unless block_given? @config = ZaloAPI::Configuration.new yield config config.retry = !!config.retry # nil -> false set_default_logger end
Public Instance Methods
build_connection()
click to toggle source
Called by {#connection} to build a connection. Can be overwritten in a subclass to add additional middleware and make other configuration changes.
Uses middleware according to configuration options.
Request logger if logger is not nil
Retry middleware if retry is true
# File lib/zalo_api/client.rb, line 44 def build_connection Faraday.new(config.options) do |builder| # response builder.use ZaloAPI::Middleware::Response::ParseJson builder.use ZaloAPI::Middleware::Response::SanitizeResponse builder.use ZaloAPI::Middleware::Response::Logger, config.logger if config.logger # request builder.use ZaloAPI::Middleware::Request::UrlBasedAccessToken, config.access_token builder.use ZaloAPI::Middleware::Request::EncodeJson builder.use ZendeskAPI::Middleware::Request::Retry, :logger => config.logger if config.retry builder.adapter(Faraday.default_adapter) end end
connection()
click to toggle source
Creates a connection if there is none, otherwise returns the existing connection.
@return [Faraday::Connection] Faraday connection for the client
# File lib/zalo_api/client.rb, line 30 def connection @connection ||= build_connection return @connection end
set_default_logger()
click to toggle source
# File lib/zalo_api/client.rb, line 60 def set_default_logger if config.logger.nil? || config.logger == true require 'logger' config.logger = Logger.new($stderr) config.logger.level = Logger::WARN end end