Class: Announce::Adapters::ShoryukenAdapter::Topic
Instance Attribute Summary
#action, #options, #subject
Instance Method Summary
collapse
app, delimiter, #initialize, #name, name_for, namespace, prefix
Instance Method Details
#arn ⇒ Object
127
128
129
130
131
|
# 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 ⇒ Object
97
98
99
|
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 97
def create
sns.create_topic(name: name)[:topic_arn]
end
|
#publish(message, options = {}) ⇒ Object
93
94
95
|
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 93
def publish(message, options = {})
Shoryuken::Client.topics(name).send_message(message, options)
end
|
#sns ⇒ Object
133
134
135
|
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 133
def sns
Shoryuken::Client.sns
end
|
#subscribe(queue) ⇒ Object
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# 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 ⇒ Object
101
102
103
|
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 101
def verify
Announce.logger.warn("Verify SNS Topic: #{arn}")
end
|
#verify_subscription(queue) ⇒ Object
105
106
107
108
109
110
111
|
# 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
|