class Announce::Adapters::ShoryukenAdapter::Topic

Public Instance Methods

arn() click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 105
def arn
  account_id = Shoryuken::Client.account_id
  region = sns.config[:region]
  "arn:aws:sns:#{region}:#{account_id}:#{name}"
end
create() click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 86
def create
  sns.create_topic(name: name)[:topic_arn]
end
publish(message, options = {}) click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 82
def publish(message, options = {})
  Shoryuken::Client.topics(name).send_message(message, options)
end
sns() click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 111
def sns
  Shoryuken::Client.sns
end
subscribe(queue) click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 90
def subscribe(queue)
  subscription_arn = sns.subscribe(
    topic_arn: arn,
    protocol: 'sqs',
    endpoint: queue.arn
  )[:subscription_arn]

  sns.set_subscription_attributes(
    subscription_arn: subscription_arn,
    attribute_name: 'RawMessageDelivery',
    attribute_value: 'true'
  )
  subscription_arn
end