Class: NubankSdk::ApiRoutes

Inherits:
Object
  • Object
show all
Defined in:
lib/nubank_sdk/api_routes.rb

Overview

Controller for the ApiRoutes class

Constant Summary collapse

DISCOVERY_URI =
'https://prod-s0-webapp-proxy.nubank.com.br'
PROXY_PATHS =
{
  default: '/api/discovery',
  app: '/api/app/discovery',
  ssl: ''
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(url_discovery_map: {}, connection_adapter: nil) ⇒ ApiRoutes

Controller for the ApiRoutes class

Parameters:

  • url_discovery_map (Hash) (defaults to: {})
  • connection_adapter ([Symbol, Faraday::Adapter::Test::Stubs]) (defaults to: nil)


23
24
25
26
# File 'lib/nubank_sdk/api_routes.rb', line 23

def initialize(url_discovery_map: {}, connection_adapter: nil)
  @url_discovery_map = url_discovery_map
  @connection_adapter = connection_adapter
end

Instance Method Details

#add_entrypoint(entrypoint:, url:, path: :default) ⇒ Hash

Add new entrypoint to url discovery map

Parameters:

  • path (Symbol) (defaults to: :default)
  • entrypoint (Symbol)
  • url (String)

Returns:

  • (Hash)


55
56
57
58
59
60
# File 'lib/nubank_sdk/api_routes.rb', line 55

def add_entrypoint(entrypoint:, url:, path: :default)
  path_map = @url_discovery_map[path] || {}
  path_map[entrypoint] = url

  @url_discovery_map[path] = path_map
end

#entrypoint(entrypoint:, path: :default, type: :full) ⇒ String, Array

Return the url for a given path and entrypoint

Parameters:

  • path (Symbol) (defaults to: :default)
  • entrypoint (Symbol)
  • type, (Symbol)

    :splitted or :full

Returns:

  • (String, Array)


36
37
38
39
40
41
42
43
44
45
# File 'lib/nubank_sdk/api_routes.rb', line 36

def entrypoint(entrypoint:, path: :default, type: :full)
  discovery(path) if @url_discovery_map[path].nil?

  url = @url_discovery_map[path][entrypoint]

  return url if type == :full

  url_splitted = url.split('/api')
  [url_splitted.first, "/api#{url_splitted.last}"]
end