Module: Bankid

Defined in:
lib/bankid.rb,
lib/bankid/client.rb,
lib/bankid/result.rb,
lib/bankid/secret.rb,
lib/bankid/railtie.rb,
lib/bankid/version.rb

Defined Under Namespace

Classes: CachedSecretNotFoundError, Client, Device, EnvironmentNotSetError, MissingCertificatesError, NoSuchOrderError, Railtie, Result, Secret, User

Constant Summary collapse

DEVELOPMENT_URL =
"https://appapi2.test.bankid.com/rp/v6.0"
PRODUCTION_URL =
"https://appapi2.bankid.com/rp/v6.0"
VERSION =
"3.1.0"

Class Method Summary collapse

Class Method Details

.cancel(id) ⇒ Object



28
29
30
# File 'lib/bankid.rb', line 28

def self.cancel(id)
  Client.new.cancel(id:)
end

.collect(id) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/bankid.rb', line 32

def self.collect(id)
  cached_secret = Rails.cache.read(id)
  raise CachedSecretNotFoundError if cached_secret.nil?

  result_json = Client.new.collect(order_ref: id)
  raise NoSuchOrderError if result_json["errorCode"].present?

  [Secret.new(**cached_secret.symbolize_keys), Result.new(result_json:)]
end

.config ⇒ Object



20
21
22
# File 'lib/bankid.rb', line 20

def self.config
  @@config
end

.config=(config) ⇒ Object



24
25
26
# File 'lib/bankid.rb', line 24

def self.config=(config)
  @@config = config
end

.generate_authentication(ip:, visible_data: nil) ⇒ Object



42
43
44
45
46
# File 'lib/bankid.rb', line 42

def self.generate_authentication(ip:, visible_data: nil)
  response = Client.new.auth(ip:, visible_data:).merge(created_at: Time.zone.now)
  Rails.cache.write(response["orderRef"], response, expires_in: 1.minute)
  response["orderRef"]
end

.generate_signature(ip:, visible_data: nil) ⇒ Object



48
49
50
51
52
# File 'lib/bankid.rb', line 48

def self.generate_signature(ip:, visible_data: nil)
  response = Client.new.sign(ip:, visible_data:).merge(created_at: Time.zone.now)
  Rails.cache.write(response["orderRef"], response, expires_in: 1.minute)
  response["orderRef"]
end

.translated_hint_code(hint_code) ⇒ Object



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

def self.translated_hint_code(hint_code)
  I18n.translate("bankid.hints.#{hint_code}")
end