class Clarion::App

Constants

CONTEXT_RACK_ENV_NAME

Public Class Methods

initialize_context(config) click to toggle source
# File lib/clarion/app.rb, line 17
def self.initialize_context(config)
  {
    config: config,
  }
end
rack(config={}) click to toggle source
# File lib/clarion/app.rb, line 23
def self.rack(config={})
  klass = App

  context = initialize_context(config)
  lambda { |env|
    env[CONTEXT_RACK_ENV_NAME] = context
    klass.call(env)
  }
end

Public Instance Methods

base_url() click to toggle source
# File lib/clarion/app.rb, line 58
def base_url
  conf.app_id || request.base_url
end
conf() click to toggle source
# File lib/clarion/app.rb, line 54
def conf
  context[:config]
end
context() click to toggle source
# File lib/clarion/app.rb, line 50
def context
  request.env[CONTEXT_RACK_ENV_NAME]
end
counter() click to toggle source
# File lib/clarion/app.rb, line 70
def counter
  conf.counter
end
data() click to toggle source
# File lib/clarion/app.rb, line 41
def data
  begin
    @data = JSON.parse(request.body.tap(&:rewind).read, symbolize_names: true)
  rescue JSON::ParserError
    content_type :json
    halt 400, '{"error": "invalid_payload"}'
  end
end
legacy_app_id() click to toggle source
# File lib/clarion/app.rb, line 66
def legacy_app_id
  base_url
end
render_authn_json(authn) click to toggle source
# File lib/clarion/app.rb, line 78
def render_authn_json(authn)
  {
    authn: authn.as_json.merge(
      url: "#{base_url}/api/authn/#{authn.id}",
      html_url: "#{base_url}/authn/#{authn.id}",
    )
  }.to_json
end
rp_id() click to toggle source
# File lib/clarion/app.rb, line 62
def rp_id
  conf.rp_id || request.host
end
store() click to toggle source
# File lib/clarion/app.rb, line 74
def store
  conf.store
end