Class: CloudFivePush::Notification

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/cloud_five_push/notification.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key = nil) ⇒ Notification

debug_output $stderr



10
11
12
13
14
15
16
17
# File 'lib/cloud_five_push/notification.rb', line 10

def initialize(api_key=nil)
  @api_key = api_key || CloudFivePush.api_key
  if @api_key.nil?
    raise "api_key is required (or set CloudFivePush.api_key)"
  end
  @broadcast = false
  @user_identifiers = []
end

Instance Attribute Details

#alertObject

Returns the value of attribute alert.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def alert
  @alert
end

#api_keyObject

Returns the value of attribute api_key.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def api_key
  @api_key
end

#badgeObject

Returns the value of attribute badge.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def badge
  @badge
end

#broadcastObject

Returns the value of attribute broadcast.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def broadcast
  @broadcast
end

#dataObject

Returns the value of attribute data.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def data
  @data
end

#messageObject

Returns the value of attribute message.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def message
  @message
end

#scheduled_atObject

Returns the value of attribute scheduled_at.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def scheduled_at
  @scheduled_at
end

#user_identifiersObject

Returns the value of attribute user_identifiers.



4
5
6
# File 'lib/cloud_five_push/notification.rb', line 4

def user_identifiers
  @user_identifiers
end

Instance Method Details

#notify!Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/cloud_five_push/notification.rb', line 19

def notify!
  if blank_param?(@user_identifiers) && !@broadcast
    raise "Please set user_identifiers or set broadcast=true"
  end
  if blank_param?(@alert) && blank_param?(@badge)
    raise "Please set alert or badge"
  end
  if @broadcast && !blank_param?(@user_identifiers)
    raise "Can't both broadcast and set user_identifiers"
  end

  params = {
    api_key: @api_key,
    alert: @alert,
    badge: @badge
  }

  params[:message] = @message if @message
  params[:when] = @scheduled_at.iso8601 if @scheduled_at
  params[:data] = @data.to_json if @data

  if @broadcast
    params[:audience] = "broadcast"
  else
    params[:user_identifiers] = @user_identifiers
  end

  self.class.post('/push/notify', body: params)
end