class Scim::Kit::V2::Configuration

Represents an application SCIM configuration.

Attributes

http[R]
resource_types[RW]
schemas[RW]
service_provider_configuration[RW]

Public Class Methods

new(http: Scim::Kit::Http.new) { |builder| ... } click to toggle source
# File lib/scim/kit/v2/configuration.rb, line 43
def initialize(http: Scim::Kit::Http.new)
  @http = http
  @resource_types = {}
  @schemas = {}

  yield Builder.new(self) if block_given?
end

Public Instance Methods

load_from(base_url) click to toggle source
# File lib/scim/kit/v2/configuration.rb, line 51
def load_from(base_url)
  base_url = "#{base_url}/"
  uri = URI.join(base_url, 'ServiceProviderConfig')
  json = http.get(uri)

  self.service_provider_configuration = ServiceProviderConfiguration.parse(json, json)

  load_items(base_url, 'Schemas', Schema, schemas)
  load_items(base_url, 'ResourceTypes', ResourceType, resource_types)
end

Private Instance Methods

load_items(base_url, path, type, items) click to toggle source
# File lib/scim/kit/v2/configuration.rb, line 66
def load_items(base_url, path, type, items)
  hashes = http.get(URI.join(base_url, path))
  hashes.each do |hash|
    item = type.from(hash)
    items[item.id] = item
  end
end