Sha256: f5fbef928a7b4822896493492b12348711e06b0b40fac8cf622ed9c4b572ad1b

Contents?: true

Size: 795 Bytes

Versions: 12

Compression:

Stored size: 795 Bytes

Contents

module JeraPush
  module Service
    class SendMessage

      def initialize(*args)
        args[0].map { |attr_name, value| instance_variable_set("@#{attr_name}", value) }
      end

      def call
        return false unless valid?

        message_content = JeraPush::Message.format_hash @message

        case @type.to_sym
        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

      def valid?
        valid = @message.present? && @type.present?
        @type.to_sym == :broadcast ? valid : valid && @devices.present?
      end

    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jera_push-1.2.3 lib/jera_push/services/send_message.rb
jera_push-1.2.1 lib/jera_push/services/send_message.rb
jera_push-1.1.5 lib/jera_push/services/send_message.rb
jera_push-1.1.4 lib/jera_push/services/send_message.rb
jera_push-1.1.3 lib/jera_push/services/send_message.rb
jera_push-1.1.2 lib/jera_push/services/send_message.rb
jera_push-1.1.1 lib/jera_push/services/send_message.rb
jera_push-1.1.0 lib/jera_push/services/send_message.rb
jera_push-1.0.3 lib/jera_push/services/send_message.rb
jera_push-1.0.2 lib/jera_push/services/send_message.rb
jera_push-1.0.1.1 lib/jera_push/services/send_message.rb
jera_push-1.0.1 lib/jera_push/services/send_message.rb