Class: Pushable::Message

Inherits:
Object
  • Object
show all
Defined in:
app/models/pushable/message.rb

Direct Known Subclasses

ExampleMessage, TestMessage

Constant Summary collapse

MAX_TOKENS_AT_ONCE =
999

Instance Method Summary collapse

Instance Method Details

#alertObject



23
24
25
# File 'app/models/pushable/message.rb', line 23

def alert
  ''
end

#badgeObject



27
28
29
# File 'app/models/pushable/message.rb', line 27

def badge
  1
end

#content_available?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'app/models/pushable/message.rb', line 39

def content_available?
  false
end

#enqueue(devices, payload) ⇒ Object



17
18
19
20
21
# File 'app/models/pushable/message.rb', line 17

def enqueue(devices, payload)
  devices.pluck(:id).each_slice(MAX_TOKENS_AT_ONCE) do |tokens|
    Pushable::Messenger.perform_later tokens, payload.deep_stringify_keys
  end
end

#otherObject



35
36
37
# File 'app/models/pushable/message.rb', line 35

def other
  {}
end

#send_to(pushable) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'app/models/pushable/message.rb', line 5

def send_to(pushable)
  if pushable.is_a? ActiveRecord::Relation
    enqueue Device.android.owned_by(pushable), format(:android)
    enqueue Device.ios.owned_by(pushable), format(:ios)
  elsif pushable.is_a?(ActiveRecord::Base)
    enqueue pushable.devices.android, format(:android)
    enqueue pushable.devices.ios, format(:ios)
  else
    raise ArgumentError.new('#send_to only accepts an ActiveRecord Relation or ActiveRecord object!')
  end
end

#soundObject



31
32
33
# File 'app/models/pushable/message.rb', line 31

def sound
  'default'
end