class DispatchRider::NotificationServices::AwsSns

Public Instance Methods

channel(name) click to toggle source

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

# 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_builder() click to toggle source
# File lib/dispatch-rider/notification_services/aws_sns.rb, line 16
def channel_registrar_builder
  Registrars::SnsChannel
end
notifier_builder() click to toggle source
# File lib/dispatch-rider/notification_services/aws_sns.rb, line 12
def notifier_builder
  Aws::SNS::Client
end
publish_to_channel(channel, message:) click to toggle source
Calls superclass method
# 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