class AusPostAPI::Endpoint

Public Class Methods

new(attributes, config, uri_handler = AusPostAPI::UriHandler) click to toggle source
# File lib/aus_post_api/endpoint.rb, line 18
def initialize(attributes, config, uri_handler = AusPostAPI::UriHandler)
  @config      = config
  @attributes  = attributes
  @uri_handler = uri_handler

  set_attributes
end

Public Instance Methods

execute() click to toggle source
# File lib/aus_post_api/endpoint.rb, line 26
def execute
  @uri_handler.call(uri, headers)
end

Private Instance Methods

headers() click to toggle source
# File lib/aus_post_api/endpoint.rb, line 36
def headers
  raise ImplementationError.new("headers")
end
set_attributes() click to toggle source
# File lib/aus_post_api/endpoint.rb, line 40
def set_attributes
  required_param = -> (attr) { raise RequiredArgumentError.new(attr) }

  required_attributes.each do |attr|
    self.send("#{attr}=", @attributes.fetch(attr, &required_param))
  end

  optional_attributes.each do |attr|
    if @attributes.has_key?(attr)
      self.send("#{attr}=", @attributes.fetch(attr))
    end
  end
end
uri() click to toggle source
# File lib/aus_post_api/endpoint.rb, line 32
def uri
  raise ImplementationError.new("uri")
end