Class: AWS::SnsMessage
- Inherits:
-
Object
- Object
- AWS::SnsMessage
- Defined in:
- lib/aws/sns_message.rb
Instance Attribute Summary collapse
-
#origin ⇒ Object
Returns the value of attribute origin.
-
#raw ⇒ Object
Returns the value of attribute raw.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #authentic? ⇒ Boolean
-
#initialize(sns) ⇒ SnsMessage
constructor
A new instance of SnsMessage.
- #message ⇒ Object
- #message_id ⇒ Object
- #parse_from(json) ⇒ Object
- #signature ⇒ Object
- #signature_version ⇒ Object
- #signing_cert_url ⇒ Object
- #subject ⇒ Object
- #subscribe_url ⇒ Object
- #timestamp ⇒ Object
- #token ⇒ Object
- #topic_arn ⇒ Object
- #type ⇒ Object
- #unsubscribe_url ⇒ Object
Constructor Details
#initialize(sns) ⇒ SnsMessage
Returns a new instance of SnsMessage.
29 30 31 32 33 34 35 36 |
# File 'lib/aws/sns_message.rb', line 29 def initialize sns if sns.is_a? String @raw = parse_from sns else @raw = sns end @origin = :sns end |
Instance Attribute Details
#origin ⇒ Object
Returns the value of attribute origin.
27 28 29 |
# File 'lib/aws/sns_message.rb', line 27 def origin @origin end |
#raw ⇒ Object
Returns the value of attribute raw.
27 28 29 |
# File 'lib/aws/sns_message.rb', line 27 def raw @raw end |
Instance Method Details
#[](key) ⇒ Object
38 39 40 |
# File 'lib/aws/sns_message.rb', line 38 def [] key @raw[key] end |
#authentic? ⇒ Boolean
42 43 44 45 46 47 48 49 50 |
# File 'lib/aws/sns_message.rb', line 42 def authentic? begin decoded_from_base64 = decode signature public_key = get_public_key_from signing_cert_url public_key.verify OpenSSL::Digest::SHA1.new, decoded_from_base64, canonical_string rescue MessageWasNotAuthenticError false end end |
#message ⇒ Object
76 77 78 |
# File 'lib/aws/sns_message.rb', line 76 def @raw['Message'] end |
#message_id ⇒ Object
64 65 66 |
# File 'lib/aws/sns_message.rb', line 64 def @raw['MessageId'] end |
#parse_from(json) ⇒ Object
108 109 110 |
# File 'lib/aws/sns_message.rb', line 108 def parse_from json JSON.parse json end |
#signature ⇒ Object
84 85 86 |
# File 'lib/aws/sns_message.rb', line 84 def signature @raw['Signature'] end |
#signature_version ⇒ Object
88 89 90 |
# File 'lib/aws/sns_message.rb', line 88 def signature_version @raw['SignatureVersion'] end |
#signing_cert_url ⇒ Object
92 93 94 |
# File 'lib/aws/sns_message.rb', line 92 def signing_cert_url @raw['SigningCertURL'] end |
#subject ⇒ Object
72 73 74 |
# File 'lib/aws/sns_message.rb', line 72 def subject @raw['Subject'] end |
#subscribe_url ⇒ Object
100 101 102 |
# File 'lib/aws/sns_message.rb', line 100 def subscribe_url @raw['SubscribeURL'] end |
#timestamp ⇒ Object
80 81 82 |
# File 'lib/aws/sns_message.rb', line 80 def @raw['Timestamp'] end |
#token ⇒ Object
104 105 106 |
# File 'lib/aws/sns_message.rb', line 104 def token @raw['Token'] end |
#topic_arn ⇒ Object
68 69 70 |
# File 'lib/aws/sns_message.rb', line 68 def topic_arn @raw['TopicArn'] end |
#type ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/aws/sns_message.rb', line 52 def type case when @raw['Type'] =~ /SubscriptionConfirmation/i then :SubscriptionConfirmation when @raw['Type'] =~ /Notification/i then :Notification when @raw['Type'] =~ /UnsubscribeConfirmation/i then :UnsubscribeConfirmation else :unknown end end |
#unsubscribe_url ⇒ Object
96 97 98 |
# File 'lib/aws/sns_message.rb', line 96 def unsubscribe_url @raw['UnsubscribeURL'] end |