Class: BenefitsClaims::Configuration

Inherits:
Common::Client::Configuration::REST show all
Defined in:
lib/lighthouse/benefits_claims/configuration.rb

Overview

HTTP client configuration for the Service, sets the base path, the base request headers, and a service name for breakers and metrics.

Constant Summary collapse

API_SCOPES =
%w[system/claim.read system/claim.write].freeze
CLAIMS_PATH =
'services/claims/v2/veterans'
TOKEN_PATH =
'oauth2/claims/system/v1/token'

Instance Attribute Summary

Attributes inherited from Common::Client::Configuration::Base

#base_request_headers, #open_timeout, #read_timeout, #request_types, #user_agent

Instance Method Summary collapse

Methods inherited from Common::Client::Configuration::Base

#breakers_error_threshold, #breakers_exception_handler, #breakers_matcher, #breakers_service, #create_new_breakers_service, #request_options, #service_exception

Instance Method Details

#base_api_path(host = nil) ⇒ Object



35
36
37
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 35

def base_api_path(host = nil)
  "#{base_path(host)}/#{CLAIMS_PATH}"
end

#base_path(host = nil) ⇒ String

Returns Base path for veteran_verification URLs.

Parameters:

  • host (String) (defaults to: nil)

    (optional): a configurable base url host if the client application does not want to use the default

Returns:

  • (String)

    Base path for veteran_verification URLs.



31
32
33
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 31

def base_path(host = nil)
  (host || settings.host).to_s
end

#connectionFaraday::Connection

Creates a Faraday connection with parsing json and breakers functionality.

Returns:

  • (Faraday::Connection)

    a Faraday connection instance.



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 77

def connection
  @conn ||= Faraday.new(base_api_path, headers: base_request_headers, request: request_options) do |faraday|
    faraday.use      :breakers
    faraday.use      Faraday::Response::RaiseError

    faraday.request :multipart
    faraday.request :json

    faraday.response :betamocks if use_mocks?
    faraday.response :json, content_type: /\bjson/
    faraday.adapter Faraday.default_adapter
  end
end

#get(path, lighthouse_client_id = nil, lighthouse_rsa_key_path = nil, options = {}) ⇒ Faraday::Response

Returns response from GET request.

Returns:

  • (Faraday::Response)

    response from GET request



49
50
51
52
53
54
55
56
57
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 49

def get(path, lighthouse_client_id = nil, lighthouse_rsa_key_path = nil, options = {})
  connection.get(path, options[:params], { Authorization: "Bearer #{
    access_token(
      lighthouse_client_id,
      lighthouse_rsa_key_path,
      options
    )
  }" })
end

#post(path, body, lighthouse_client_id = nil, lighthouse_rsa_key_path = nil, options = {}) ⇒ Faraday::Response

Returns response from POST request.

Returns:

  • (Faraday::Response)

    response from POST request



62
63
64
65
66
67
68
69
70
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 62

def post(path, body, lighthouse_client_id = nil, lighthouse_rsa_key_path = nil, options = {})
  connection.post(path, body, { Authorization: "Bearer #{
    access_token(
      lighthouse_client_id,
      lighthouse_rsa_key_path,
      options
    )
  }" })
end

#service_nameString

Returns Service name to use in breakers and metrics.

Returns:

  • (String)

    Service name to use in breakers and metrics.



42
43
44
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 42

def service_name
  'BenefitsClaims'
end

#settingsConfig::Options

Returns Settings for benefits_claims API.

Returns:

  • (Config::Options)

    Settings for benefits_claims API.



22
23
24
# File 'lib/lighthouse/benefits_claims/configuration.rb', line 22

def settings
  Settings.lighthouse.benefits_claims
end