Class: JPush::Schedule::SchedulePayload

Inherits:
Object
  • Object
show all
Extended by:
Helper::ArgumentHelper
Defined in:
lib/jpush/schedule/schedule_payload.rb

Constant Summary

Constants included from Helper::ArgumentHelper

Helper::ArgumentHelper::MAX_ALIAS_ARRAY_SIZE, Helper::ArgumentHelper::MAX_MSG_IDS_ARRAY_SIZE, Helper::ArgumentHelper::MAX_REGISTRATION_ID_ARRAY_SIZE, Helper::ArgumentHelper::MAX_TAG_ARRAY_MAX_BYTESIZE, Helper::ArgumentHelper::MAX_TAG_ARRAY_SZIE

Constants included from Helper::Argument

Helper::Argument::MAX_ALIAS_BYTESIZE, Helper::Argument::MAX_TAG_BYTESIZE, Helper::Argument::MOBILE_RE

Instance Method Summary collapse

Methods included from Helper::ArgumentHelper

build_alias, build_extras, build_msg_ids, build_platform, build_registration_ids, build_tags, extended

Methods included from Helper::Argument

#check_alias, #check_mobile, #check_platform, #check_registration_id, #check_tag, #ensure_argument_not_blank, #ensure_argument_required, #ensure_not_over_bytesize, #ensure_not_over_size, #ensure_word_valid

Constructor Details

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

Returns a new instance of SchedulePayload.



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

def initialize(name, trigger, push_payload, enabled = nil)
  @name = build_name(name)
  @trigger = build_trigger(trigger)
  @push_payload = build_push_payload(push_payload)
  @enabled = enabled
end

Instance Method Details

#build_name(name) ⇒ Object



41
42
43
44
# File 'lib/jpush/schedule/schedule_payload.rb', line 41

def build_name(name)
  SchedulePayload.ensure_word_valid('name', name) unless name.nil?
  name
end

#build_push_payload(push_payload) ⇒ Object



51
52
53
# File 'lib/jpush/schedule/schedule_payload.rb', line 51

def build_push_payload(push_payload)
  push_payload.is_a?(Push::PushPayload) ? push_payload.to_hash : nil
end

#build_trigger(trigger) ⇒ Object



46
47
48
49
# File 'lib/jpush/schedule/schedule_payload.rb', line 46

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



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/jpush/schedule/schedule_payload.rb', line 29

def to_hash
  @schedule_payload = {
    name: @name,
    enabled: true,
    trigger: @trigger,
    push: @push_payload
  }
  hash = @schedule_payload.select { |_, value| value.nil? }
  raise Utils::Exceptions::MissingArgumentError.new(hash.keys) unless hash.empty?
  @schedule_payload
end

#to_update_hashObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/jpush/schedule/schedule_payload.rb', line 18

def to_update_hash
  @schedule_payload = {
    name: @name,
    enabled: @enabled,
    trigger: @trigger,
    push: @push_payload
  }.compact
  raise Utils::Exceptions::JPushError, 'Schedule update body can not be empty' if @schedule_payload.empty?
  @schedule_payload
end