Class: JPush::Push::PushPayload

Inherits:
Object
  • Object
show all
Defined in:
lib/jpush/push/push_payload.rb

Constant Summary collapse

MAX_SMS_CONTENT_SIZE =
480
MAX_SMS_DELAY_TIME =

24 * 60 * 60 (second)

86400

Instance Method Summary collapse

Constructor Details

#initialize(platform:, audience:, notification: nil, message: nil) ⇒ PushPayload

Returns a new instance of PushPayload.



11
12
13
14
15
16
# File 'lib/jpush/push/push_payload.rb', line 11

def initialize(platform: , audience: , notification: nil, message: nil)
  @platform = 'all' == platform ? JPush::Config.settings[:valid_platform] : build_platform(platform)
  @audience = 'all' == audience ? 'all' : build_audience(audience)
  @notification = build_notification(notification) unless notification.nil?
  @message = build_message(message) unless message.nil?
end

Instance Method Details

#set_message(msg_content, title: nil, content_type: nil, extras: nil) ⇒ Object



18
19
20
21
# File 'lib/jpush/push/push_payload.rb', line 18

def set_message(msg_content, title: nil, content_type: nil, extras: nil)
  @message = build_message(msg_content, title, content_type, extras)
  self
end

#set_options(opts) ⇒ Object



28
29
30
31
# File 'lib/jpush/push/push_payload.rb', line 28

def set_options(opts)
  @options = opts
  self
end

#set_sms_message(content, delay_time = 0) ⇒ Object



23
24
25
26
# File 'lib/jpush/push/push_payload.rb', line 23

def set_sms_message(content, delay_time = 0)
  @sms_message = build_sms_message(content, delay_time)
  self
end

#to_hashObject



33
34
35
36
37
38
39
40
41
42
# File 'lib/jpush/push/push_payload.rb', line 33

def to_hash
  @push_payload =  {
    platform: @platform,
    audience: @audience,
    notification: @notification,
    message: @message,
    sms_message: @sms_message,
    options: { apns_production: false }.merge(@options.nil? ? {} : @options)
  }.select { |_, value| !value.nil? }
end