Class: JPush::Schedule::SchedulePayload

Inherits:
Object
  • Object
show all
Defined in:
lib/jpush/schedule/schedule_payload.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, trigger, push_payload, enabled = nil) ⇒ SchedulePayload

Returns a new instance of SchedulePayload.



8
9
10
11
12
13
# 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

Instance Method Details

#build_push_payload(push_payload) ⇒ Object



42
43
44
# 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) ⇒ Object



37
38
39
40
# 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_hashObject



26
27
28
29
30
31
32
33
34
35
# 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_hashObject



15
16
17
18
19
20
21
22
23
24
# 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