class JeraPush::Service::SendMessage

Public Class Methods

new(*args) click to toggle source
# File lib/jera_push/services/send_message.rb, line 5
def initialize(*args)
  @type = args.first[:type].to_sym
  @message = args.first[:message]
  @devices = args.first[:devices]
end

Public Instance Methods

call() click to toggle source
# File lib/jera_push/services/send_message.rb, line 11
def call
  return false unless valid?

  message_content = JeraPush::Message.format_hash @message
  case @type
  when :broadcast
    JeraPush::Message.send_broadcast(content: message_content)
  when :specific
    target_devices = JeraPush::Device.where(id: @devices.uniq.map(&:to_i))
    JeraPush::Message.send_to(target_devices, content: message_content)
  end
end
valid?() click to toggle source
# File lib/jera_push/services/send_message.rb, line 24
def valid?
  valid = @message.present? && @type.present?
  @type.to_sym == :broadcast ? valid : valid && @devices.present?
end