class Shanon::AbstractClient
Attributes
conn[R]
secrets[R]
token[R]
Public Class Methods
new()
click to toggle source
# File lib/shanon/abstract_client.rb, line 8 def initialize @secrets = get_secrets @conn = build_client @token = get_token end
Private Instance Methods
build_client()
click to toggle source
# File lib/shanon/abstract_client.rb, line 25 def build_client fqdn = secrets[:fqdn] host = %(https://#{fqdn}) ::Faraday.new(url: host) do |builder| builder.use Faraday::Request::UrlEncoded builder.use Faraday::Response::Logger builder.use Faraday::Adapter::NetHttp end end
get_secrets()
click to toggle source
# File lib/shanon/abstract_client.rb, line 16 def get_secrets { api_key: Shanon.config.api_key, fqdn: Shanon.config.fqdn, password: Shanon.config.password, secret_key: Shanon.config.secret_key } end
get_signature(base)
click to toggle source
# File lib/shanon/abstract_client.rb, line 51 def get_signature(base) ::OpenSSL::HMAC.hexdigest('sha1', secrets[:secret_key], base) end
get_token()
click to toggle source
# File lib/shanon/abstract_client.rb, line 36 def get_token # override by Authenticatable end
params_with_signature(opts={})
click to toggle source
# File lib/shanon/abstract_client.rb, line 40 def params_with_signature(opts={}) seeds = { api_key: secrets[:api_key] }.merge!(opts) seeds.merge!(token: token) if token base = seeds.sort.reduce('') do |s, (k, v)| s.concat %(#{k}#{v}) end seeds.merge!({ api_sig: get_signature(base) }) end