Class: Sphragis::ProviderFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/sphragis/provider_factory.rb

Defined Under Namespace

Classes: ProviderNotConfiguredError, ProviderNotFoundError

Class Method Summary collapse

Class Method Details

.available_providersArray<Symbol>

Get list of available (configured) providers

Returns:

  • (Array<Symbol>)

    List of provider names



42
43
44
# File 'lib/sphragis/provider_factory.rb', line 42

def self.available_providers
  Sphragis.configuration.available_providers
end

.create(provider_name, config = {}) ⇒ Providers::BaseProvider

Create a signature provider instance

Parameters:

  • provider_name (Symbol, String)

    Provider name (:fortify, :harica, :itsme)

  • config (Hash) (defaults to: {})

    Optional provider-specific configuration

Returns:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sphragis/provider_factory.rb', line 12

def self.create(provider_name, config = {})
  provider_name = provider_name.to_sym
  config_obj = Sphragis.configuration

  case provider_name
  when :fortify
    raise ProviderNotConfiguredError, "Fortify is not configured" unless config_obj.fortify_configured?

    require_relative "providers/fortify_provider"
    Providers::FortifyProvider.new(config)

  when :harica
    raise ProviderNotConfiguredError, "Harica is not configured" unless config_obj.harica_configured?

    require_relative "providers/harica_provider"
    Providers::HaricaProvider.new(harica_config.merge(config))

  when :itsme
    raise ProviderNotConfiguredError, "Itsme is not configured" unless config_obj.itsme_configured?

    require_relative "providers/itsme_provider"
    Providers::ItsmeProvider.new(config.empty? ? itsme_config : config)

  else
    raise ProviderNotFoundError, "Unknown provider: #{provider_name}. Available: #{available_providers.join(', ')}"
  end
end

.create_defaultProviders::BaseProvider

Create default provider instance

Returns:



54
55
56
# File 'lib/sphragis/provider_factory.rb', line 54

def self.create_default
  create(default_provider)
end

.default_providerSymbol

Get default provider

Returns:

  • (Symbol)

    Default provider name



48
49
50
# File 'lib/sphragis/provider_factory.rb', line 48

def self.default_provider
  Sphragis.configuration.default_provider
end

.harica_configObject



60
61
62
63
64
65
66
67
# File 'lib/sphragis/provider_factory.rb', line 60

def self.harica_config
  config = Sphragis.configuration
  {
    username:    config.harica_username,
    password:    config.harica_password,
    environment: config.harica_environment
  }
end

.itsme_configObject



69
70
71
72
73
74
75
76
77
# File 'lib/sphragis/provider_factory.rb', line 69

def self.itsme_config
  config = Sphragis.configuration
  {
    client_id: config.itsme_client_id,
    client_secret: config.itsme_client_secret,
    user_email: config.itsme_user_email,
    environment: config.itsme_environment
  }
end