pubnub 4.3.0 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pubnub might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.pubnub.yml +32 -24
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
- data/fixtures/vcr_cassettes/examples/grant/1945.yml +355 -4
- data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/{get_space_memberships.yml → get_channel_members.yml} +5 -6
- data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/{get_members.yml → get_memberships.yml} +10 -11
- data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
- data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
- data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
- data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → set_memberships.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
- data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
- data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
- data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
- data/lib/pubnub/client.rb +14 -14
- data/lib/pubnub/client/events.rb +4 -2
- data/lib/pubnub/constants.rb +19 -18
- data/lib/pubnub/event.rb +29 -15
- data/lib/pubnub/event/signature.rb +22 -7
- data/lib/pubnub/events/get_all_channels_metadata.rb +92 -0
- data/lib/pubnub/events/get_all_uuid_metadata.rb +92 -0
- data/lib/pubnub/events/get_channel_members.rb +100 -0
- data/lib/pubnub/events/{get_user.rb → get_channel_metadata.rb} +22 -15
- data/lib/pubnub/events/get_memberships.rb +100 -0
- data/lib/pubnub/events/{get_space.rb → get_uuid_metadata.rb} +22 -15
- data/lib/pubnub/events/grant.rb +9 -7
- data/lib/pubnub/events/remove_channel_members.rb +117 -0
- data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +12 -12
- data/lib/pubnub/events/remove_memberships.rb +117 -0
- data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +12 -12
- data/lib/pubnub/events/set_channel_members.rb +120 -0
- data/lib/pubnub/events/{create_space.rb → set_channel_metadata.rb} +26 -16
- data/lib/pubnub/events/set_memberships.rb +120 -0
- data/lib/pubnub/events/{update_space.rb → set_uuid_metadata.rb} +27 -18
- data/lib/pubnub/pam.rb +2 -11
- data/lib/pubnub/subscribe_callback.rb +1 -3
- data/lib/pubnub/subscribe_event/formatter.rb +21 -17
- data/lib/pubnub/subscriber.rb +5 -6
- data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
- data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
- data/lib/pubnub/validators/get_channel_members.rb +39 -0
- data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
- data/lib/pubnub/validators/get_memberships.rb +39 -0
- data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
- data/lib/pubnub/validators/grant.rb +37 -2
- data/lib/pubnub/validators/remove_channel_members.rb +52 -0
- data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
- data/lib/pubnub/validators/remove_memberships.rb +52 -0
- data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
- data/lib/pubnub/validators/set_channel_members.rb +78 -0
- data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
- data/lib/pubnub/validators/set_memberships.rb +78 -0
- data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
- data/lib/pubnub/version.rb +1 -1
- data/spec/examples/grant_examples_spec.rb +2 -2
- data/spec/lib/events/channel_metadata_spec.rb +58 -0
- data/spec/lib/events/grant_spec.rb +3 -2
- data/spec/lib/events/membership_spec.rb +25 -22
- data/spec/lib/events/subscribe_spec.rb +58 -45
- data/spec/lib/events/uuid_metadata_spec.rb +56 -0
- data/spec/spec_helper.rb +1 -1
- metadata +55 -57
- data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
- data/fixtures/vcr_cassettes/lib/events/manage_memberships_add.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
- data/lib/pubnub/events/create_user.rb +0 -84
- data/lib/pubnub/events/get_members.rb +0 -93
- data/lib/pubnub/events/get_space_memberships.rb +0 -93
- data/lib/pubnub/events/get_spaces.rb +0 -90
- data/lib/pubnub/events/get_users.rb +0 -90
- data/lib/pubnub/events/manage_members.rb +0 -105
- data/lib/pubnub/events/manage_memberships.rb +0 -105
- data/lib/pubnub/events/update_user.rb +0 -86
- data/lib/pubnub/validators/create_space.rb +0 -44
- data/lib/pubnub/validators/create_user.rb +0 -44
- data/lib/pubnub/validators/delete_space.rb +0 -32
- data/lib/pubnub/validators/delete_user.rb +0 -32
- data/lib/pubnub/validators/get_members.rb +0 -32
- data/lib/pubnub/validators/get_space.rb +0 -32
- data/lib/pubnub/validators/get_space_memberships.rb +0 -32
- data/lib/pubnub/validators/get_spaces.rb +0 -16
- data/lib/pubnub/validators/get_user.rb +0 -32
- data/lib/pubnub/validators/get_users.rb +0 -16
- data/lib/pubnub/validators/manage_members.rb +0 -45
- data/lib/pubnub/validators/manage_memberships.rb +0 -45
- data/lib/pubnub/validators/update_space.rb +0 -45
- data/lib/pubnub/validators/update_user.rb +0 -45
- data/spec/lib/events/space_spec.rb +0 -75
- data/spec/lib/events/user_spec.rb +0 -75
@@ -2,24 +2,33 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
module Pubnub
|
5
|
-
# Holds
|
6
|
-
class
|
5
|
+
# Holds SetUuidMetadata functionality
|
6
|
+
class SetUuidMetadata < SingleEvent
|
7
7
|
include Concurrent::Async
|
8
|
-
include Pubnub::Validator::
|
8
|
+
include Pubnub::Validator::SetUuidMetadata
|
9
9
|
|
10
10
|
def initialize(options, app)
|
11
|
-
@event =
|
11
|
+
@event = current_operation
|
12
12
|
@telemetry_name = :l_obj
|
13
|
-
@
|
14
|
-
|
15
|
-
|
13
|
+
@uuid = options[:uuid]
|
14
|
+
|
15
|
+
# Clean up user-provided metadata object from nils.
|
16
|
+
@metadata = options[:metadata].delete_if { |_k, v| v.blank? } unless options[:metadata].nil?
|
17
|
+
|
18
|
+
if options[:include]
|
19
|
+
@include = [0, '0', false].include?(options[:include][:custom]) ? "0" : "1" unless options[:include][:custom].nil?
|
20
|
+
end
|
21
|
+
|
22
|
+
# Single entity creation should return it's 'custom' field by default.
|
23
|
+
@include = "custom" if @include.nil?
|
24
|
+
|
16
25
|
super
|
17
26
|
end
|
18
27
|
|
19
28
|
def fire
|
20
|
-
Pubnub.logger.debug('Pubnub::
|
29
|
+
Pubnub.logger.debug('Pubnub::SetUuidMetadata') { "Fired event #{self.class}" }
|
21
30
|
|
22
|
-
body = Formatter.format_message(@
|
31
|
+
body = Formatter.format_message(@metadata, @cipher_key, false)
|
23
32
|
response = send_request(body)
|
24
33
|
|
25
34
|
envelopes = fire_callbacks(handle(response, uri))
|
@@ -30,22 +39,22 @@ module Pubnub
|
|
30
39
|
private
|
31
40
|
|
32
41
|
def current_operation
|
33
|
-
Pubnub::Constants::
|
42
|
+
Pubnub::Constants::OPERATION_SET_UUID_METADATA
|
34
43
|
end
|
35
44
|
|
36
|
-
def parameters(
|
37
|
-
parameters = super
|
38
|
-
parameters[:include] = @include
|
45
|
+
def parameters(signature = false)
|
46
|
+
parameters = super(signature)
|
47
|
+
parameters[:include] = @include
|
39
48
|
parameters
|
40
49
|
end
|
41
50
|
|
42
51
|
def path
|
43
52
|
'/' + [
|
44
|
-
'
|
53
|
+
'v2',
|
45
54
|
'objects',
|
46
55
|
@subscribe_key,
|
47
|
-
'
|
48
|
-
@
|
56
|
+
'uuids',
|
57
|
+
Formatter.encode(@uuid)
|
49
58
|
].join('/')
|
50
59
|
end
|
51
60
|
|
@@ -57,7 +66,7 @@ module Pubnub
|
|
57
66
|
|
58
67
|
result: {
|
59
68
|
code: req_res_objects[:response].code,
|
60
|
-
operation:
|
69
|
+
operation: current_operation,
|
61
70
|
client_request: req_res_objects[:request],
|
62
71
|
server_response: req_res_objects[:response],
|
63
72
|
data: parsed_response
|
@@ -65,7 +74,7 @@ module Pubnub
|
|
65
74
|
|
66
75
|
status: {
|
67
76
|
code: req_res_objects[:response].code,
|
68
|
-
operation:
|
77
|
+
operation: current_operation,
|
69
78
|
client_request: req_res_objects[:request],
|
70
79
|
server_response: req_res_objects[:response],
|
71
80
|
data: nil,
|
data/lib/pubnub/pam.rb
CHANGED
@@ -14,17 +14,7 @@ module Pubnub
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def signature
|
17
|
-
|
18
|
-
@subscribe_key,
|
19
|
-
@publish_key,
|
20
|
-
path,
|
21
|
-
variables_for_signature.gsub(/[!~'()*]/) { |char| '%' + char.ord.to_s(16).upcase }, # Replace ! ~ * ' ( )
|
22
|
-
].join("\n")
|
23
|
-
|
24
|
-
Base64.urlsafe_encode64(
|
25
|
-
OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'),
|
26
|
-
@secret_key.to_s, message)
|
27
|
-
).strip
|
17
|
+
super_admin_signature("GET", nil)
|
28
18
|
end
|
29
19
|
|
30
20
|
def parameters(set_signature = false)
|
@@ -32,6 +22,7 @@ module Pubnub
|
|
32
22
|
params['channel-group'] = @group.join(',') unless @group.blank?
|
33
23
|
params[:timestamp] = @timestamp
|
34
24
|
params[:channel] = @channel.join(',') unless @channel.first.blank?
|
25
|
+
params['target-uuid'] = @uuids.join(',') if !@uuids.nil? && !@uuids.first.blank?
|
35
26
|
params[:signature] = signature unless set_signature
|
36
27
|
params
|
37
28
|
end
|
@@ -173,32 +173,36 @@ module Pubnub
|
|
173
173
|
Pubnub::Constants::OPERATION_SIGNAL
|
174
174
|
elsif message[:type] == 2
|
175
175
|
case message[:payload]['type']
|
176
|
-
when '
|
176
|
+
when 'uuid'
|
177
177
|
case message[:payload]['event']
|
178
|
-
when '
|
179
|
-
Pubnub::Constants::
|
180
|
-
when 'update'
|
181
|
-
Pubnub::Constants::OPERATION_UPDATE_USER
|
178
|
+
when 'set'
|
179
|
+
Pubnub::Constants::OPERATION_SET_UUID_METADATA
|
182
180
|
when 'delete'
|
183
|
-
Pubnub::Constants::
|
181
|
+
Pubnub::Constants::OPERATION_REMOVE_UUID_METADATA
|
184
182
|
else
|
185
|
-
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']}." }
|
186
|
-
raise Exception, "Invalid event #{message[:payload]['event']}."
|
183
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for uuid." }
|
184
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for uuid."
|
187
185
|
end
|
188
|
-
when '
|
186
|
+
when 'channel'
|
189
187
|
case message[:payload]['event']
|
190
|
-
when '
|
191
|
-
Pubnub::Constants::
|
192
|
-
when 'update'
|
193
|
-
Pubnub::Constants::OPERATION_UPDATE_SPACE
|
188
|
+
when 'set'
|
189
|
+
Pubnub::Constants::OPERATION_SET_CHANNEL_METADATA
|
194
190
|
when 'delete'
|
195
|
-
Pubnub::Constants::
|
191
|
+
Pubnub::Constants::OPERATION_REMOVE_CHANNEL_METADATA
|
196
192
|
else
|
197
|
-
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']}." }
|
198
|
-
raise Exception, "Invalid event #{message[:payload]['event']}."
|
193
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for channel." }
|
194
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for channel."
|
199
195
|
end
|
200
196
|
when 'membership'
|
201
|
-
|
197
|
+
case message[:payload]['event']
|
198
|
+
when 'set'
|
199
|
+
Pubnub::Constants::OPERATION_SET_MEMBERSHIPS
|
200
|
+
when 'delete'
|
201
|
+
Pubnub::Constants::OPERATION_REMOVE_MEMBERSHIPS
|
202
|
+
else
|
203
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for membership." }
|
204
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for membership."
|
205
|
+
end
|
202
206
|
else
|
203
207
|
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid operation type #{message[:payload]['type']}." }
|
204
208
|
raise Exception, "Invalid operation type #{message[:payload]['type']}."
|
data/lib/pubnub/subscriber.rb
CHANGED
@@ -75,12 +75,11 @@ module Pubnub
|
|
75
75
|
secure_call callbacks.callbacks[:signal], envelope
|
76
76
|
when Pubnub::Constants::OPERATION_PRESENCE
|
77
77
|
secure_call callbacks.callbacks[:presence], envelope
|
78
|
-
when Pubnub::Constants::
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
secure_call callbacks.callbacks[:membership], envelope
|
78
|
+
when Pubnub::Constants::OPERATION_SET_UUID_METADATA, Pubnub::Constants::OPERATION_REMOVE_UUID_METADATA,
|
79
|
+
Pubnub::Constants::OPERATION_SET_CHANNEL_METADATA, Pubnub::Constants::OPERATION_REMOVE_CHANNEL_METADATA,
|
80
|
+
Pubnub::Constants::OPERATION_SET_CHANNEL_MEMBERS, Pubnub::Constants::OPERATION_REMOVE_CHANNEL_MEMBERS,
|
81
|
+
Pubnub::Constants::OPERATION_SET_MEMBERSHIPS, Pubnub::Constants::OPERATION_REMOVE_MEMBERSHIPS
|
82
|
+
secure_call callbacks.callbacks[:object], envelope
|
84
83
|
else
|
85
84
|
secure_call callbacks.callbacks[:status], envelope
|
86
85
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetAllChannelsMetadata event
|
8
|
+
module GetAllChannelsMetadata
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def validate_subscribe_key!
|
20
|
+
return unless @subscribe_key.nil?
|
21
|
+
|
22
|
+
raise(
|
23
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get all channels metadata event.'),
|
24
|
+
':subscribe_key is required for get all channels metadata event.'
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetAllUuidMetadata event
|
8
|
+
module GetAllUuidMetadata
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def validate_subscribe_key!
|
20
|
+
return unless @subscribe_key.nil?
|
21
|
+
|
22
|
+
raise(
|
23
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get all uuid metadata event.'),
|
24
|
+
':subscribe_key is required for get all uuid metadata event.'
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetChannelMembers event
|
8
|
+
module GetChannelMembers
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
validate_channel!
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def validate_subscribe_key!
|
21
|
+
return unless @subscribe_key.nil?
|
22
|
+
|
23
|
+
raise(
|
24
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get channel members event.'),
|
25
|
+
':subscribe_key is required for get channel members event.'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate_channel!
|
30
|
+
return unless @channel.nil? || @channel.empty?
|
31
|
+
|
32
|
+
raise(
|
33
|
+
ArgumentError.new(object: self, message: ':channel is required for get channel members event.'),
|
34
|
+
':channel is required for get channel members event.'
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetChannelMetadata event
|
8
|
+
module GetChannelMetadata
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
validate_channel!
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def validate_subscribe_key!
|
21
|
+
return unless @subscribe_key.nil?
|
22
|
+
|
23
|
+
raise(
|
24
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get channel metadata event.'),
|
25
|
+
':subscribe_key is required for get channel metadata event.'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate_channel!
|
30
|
+
return unless @channel.nil? || @channel.empty?
|
31
|
+
|
32
|
+
raise(
|
33
|
+
ArgumentError.new(object: self, message: ':channel is required for get channel metadata event.'),
|
34
|
+
':channel is required for get channel metadata event.'
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetMemberships event
|
8
|
+
module GetMemberships
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
validate_uuid!
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def validate_subscribe_key!
|
21
|
+
return unless @subscribe_key.nil?
|
22
|
+
|
23
|
+
raise(
|
24
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get memberships event.'),
|
25
|
+
':subscribe_key is required for get memberships event.'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate_uuid!
|
30
|
+
return unless @uuid.nil? || @uuid.empty?
|
31
|
+
|
32
|
+
raise(
|
33
|
+
ArgumentError.new(object: self, message: ':uuid is required for get memberships event.'),
|
34
|
+
':uuid is required for get memberships event.'
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Validator module that holds all validators modules
|
6
|
+
module Validator
|
7
|
+
# Validator for GetUuidMetadata event
|
8
|
+
module GetUuidMetadata
|
9
|
+
include CommonValidator
|
10
|
+
|
11
|
+
def validate!
|
12
|
+
return if @skip_validate
|
13
|
+
|
14
|
+
validate_subscribe_key!
|
15
|
+
validate_uuid!
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def validate_subscribe_key!
|
21
|
+
return unless @subscribe_key.nil?
|
22
|
+
|
23
|
+
raise(
|
24
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for get uuid metadata event.'),
|
25
|
+
':subscribe_key is required for get uuid metadata event.'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate_uuid!
|
30
|
+
return unless @uuid.nil? || @uuid.empty?
|
31
|
+
|
32
|
+
raise(
|
33
|
+
ArgumentError.new(object: self, message: ':uuid is required for get uuid metadata event.'),
|
34
|
+
':uuid is required for get uuid metadata event.'
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -8,18 +8,53 @@ module Pubnub
|
|
8
8
|
|
9
9
|
def validate!
|
10
10
|
return if @skip_validate
|
11
|
+
|
12
|
+
validate_keys!
|
11
13
|
validate_ttl!
|
14
|
+
validate_uuids!
|
12
15
|
end
|
13
16
|
|
14
17
|
private
|
15
18
|
|
19
|
+
def validate_keys!
|
20
|
+
raise(
|
21
|
+
ArgumentError.new(object: self, message: ':subscribe_key is required for grant event.'),
|
22
|
+
':subscribe_key is required for grant event.'
|
23
|
+
) if @subscribe_key.nil? || @subscribe_key.empty?
|
24
|
+
|
25
|
+
raise(
|
26
|
+
ArgumentError.new(object: self, message: ':publish_key is required for grant event.'),
|
27
|
+
':publish_key is required for grant event.'
|
28
|
+
) if @publish_key.nil? || @publish_key.empty?
|
29
|
+
end
|
30
|
+
|
16
31
|
def validate_ttl!
|
17
32
|
return unless !@ttl.nil? && !@ttl.is_a?(Integer)
|
33
|
+
|
18
34
|
raise(
|
19
|
-
ArgumentError.new,
|
20
|
-
':ttl has to be kind of Integer'
|
35
|
+
ArgumentError.new(object: self, message: ':ttl has to be kind of Integer for grant event.'),
|
36
|
+
':ttl has to be kind of Integer for grant event.'
|
21
37
|
)
|
22
38
|
end
|
39
|
+
|
40
|
+
def validate_uuids!
|
41
|
+
return if @uuid.nil?
|
42
|
+
|
43
|
+
raise(
|
44
|
+
ArgumentError.new(object: self, message: ':uuid should not be empty for grant event.'),
|
45
|
+
':uuid should not be empty for grant event.'
|
46
|
+
) if @uuid.empty?
|
47
|
+
|
48
|
+
raise(
|
49
|
+
ArgumentError.new(object: self, message: ':auth_key required for grant event on uuids.'),
|
50
|
+
':uuid should not be empty for grant event on uuids.'
|
51
|
+
) if @auth_key.nil? || @auth_key.blank?
|
52
|
+
|
53
|
+
raise(
|
54
|
+
ArgumentError.new(object: self, message: ':uuid can\'t be used along with channel/channel_groups for grant event.'),
|
55
|
+
':uuid can\'t be used along with channel/channel_groups for grant event.'
|
56
|
+
) if !@channels.nil? || !@channel_groups.nil?
|
57
|
+
end
|
23
58
|
end
|
24
59
|
end
|
25
60
|
end
|