Class: SnsSender::Client
- Inherits:
-
Object
- Object
- SnsSender::Client
- Defined in:
- lib/sns_sender/client.rb
Instance Attribute Summary collapse
-
#sns_client ⇒ Object
readonly
Returns the value of attribute sns_client.
Instance Method Summary collapse
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #publish(topic_arn:, message:, message_attributes: {}) ⇒ Object
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/sns_sender/client.rb', line 9 def initialize SnsSender.configuration.validate! @sns_client = Aws::SNS::Client.new( region: SnsSender.configuration.aws_region, credentials: Aws::Credentials.new( SnsSender.configuration.aws_access_key_id, SnsSender.configuration.aws_secret_access_key ) ) end |
Instance Attribute Details
#sns_client ⇒ Object (readonly)
Returns the value of attribute sns_client.
7 8 9 |
# File 'lib/sns_sender/client.rb', line 7 def sns_client @sns_client end |
Instance Method Details
#publish(topic_arn:, message:, message_attributes: {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sns_sender/client.rb', line 20 def publish(topic_arn:, message:, message_attributes: {}) raise ArgumentError, "topic_arn is required" if topic_arn.nil? || topic_arn.empty? raise ArgumentError, "message is required" if .nil? || .empty? = .is_a?(String) ? : .to_json formatted_attributes = () begin response = sns_client.publish( topic_arn: topic_arn, message: , message_attributes: formatted_attributes ) { success: true, message_id: response. } rescue Aws::SNS::Errors::ServiceError => e raise PublishError, "Failed to publish message: #{e.message}" end end |