Class: NubankSdk::ApiRoutes

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

Constant Summary collapse

DISCOVERY_URI =
'https://prod-s0-webapp-proxy.nubank.com.br'.freeze
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)


18
19
20
21
# File 'lib/nubank_sdk/api_routes.rb', line 18

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

Instance Method Details

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

Add new entrypoint to url discovery map

Parameters:

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

Returns:

  • (Hash)


50
51
52
53
54
55
# File 'lib/nubank_sdk/api_routes.rb', line 50

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

  @url_discovery_map[path] = path_map
end

#entrypoint(path: :default, entrypoint:, 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)


31
32
33
34
35
36
37
38
39
40
# File 'lib/nubank_sdk/api_routes.rb', line 31

def entrypoint(path: :default, entrypoint:, 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