Class: JPush::Schedule::SchedulePayload
- Inherits:
-
Object
- Object
- JPush::Schedule::SchedulePayload
- 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
- #build_name(name) ⇒ Object
- #build_push_payload(push_payload) ⇒ Object
- #build_trigger(trigger) ⇒ Object
-
#initialize(name, trigger, push_payload, enabled = nil) ⇒ SchedulePayload
constructor
A new instance of SchedulePayload.
- #to_hash ⇒ Object
- #to_update_hash ⇒ Object
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_hash ⇒ Object
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_hash ⇒ Object
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 |