Class: Moromi::Aws::Sns::Message::Parameter

Inherits:
Object
  • Object
show all
Defined in:
lib/moromi/aws/sns/message/parameter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(apns: nil, gcm: nil) ⇒ Parameter

Returns a new instance of Parameter.

Parameters:



10
11
12
13
# File 'lib/moromi/aws/sns/message/parameter.rb', line 10

def initialize(apns: nil, gcm: nil)
  @apns = apns
  @gcm = gcm
end

Class Method Details

.build_from_hash(hash) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/moromi/aws/sns/message/parameter.rb', line 32

def self.build_from_hash(hash)
  apns_klass = hash.dig(:apns, :name)&.safe_constantize
  apns = apns_klass&.build_from_hash(hash.dig(:apns, :data).deep_symbolize_keys)

  gcm_klass = hash.dig(:gcm, :name)&.safe_constantize
  gcm = gcm_klass&.build_from_hash(hash.dig(:gcm, :data).deep_symbolize_keys)

  new(apns: apns, gcm: gcm)
end

Instance Method Details

#to_hashObject



15
16
17
18
19
20
21
# File 'lib/moromi/aws/sns/message/parameter.rb', line 15

def to_hash
  {
    klass_name: self.class.name,
    apns: {name: @apns&.class&.name, data: @apns&.to_hash},
    gcm: {name: @gcm&.class&.name, data: @gcm&.to_hash}
  }
end

#to_jsonObject



23
24
25
26
27
28
29
30
# File 'lib/moromi/aws/sns/message/parameter.rb', line 23

def to_json
  {
    'default': '',
    'APNS_SANDBOX': @apns&.to_message_json,
    'APNS': @apns&.to_message_json,
    'GCM': @gcm&.to_message_json
  }.compact.to_json
end