class Zaikio::OAuthClient::ClientConfiguration

Attributes

client_id[RW]
client_name[R]
client_secret[RW]
default_scopes[RW]
org_config[R]

Public Class Methods

new(client_name) click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 7
def initialize(client_name)
  @default_scopes = []
  @client_name = client_name
end

Public Instance Methods

default_scopes_for(type = "Person") click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 36
def default_scopes_for(type = "Person")
  type == "Organization" ? org_config.default_scopes : default_scopes
end
oauth_client() click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 17
def oauth_client
  @oauth_client ||= OAuth2::Client.new(
    client_id,
    client_secret,
    authorize_url: "oauth/authorize",
    token_url: "oauth/access_token",
    connection_opts: { headers: { Accept: "application/json" } },
    site: Zaikio::OAuthClient.configuration.host
  )

  @oauth_client.options[:auth_scheme] = Zaikio::OAuthClient.oauth_scheme

  @oauth_client
end
register_organization_connection() { |org_config| ... } click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 12
def register_organization_connection
  @org_config ||= OrganizationConnection.new
  yield(@org_config)
end
scopes_for_auth(_id = nil) click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 32
def scopes_for_auth(_id = nil)
  default_scopes
end
token_by_client_credentials(bearer_id: nil, bearer_type: "Person", scopes: []) click to toggle source
# File lib/zaikio/oauth_client/client_configuration.rb, line 40
def token_by_client_credentials(bearer_id: nil, bearer_type: "Person", scopes: [])
  plain_scopes = Zaikio::OAuthClient.get_plain_scopes(scopes)
  scopes_with_prefix = plain_scopes.map do |scope|
    "#{bearer_type[0..2]}/#{bearer_id}.#{scope}"
  end

  Zaikio::OAuthClient.with_oauth_scheme(:basic_auth) do
    oauth_client.client_credentials.get_token(scope: scopes_with_prefix.join(","))
  end
end