class Eco::API::Organization::LoginProviders
Public Class Methods
new(login_providers = [], klass: Ecoportal::API::Internal::LoginProvider, factory: nil)
click to toggle source
Calls superclass method
Eco::Language::Models::Collection::new
# File lib/eco/api/organization/login_providers.rb, line 8 def initialize(login_providers = [], klass: Ecoportal::API::Internal::LoginProvider, factory: nil) @klass = Ecoportal::API::Internal::LoginProvider @caches_init = false super(login_providers, klass: @klass) init_caches end
Public Instance Methods
active()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 19 def active select {|lp| lp != "disabled"} end
any_optional?()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 23 def any_optional? active.any? do |lp| lp.enabled_for = "some" end end
ids()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 29 def ids @by_id.keys end
login_provider(id_name)
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 59 def login_provider(id_name) @by_id.fetch(login_provider_id(id_name), nil) end
names()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 33 def names @by_name.keys end
password_id()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 15 def password_id to_id("password") end
to_id(name)
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 37 def to_id(name) case name when Enumerable name.map do |n| login_provider(n)&.id end.compact else login_provider(name)&.id end end
to_name(id)
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 48 def to_name(id) case name when Enumerable id.map do |i| login_provider(i)&.name end.compact else login_provider(id)&.name end end
Private Instance Methods
init_caches()
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 73 def init_caches return if @caches_init @by_id = self.map { |pg| [pg.id, pg] }.to_h @by_name = self.map { |pg| [pg.name&.downcase, pg] }.to_h @caches_init = true end
login_provider_id(id_name)
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 69 def login_provider_id(id_name) (@by_name[id_name&.downcase] || @by_id[id_name])&.id end
login_provider_name(id_name)
click to toggle source
# File lib/eco/api/organization/login_providers.rb, line 65 def login_provider_name(id_name) (@by_id[id_name] || @by_name[id_name&.downcase])&.name&.downcase end