class Totvs::PasswordVault::Connection
Attributes
@!attribute [w] consumer_key
@return [String]
@!attribute [w] consumer_secret
@return [String]
@!attribute [w] vault_access_token
@return [String]
@!attribute [w] vault_access_token_secret
@return [String]
@!attribute [w] vault_base_url
@return [String]
Public Instance Methods
Returns the oauth access token @return [OAuth::AccessToken]
# File lib/totvs/password_vault/connection.rb, line 56 def access_token @access_token ||= OAuth::AccessToken.new( consumer, vault_access_token, vault_access_token_secret ) end
Returns the oauth consumer @return [OAuth::Consumer]
# File lib/totvs/password_vault/connection.rb, line 46 def consumer @consumer ||= OAuth::Consumer.new( consumer_key, consumer_secret, site: vault_base_url ) end
@return [String]
# File lib/totvs/password_vault/connection.rb, line 138 def consumer_key @consumer_key ||= ENV["VAULT_CONSUMER_KEY"] end
@return [String]
# File lib/totvs/password_vault/connection.rb, line 143 def consumer_secret @consumer_secret ||= ENV["VAULT_CONSUMER_SECRET"] end
@return [Response] response @raise [RequestFailure] if the request was not a success @raise [TimeoutError]
# File lib/totvs/password_vault/connection.rb, line 120 def delete(path:, headers: {}) response = make_request(:delete, path, headers) validate_success! response wrap_response response end
@return [Response] response @raise [RequestFailure] if the request was not a success @raise [TimeoutError]
# File lib/totvs/password_vault/connection.rb, line 90 def get(path:, headers: {}) response = make_request(:get, path, headers) validate_success! response wrap_response response end
Makes a http request
@param http_method [Symbol] @param path [String] @param args […]
@return [Net::HTTPResponse]
@raise [TimeoutError]
# File lib/totvs/password_vault/connection.rb, line 79 def make_request(http_method, path, *args) validate_environment_variables! requester.request http_method, path, *args rescue Timeout::Error => e raise TimeoutError, "#{http_method.to_s.upcase}: #{path}. #{e}" end
@return [Response] response @raise [RequestFailure] if the request was not a success @raise [TimeoutError]
# File lib/totvs/password_vault/connection.rb, line 100 def post(path:, body: nil, headers: {}) response = make_request(:post, path, body, headers) validate_success! response wrap_response response end
@return [Response] response @raise [RequestFailure] if the request was not a success @raise [TimeoutError]
# File lib/totvs/password_vault/connection.rb, line 110 def put(path:, body: nil, headers: {}) response = make_request(:put, path, body, headers) validate_success! response wrap_response response end
Alias access token @return [OAuth::AccessToken]
# File lib/totvs/password_vault/connection.rb, line 66 def requester access_token end
# File lib/totvs/password_vault/connection.rb, line 127 def required_environment_variables %w( VAULT_CONSUMER_KEY VAULT_CONSUMER_SECRET VAULT_BASE_URL VAULT_ACCESS_TOKEN VAULT_ACCESS_TOKEN_SECRET ) end
@return [String]
# File lib/totvs/password_vault/connection.rb, line 153 def vault_access_token @vault_access_token ||= ENV["VAULT_ACCESS_TOKEN"] end
@return [String]
# File lib/totvs/password_vault/connection.rb, line 158 def vault_access_token_secret @vault_access_token_secret ||= ENV["VAULT_ACCESS_TOKEN_SECRET"] end
@return [String]
# File lib/totvs/password_vault/connection.rb, line 148 def vault_base_url @vault_base_url ||= ENV["VAULT_BASE_URL"] end
Wraps the response to a Response
object @return [Response]
# File lib/totvs/password_vault/connection.rb, line 164 def wrap_response(response) Response.new status_code: response.code.to_i, body: response.body, content_type: response.content_type end
Protected Instance Methods
validates presence of environment variables
# File lib/totvs/password_vault/connection.rb, line 173 def validate_environment_variables! required_environment_variables.each do |variable| fail EnvironmentVariableError, "Missing environment variable: #{variable}" unless ENV[variable] end end
# File lib/totvs/password_vault/connection.rb, line 179 def validate_success!(response) if response.is_a? Net::HTTPNotFound fail RegistryNotFoundError elsif response.is_a? Net::HTTPGone fail InactiveRegistryError, "This registry is inactive and can't be updated" elsif response.is_a? Net::HTTPSuccess return response else message = "Response class: #{response}" fail RequestFailure.new message, response: response end end