class Urbanairship::Push::ScheduledPush
Attributes
name[W]
push[RW]
schedule[W]
url[RW]
Public Class Methods
from_url(client: required('client'), url: required('url'))
click to toggle source
Build a Scheduled Push
Notification object from its existing Scheduled Push
URL
@param [Object] client The Client
@param [Object] url The existing Scheduled Push
URL @return [Object] Scheduled Push
Object
# File lib/urbanairship/push/push.rb, line 110 def self.from_url(client: required('client'), url: required('url')) scheduled_push = ScheduledPush.new(client) response_payload = client.send_request( method: 'GET', body: nil, url: url ) payload = JSON.load(response_payload.to_json) p = Push.new(client) p.audience = payload['body']['push']['audience'] p.notification = payload['body']['push']['notification'] p.device_types = payload['body']['push']['device_types'] p.message = payload['body']['push']['message'] p.options = payload['body']['push']['options'] scheduled_push.name = payload['body']['name'] scheduled_push.schedule = payload['body']['schedule'] scheduled_push.push = p scheduled_push.url = url scheduled_push end
new(client)
click to toggle source
Initialize a Scheduled Push
Object
@param [Object] client
# File lib/urbanairship/push/push.rb, line 74 def initialize(client) @client = client end
Public Instance Methods
cancel()
click to toggle source
Cancel the Scheduled Push
@return [Object] Push
Response
# File lib/urbanairship/push/push.rb, line 136 def cancel fail ArgumentError, 'Cannot cancel ScheduledPush without a url.' if @url.nil? response = @client.send_request( method: 'DELETE', body: nil, url: @url, content_type: 'application/json' ) pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s) logger.info { "Result of canceling scheduled push: #{@url} was a: [#{pr.status_code}]" } pr end
list(schedule_id: required('schedule_id'))
click to toggle source
# File lib/urbanairship/push/push.rb, line 168 def list(schedule_id: required('schedule_id')) fail ArgumentError, 'schedule_id must be a string' unless schedule_id.is_a? String resp = @client.send_request( method: 'GET', path: schedules_path(schedule_id) ) logger.info("Retrieved info for schedule_id #{schedule_id}") resp end
payload()
click to toggle source
# File lib/urbanairship/push/push.rb, line 78 def payload compact_helper({ name: @name, schedule: @schedule, push: @push.payload }) end
send_push()
click to toggle source
Schedule
the Push
Notification
@raise [AirshipFailure] if the request failed @raise [Unauthorized] if authentication failed @raise [Forbidden] if app does not have entitlement @return [PushResponse] with `schedule_url` and other response data.
# File lib/urbanairship/push/push.rb, line 92 def send_push response = @client.send_request( method: 'POST', body: JSON.dump(payload), path: schedules_path, content_type: 'application/json' ) pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s) logger.info { pr.format } @url = pr.schedule_url pr end
update()
click to toggle source
Update the Scheduled Push
@return [Object]
# File lib/urbanairship/push/push.rb, line 154 def update fail ArgumentError, 'Cannot update a ScheduledPush without a url.' if @url.nil? response = @client.send_request( method: 'PUT', body: JSON.dump(self.payload), url: @url, content_type: 'application/json' ) pr = PushResponse.new(http_response_body: response['body'], http_response_code: response['code'].to_s) logger.info { pr.format } pr end