class Eventboss::SnsClient
Attributes
configuration[R]
Public Class Methods
new(configuration)
click to toggle source
# File lib/eventboss/sns_client.rb, line 8 def initialize(configuration) @configuration = configuration end
Public Instance Methods
create_subscription(topic_arn:, queue_arn:)
click to toggle source
# File lib/eventboss/sns_client.rb, line 20 def create_subscription(topic_arn:, queue_arn:) subscription = backend.subscribe( topic_arn: topic_arn, endpoint: queue_arn, protocol: 'sqs' ) set_raw_message_delivery(subscription) end
create_topic(name:)
click to toggle source
# File lib/eventboss/sns_client.rb, line 16 def create_topic(name:) backend.create_topic(name: name) end
publish(payload)
click to toggle source
# File lib/eventboss/sns_client.rb, line 12 def publish(payload) backend.publish(payload) end
Private Instance Methods
backend()
click to toggle source
# File lib/eventboss/sns_client.rb, line 41 def backend if configured? options = { region: configuration.eventboss_region, credentials: ::Aws::Credentials.new( configuration.aws_access_key_id, configuration.aws_secret_access_key ) } if configuration.aws_sns_endpoint options[:endpoint] = configuration.aws_sns_endpoint end Aws::SNS::Client.new(options) elsif configuration.raise_on_missing_configuration raise NotConfigured, 'Eventboss is not configured.' else Mock.new end end
configured?()
click to toggle source
# File lib/eventboss/sns_client.rb, line 62 def configured? !!( configuration.eventboss_region && configuration.eventboss_account_id && configuration.eventboss_app_name ) end
set_raw_message_delivery(subscription)
click to toggle source
# File lib/eventboss/sns_client.rb, line 33 def set_raw_message_delivery(subscription) backend.set_subscription_attributes( subscription_arn: subscription.subscription_arn, attribute_name: 'RawMessageDelivery', attribute_value: 'true' ) end