Class: StandardId::Events::Subscribers::PasswordlessDeliverySubscriber

Inherits:
Base
  • Object
show all
Defined in:
lib/standard_id/events/subscribers/passwordless_delivery_subscriber.rb

Instance Method Summary collapse

Methods inherited from Base

attach, attached?, detach, #handle, subscribe_to, subscribe_to_pattern, subscribed_events, subscription_pattern

Instance Method Details

#call(event) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/standard_id/events/subscribers/passwordless_delivery_subscriber.rb', line 7

def call(event)
  return unless built_in_delivery?
  return unless event[:channel] == "email"

  identifier = event[:identifier]
  code = event[:code_challenge]&.code

  return if identifier.blank? || code.blank?

  StandardId::PasswordlessMailer.with(
    email: identifier,
    otp_code: code
  ).otp_email.deliver_later
end

#handle_error(error, event) ⇒ Object



22
23
24
25
26
27
# File 'lib/standard_id/events/subscribers/passwordless_delivery_subscriber.rb', line 22

def handle_error(error, event)
  StandardId.logger.error(
    "[StandardId::PasswordlessDelivery] Failed to deliver OTP email " \
    "for #{event[:identifier]}: #{error.message}"
  )
end