Sha256: 96f79a1cf135026b4d21137a39526b6285279a6c1a075dc33f9d2e2be9f06a92

Contents?: true

Size: 1.36 KB

Versions: 11

Compression:

Stored size: 1.36 KB

Contents

module Pubnub
  class WhereNow
    include Pubnub::Event
    include Pubnub::SingleEvent
    include Pubnub::Formatter
    include Pubnub::Validator

    def initialize(options, app)
      @uuid_looking_for = options[:uuid]
      @uuid = app.uuid
      @event = 'where_now'
      super
    end

    def validate!
      super

      # check uuid
      raise ArgumentError.new(:object => self, :message => 'where_now requires :uuid argument') unless @uuid_looking_for
    end

    private

    def path(app)
      '/' + [
          'v2',
          'presence',
          'sub-key',
          @subscribe_key,
          'uuid',
          @uuid_looking_for
      ].join('/')
    end

    def format_envelopes(response, app, error)
      parsed_response = Parser.parse_json(response.body) if Parser.valid_json?(response.body)

      envelopes = Array.new
      envelopes << Envelope.new(
          {
              :parsed_response => parsed_response,
              :payload => (parsed_response['payload'] if parsed_response),
              :service => (parsed_response['service'] if parsed_response),
              :message => (parsed_response['message'] if parsed_response),
              :status  => (parsed_response['status']  if parsed_response)
          },
          app
      )

      envelopes = add_common_data_to_envelopes(envelopes, response, app, error)

      envelopes
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pubnub-3.7.12 lib/pubnub/events/where_now.rb
pubnub-3.7.11 lib/pubnub/events/where_now.rb
pubnub-3.7.10 lib/pubnub/events/where_now.rb
pubnub-3.7.9 lib/pubnub/events/where_now.rb
pubnub-3.7.7 lib/pubnub/events/where_now.rb
pubnub-3.7.5 lib/pubnub/events/where_now.rb
pubnub-3.7.1 lib/pubnub/events/where_now.rb
pubnub-3.7.0 lib/pubnub/events/where_now.rb
pubnub-3.6.10 lib/pubnub/events/where_now.rb
pubnub-3.6.9 lib/pubnub/events/where_now.rb
pubnub-3.6.7 lib/pubnub/events/where_now.rb