class JPush::Push::PushPayload

Attributes

cid[R]

Public Class Methods

new(platform: , audience: , notification: nil, message: nil) click to toggle source
# File lib/jpush/push/push_payload.rb, line 10
def initialize(platform: , audience: , notification: nil, message: nil)
  @platform = 'all' == platform ? 'all' : 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

Public Instance Methods

set_cid(cid) click to toggle source
# File lib/jpush/push/push_payload.rb, line 32
def set_cid(cid)
  @cid= cid
  self
end
set_message(msg_content, title: nil, content_type: nil, extras: nil) click to toggle source
# File lib/jpush/push/push_payload.rb, line 17
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(options) click to toggle source
# File lib/jpush/push/push_payload.rb, line 27
def set_options(options)
  @options = options
  self
end
set_sms_message(sms_message) click to toggle source
# File lib/jpush/push/push_payload.rb, line 22
def set_sms_message(sms_message)
  @sms_message = sms_message
  self
end
to_hash() click to toggle source
# File lib/jpush/push/push_payload.rb, line 37
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),
    cid: @cid
  }.select { |_, value| !value.nil? }
end

Private Instance Methods

build_audience(audience) click to toggle source
# File lib/jpush/push/push_payload.rb, line 56
def build_audience(audience)
  audience.is_a?(Audience) ? audience.to_hash : nil
end
build_message(msg_content, title = nil, content_type = nil, extras = nil) click to toggle source
# File lib/jpush/push/push_payload.rb, line 65
def build_message(msg_content, title = nil, content_type = nil, extras = nil)
  extras = (extras.nil? || !extras.is_a?(Hash) || extras.empty?) ? nil : extras
  message = {
    msg_content: msg_content,
    title: title,
    content_type: content_type,
    extras: extras
  }.select { |_, value| !value.nil? }
end
build_notification(notification) click to toggle source
# File lib/jpush/push/push_payload.rb, line 60
def build_notification(notification)
  return {alert: notification} if notification.is_a?(String)
  notification.is_a?(Notification) ? notification.to_hash : nil
end
build_platform(platform) click to toggle source
# File lib/jpush/push/push_payload.rb, line 51
def build_platform(platform)
  return platform if platform.is_a? Array
  return [platform]
end