class AkamaiCCU::Wrapper

Attributes

client[R]
logger[RW]
secret[R]
response_klass[RW]
signer_klass[RW]

Public Class Methods

new(endpoint:, headers: [], signer_klass: Signer, response_klass: Response) click to toggle source
# File lib/akamai_ccu/wrapper.rb, line 35
def initialize(endpoint:, headers: [], signer_klass: Signer, response_klass: Response)
  @endpoint = endpoint
  @signer_klass = signer_klass
  @response_klass = response_klass
  @headers = headers
end
setup(secret, client_klass = Client, logger = Logger.new(nil)) click to toggle source
# File lib/akamai_ccu/wrapper.rb, line 13
def setup(secret, client_klass = Client, logger = Logger.new(nil))
  @secret ||= secret
  @client ||= client_klass.new(host: @secret.host)
  @logger ||= logger
end

Public Instance Methods

call(objects) click to toggle source
# File lib/akamai_ccu/wrapper.rb, line 42
def call(objects)
  response = self.class.client.call(path: @endpoint.path) do |request|
    request.body = { objects: objects }.to_json
    @signer_klass.new(request, self.class.secret.touch, @headers).call!
    self.class.logger.debug { "request: uri=#{request.path}; body=#{request.body}; authorization=#{request["Authorization"]}" }
  end
  self.class.logger.info { "response: inspect=#{response.inspect}; body=#{response.body}" }
  response_klass.new(response.body)
end