Class: Pubnub::GetMemberships

Inherits:
SingleEvent show all
Includes:
Concurrent::Async, Validator::GetMemberships
Defined in:
lib/pubnub/events/get_memberships.rb

Overview

Holds GetMemberships functionality

Instance Attribute Summary

Attributes inherited from Event

#callback, #channel, #channel_group, #fresh_clone, #given_options, #group, #idle_timeout, #open_timeout, #origin, #presence_callback, #read_timeout, #ssl, #state, #wildcard_channel, #with_presence

Instance Method Summary collapse

Methods included from Validator::GetMemberships

#validate!

Methods included from Validator::CommonValidator

#validate_origin, #validate_publish_key, #validate_subscribe_key, #validate_user_id

Methods inherited from Event

#finalized?, #fire, #send_request, #sync?, #uri

Methods included from Event::EFormatter

#format_channels, #format_envelopes, #format_group

Constructor Details

#initialize(options, app) ⇒ GetMemberships

Returns a new instance of GetMemberships.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/pubnub/events/get_memberships.rb', line 10

def initialize(options, app)
  @event = current_operation
  @telemetry_name = :l_obj
  @uuid = options[:uuid].nil? ? app.user_id : options[:uuid]
  @limit = [options[:limit], 100].min unless options[:limit].nil?
  @sort = options[:sort].join(',') if options[:sort] && !options[:sort].empty?
  @filter = options[:filter] if options[:filter] && !options[:filter].empty?
  @start = options[:start] if options[:start] && !options[:start].empty?
  @end = options[:end] if options[:start] && !options[:end].empty?

  @include = []
  if options[:include]
    include = options[:include]
    @include.push('type') unless include[:type].nil? || [0, '0', false].include?(include[:type])
    @include.push('status') unless include[:status].nil? || [0, '0', false].include?(include[:status])
    @include.push('custom') unless include[:custom].nil? || [0, '0', false].include?(include[:custom])
    @include.push('channel') unless include[:channel_metadata].nil? || [0, '0', false].include?(include[:channel_metadata])
    @include.push('channel.type') unless include[:channel_type].nil? || [0, '0', false].include?(include[:channel_type])
    @include.push('channel.status') unless include[:channel_status].nil? || [0, '0', false].include?(include[:channel_status])
    @include.push('channel.custom') unless include[:channel_custom].nil? || [0, '0', false].include?(include[:channel_custom])
    @include_count = [0, '0', false].include?(include[:count]) ? '0' : '1' unless include[:count].nil?
  end

  # Collections by default return number of available entries.
  @include_count = '1' if @include_count.nil?

  super
end