class Rack::ServiceApiVersioning::BuildRedirectUriFromEnv

Build redirect URI from data in `env`

Attributes

env[R]

Public Class Methods

call(env) click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 15
def self.call(env)
  new(env).call
end
new(env) click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 25
def initialize(env)
  @env = env
  self
end

Public Instance Methods

call() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 19
def call
  location_uri_from(request_uri).to_s
end

Private Instance Methods

api_version_base_uri() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 34
def api_version_base_uri
  Addressable::URI.parse(api_version_data[:base_url])
end
api_version_data() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 38
def api_version_data
  JSON.parse(env['COMPONENT_API_VERSION_DATA'], symbolize_names: true)
end
location_uri_from(request_uri) click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 42
def location_uri_from(request_uri)
  params = { api_version_base_uri: api_version_base_uri,
             request_uri: request_uri }
  BuildRedirectLocationUri.call params
end
request_uri() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_uri_from_env.rb, line 48
def request_uri
  request_str = Rack::Request.new(env).url
  Addressable::URI.parse(request_str)
end