Class: DispatchRider::NotificationServices::AwsSns

Inherits:
Base
  • Object
show all
Defined in:
lib/dispatch-rider/notification_services/aws_sns.rb

Instance Attribute Summary

Attributes inherited from Base

#channel_registrar, #notifier

Instance Method Summary collapse

Methods inherited from Base

#channels, #initialize, #publish

Constructor Details

This class inherits a constructor from DispatchRider::NotificationServices::Base

Instance Method Details

#channel(name) ⇒ Object

not really happy with this, but the notification service registrar system is way too rigid to do this cleaner since you only can have one notifier for the whole service, but you need to create a new one for each region



26
27
28
29
30
# File 'lib/dispatch-rider/notification_services/aws_sns.rb', line 26

def channel(name)
  arn = fetch(name)
  # in v1, the Topic object was fetched from API, in v3 it's basically just an arn wrapper
  Aws::SNS::Topic.new(arn)
end

#channel_registrar_builderObject



16
17
18
# File 'lib/dispatch-rider/notification_services/aws_sns.rb', line 16

def channel_registrar_builder
  Registrars::SnsChannel
end

#notifier_builderObject



12
13
14
# File 'lib/dispatch-rider/notification_services/aws_sns.rb', line 12

def notifier_builder
  Aws::SNS::Client
end

#publish_to_channel(channel, message:) ⇒ Object



20
21
22
# File 'lib/dispatch-rider/notification_services/aws_sns.rb', line 20

def publish_to_channel(channel, message:)
  Retriable.retriable(tries: 10, on: Aws::Errors::MissingCredentialsError) { super }
end