class JPush::Schedule::SchedulePayload

Public Class Methods

new(name, trigger, push_payload, enabled = nil) click to toggle source
# File lib/jpush/schedule/schedule_payload.rb, line 8
def initialize(name, trigger, push_payload, enabled = nil)
  @name = name
  @trigger = build_trigger(trigger)
  @push_payload = build_push_payload(push_payload)
  @enabled = enabled
end

Public Instance Methods

build_push_payload(push_payload) click to toggle source
# File lib/jpush/schedule/schedule_payload.rb, line 42
def build_push_payload(push_payload)
  push_payload.is_a?(Push::PushPayload) ? push_payload.to_hash : nil
end
build_trigger(trigger) click to toggle source
# File lib/jpush/schedule/schedule_payload.rb, line 37
def build_trigger(trigger)
  return { single: { time: trigger.strftime('%F %T') } } if trigger.is_a? Time
  trigger.is_a?(Trigger) ? trigger.to_hash : nil
end
to_hash() click to toggle source
# File lib/jpush/schedule/schedule_payload.rb, line 26
def to_hash
  @schedule_payload = {
    name: @name,
    enabled: true,
    trigger: @trigger,
    push: @push_payload
  }
  hash = @schedule_payload.select { |_, value| value.nil? }
  @schedule_payload
end
to_update_hash() click to toggle source
# File lib/jpush/schedule/schedule_payload.rb, line 15
def to_update_hash
  @schedule_payload = {
    name: @name,
    enabled: @enabled,
    trigger: @trigger,
    push: @push_payload
  }.select { |_, value| !value.nil? }
  raise Utils::Exceptions::JPushError, 'Schedule update body can not be empty' if @schedule_payload.empty?
  @schedule_payload
end