class ExperianAddressValidation::Operation

Base class for API operations

Constants

DEFAULT_HEADERS

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/experian_address_validation/operation.rb, line 10
def initialize(options = {})
  @options = options
end

Public Instance Methods

execute() click to toggle source
# File lib/experian_address_validation/operation.rb, line 14
def execute
  http_client.headers["Auth-Token"] = auth_token

  response = http_client.run_request(http_method, endpoint, json_payload, headers)

  return json_response(response) if response.success?

  raise ExperianAddressValidation::Errors::ResponseError.new(body: response.body, status: response.status)
end
http_method() click to toggle source
# File lib/experian_address_validation/operation.rb, line 24
def http_method
  :post
end

Private Instance Methods

auth_token() click to toggle source
# File lib/experian_address_validation/operation.rb, line 56
def auth_token
  config.auth_token
end
base_url() click to toggle source
# File lib/experian_address_validation/operation.rb, line 48
def base_url
  config.base_url
end
config() click to toggle source
# File lib/experian_address_validation/operation.rb, line 60
def config
  Client.config
end
default_iso_code() click to toggle source
# File lib/experian_address_validation/operation.rb, line 64
def default_iso_code
  config.iso_code
end
endpoint() click to toggle source
# File lib/experian_address_validation/operation.rb, line 68
def endpoint; end
headers() click to toggle source
# File lib/experian_address_validation/operation.rb, line 52
def headers
  DEFAULT_HEADERS.merge(options.fetch(:headers, {}))
end
http_client() click to toggle source
# File lib/experian_address_validation/operation.rb, line 32
def http_client
  @http_client ||= Faraday.new
end
json_payload() click to toggle source
# File lib/experian_address_validation/operation.rb, line 40
def json_payload
  @json_payload ||= JSON.generate(payload)
end
json_response(response) click to toggle source
# File lib/experian_address_validation/operation.rb, line 36
def json_response(response)
  JSON.parse(response.body, symbolize_names: true)
end
payload() click to toggle source
# File lib/experian_address_validation/operation.rb, line 44
def payload
  options[:payload]
end