class Announce::Adapters::ShoryukenAdapter::Topic

Public Instance Methods

arn() click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 127
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 97
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 93
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 133
def sns
  Shoryuken::Client.sns
end
subscribe(queue) click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 113
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
verify() click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 101
def verify
  Announce.logger.warn("Verify SNS Topic: #{arn}")
end
verify_subscription(queue) click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 105
def verify_subscription(queue)
  Announce.logger.warn(
    "Verify Subscription:\n"\
    "  from SNS Topic: #{arn}\n"\
    "  to SQS Queue: #{queue.arn}"
  )
end