pubnub 4.2.6 → 4.6.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/.github/CODEOWNERS +1 -0
- data/.pubnub.yml +113 -56
- data/.travis.yml +4 -2
- data/CHANGELOG.md +39 -11
- data/Gemfile.lock +10 -1
- data/README.md +56 -17
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/004.yml +45 -0
- data/fixtures/vcr_cassettes/examples/channel_members/001.yml +111 -0
- data/fixtures/vcr_cassettes/examples/channel_members/002.yml +111 -0
- data/fixtures/vcr_cassettes/examples/channel_members/003.yml +111 -0
- data/fixtures/vcr_cassettes/examples/channel_members/004.yml +147 -0
- data/fixtures/vcr_cassettes/examples/channel_members/005.yml +147 -0
- data/fixtures/vcr_cassettes/examples/channel_members/006.yml +147 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/001.yml +39 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/002.yml +39 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/003.yml +39 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/004.yml +73 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/005.yml +73 -0
- data/fixtures/vcr_cassettes/examples/channel_metadata/006.yml +73 -0
- data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
- data/fixtures/vcr_cassettes/examples/grant/1944.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1945.yml +359 -9
- data/fixtures/vcr_cassettes/examples/grant/1946.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1947.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1948.yml +8 -9
- data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted.yml +7 -7
- data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted_random_iv.yml +46 -0
- data/fixtures/vcr_cassettes/examples/history/include_token__encrypted.yml +6 -6
- data/fixtures/vcr_cassettes/examples/history/include_token__encrypted_random_iv.yml +46 -0
- data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted.yml +6 -6
- data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted_random_iv.yml +45 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/001.yml +46 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/memberships/001.yml +111 -0
- data/fixtures/vcr_cassettes/examples/memberships/002.yml +111 -0
- data/fixtures/vcr_cassettes/examples/memberships/003.yml +111 -0
- data/fixtures/vcr_cassettes/examples/memberships/004.yml +111 -0
- data/fixtures/vcr_cassettes/examples/memberships/005.yml +147 -0
- data/fixtures/vcr_cassettes/examples/memberships/006.yml +147 -0
- data/fixtures/vcr_cassettes/examples/memberships/007.yml +147 -0
- data/fixtures/vcr_cassettes/examples/memberships/008.yml +147 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/001.yml +39 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/002.yml +39 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/003.yml +39 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/004.yml +39 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/005.yml +73 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/006.yml +73 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/007.yml +73 -0
- data/fixtures/vcr_cassettes/examples/uuid_metadata/008.yml +73 -0
- 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_channel_members.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_memberships1.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_memberships2.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata1.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata2.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_memberships1.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → remove_memberships2.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata1.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata2.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_memberships_add.yml → set_memberships1.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/set_memberships2.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata1.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata2.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 +22 -16
- data/lib/pubnub/client/events.rb +4 -2
- data/lib/pubnub/client/helpers.rb +1 -1
- data/lib/pubnub/configuration.rb +1 -0
- data/lib/pubnub/constants.rb +20 -18
- data/lib/pubnub/crypto.rb +22 -8
- data/lib/pubnub/event.rb +39 -17
- data/lib/pubnub/event/formatter.rb +4 -0
- data/lib/pubnub/event/signature.rb +22 -7
- data/lib/pubnub/events/add_channels_to_push.rb +29 -13
- data/lib/pubnub/events/get_all_channels_metadata.rb +104 -0
- data/lib/pubnub/events/get_all_uuid_metadata.rb +104 -0
- data/lib/pubnub/events/get_channel_members.rb +120 -0
- data/lib/pubnub/events/{update_space.rb → get_channel_metadata.rb} +27 -27
- data/lib/pubnub/events/get_memberships.rb +120 -0
- data/lib/pubnub/events/{create_space.rb → get_uuid_metadata.rb} +27 -25
- data/lib/pubnub/events/grant.rb +10 -1
- data/lib/pubnub/events/history.rb +2 -1
- data/lib/pubnub/events/list_push_provisions.rb +29 -12
- data/lib/pubnub/events/publish.rb +2 -2
- data/lib/pubnub/events/remove_channel_members.rb +137 -0
- data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +13 -13
- data/lib/pubnub/events/remove_channels_from_push.rb +29 -13
- data/lib/pubnub/events/remove_device_from_push.rb +30 -14
- data/lib/pubnub/events/remove_memberships.rb +137 -0
- data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +13 -13
- data/lib/pubnub/events/set_channel_members.rb +140 -0
- data/lib/pubnub/events/{manage_members.rb → set_channel_metadata.rb} +32 -38
- data/lib/pubnub/events/set_memberships.rb +140 -0
- data/lib/pubnub/events/{create_user.rb → set_uuid_metadata.rb} +33 -17
- data/lib/pubnub/events/signal.rb +1 -1
- data/lib/pubnub/formatter.rb +31 -4
- data/lib/pubnub/pam.rb +2 -11
- data/lib/pubnub/subscribe_callback.rb +1 -3
- data/lib/pubnub/subscribe_event/formatter.rb +30 -19
- data/lib/pubnub/subscriber.rb +5 -6
- data/lib/pubnub/validators/add_channels_to_push.rb +52 -0
- 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/list_push_provisions.rb +43 -0
- 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_channels_from_push.rb +52 -0
- data/lib/pubnub/validators/remove_device_from_push.rb +43 -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/add_channels_to_push_spec.rb +178 -0
- data/spec/examples/{grant_examples_spec.rb → grant_examples_1_spec.rb} +0 -8973
- data/spec/examples/grant_examples_2_spec.rb +9107 -0
- data/spec/examples/history_examples_spec.rb +87 -9
- data/spec/examples/list_push_provisions_spec.rb +164 -0
- data/spec/examples/presence_examples_spec.rb +222 -186
- data/spec/examples/publish_examples_spec.rb +864 -0
- data/spec/examples/remove_channel_members_examples_spec.rb +100 -0
- data/spec/examples/remove_channel_metadata_examples_spec.rb +89 -0
- data/spec/examples/remove_channels_from_push_spec.rb +164 -0
- data/spec/examples/remove_device_from_push_spec.rb +164 -0
- data/spec/examples/remove_memberships_examples_spec.rb +121 -0
- data/spec/examples/remove_uuid_metadata_examples_spec.rb +107 -0
- data/spec/examples/revoke_examples_1_spec.rb +27013 -0
- data/spec/examples/revoke_examples_2_spec.rb +27012 -0
- data/spec/examples/revoke_examples_3_spec.rb +17967 -0
- data/spec/examples/set_channel_members_examples_spec.rb +99 -0
- data/spec/examples/set_channel_metadata_examples_spec.rb +93 -0
- data/spec/examples/set_memberships_examples_spec.rb +122 -0
- data/spec/examples/set_uuid_metadata_examples_spec.rb +114 -0
- data/spec/examples/status_request_message_count_exceeded_spec.rb +4 -1
- data/spec/examples/subscribe_examples_1_spec.rb +26972 -0
- data/spec/examples/subscribe_examples_2_spec.rb +19575 -0
- data/spec/lib/connection_callback_spec.rb +4 -3
- data/spec/lib/event/formatter_spec.rb +22 -0
- 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 +51 -21
- data/spec/lib/events/presence_delta_spec.rb +9 -6
- data/spec/lib/events/presence_spec.rb +13 -7
- data/spec/lib/events/subscribe_spec.rb +104 -65
- data/spec/lib/events/uuid_metadata_spec.rb +86 -0
- data/spec/lib/multiple_ciphers_spec.rb +16 -4
- data/spec/lib/subscribe_event/formatter_spec.rb +22 -0
- data/spec/lib/super_admin_spec.rb +8 -4
- data/spec/spec_helper.rb +24 -8
- metadata +153 -65
- 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_members.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_space_memberships.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/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/get_members.rb +0 -93
- data/lib/pubnub/events/get_space.rb +0 -74
- data/lib/pubnub/events/get_space_memberships.rb +0 -93
- data/lib/pubnub/events/get_spaces.rb +0 -90
- data/lib/pubnub/events/get_user.rb +0 -74
- data/lib/pubnub/events/get_users.rb +0 -90
- 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/push.rb +0 -43
- data/lib/pubnub/validators/update_space.rb +0 -45
- data/lib/pubnub/validators/update_user.rb +0 -45
- data/spec/examples/revoke_examples_spec.rb +0 -71950
- data/spec/examples/subscribe_examples_spec.rb +0 -45184
- data/spec/lib/events/space_spec.rb +0 -75
- data/spec/lib/events/user_spec.rb +0 -75
@@ -34,8 +34,10 @@ module Pubnub
|
|
34
34
|
|
35
35
|
def decipher_payload(message)
|
36
36
|
return message[:payload] if message[:channel].end_with?('-pnpres') || (@app.env[:cipher_key].nil? && @cipher_key.nil? && @cipher_key_selector.nil? && @env[:cipher_key_selector].nil?)
|
37
|
-
|
38
|
-
|
37
|
+
data = message.reject { |k, _v| k == :payload }
|
38
|
+
cipher_key = compute_cipher_key(data)
|
39
|
+
random_iv = compute_random_iv(data)
|
40
|
+
crypto = Pubnub::Crypto.new(cipher_key, random_iv)
|
39
41
|
JSON.parse(crypto.decrypt(message[:payload]), quirks_mode: true)
|
40
42
|
rescue StandardError
|
41
43
|
message[:payload]
|
@@ -148,6 +150,11 @@ module Pubnub
|
|
148
150
|
end
|
149
151
|
|
150
152
|
def format_envelopes(response, request)
|
153
|
+
if response.is_a?(StandardError)
|
154
|
+
# unexpected error response
|
155
|
+
raise response
|
156
|
+
end
|
157
|
+
|
151
158
|
parsed_response, error = Pubnub::Formatter.parse_json(response.body)
|
152
159
|
|
153
160
|
error = response if parsed_response && response.code.to_i != 200
|
@@ -168,32 +175,36 @@ module Pubnub
|
|
168
175
|
Pubnub::Constants::OPERATION_SIGNAL
|
169
176
|
elsif message[:type] == 2
|
170
177
|
case message[:payload]['type']
|
171
|
-
when '
|
178
|
+
when 'uuid'
|
172
179
|
case message[:payload]['event']
|
173
|
-
when '
|
174
|
-
Pubnub::Constants::
|
175
|
-
when 'update'
|
176
|
-
Pubnub::Constants::OPERATION_UPDATE_USER
|
180
|
+
when 'set'
|
181
|
+
Pubnub::Constants::OPERATION_SET_UUID_METADATA
|
177
182
|
when 'delete'
|
178
|
-
Pubnub::Constants::
|
183
|
+
Pubnub::Constants::OPERATION_REMOVE_UUID_METADATA
|
179
184
|
else
|
180
|
-
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']}." }
|
181
|
-
raise Exception, "Invalid event #{message[:payload]['event']}."
|
185
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for uuid." }
|
186
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for uuid."
|
182
187
|
end
|
183
|
-
when '
|
188
|
+
when 'channel'
|
184
189
|
case message[:payload]['event']
|
185
|
-
when '
|
186
|
-
Pubnub::Constants::
|
187
|
-
when 'update'
|
188
|
-
Pubnub::Constants::OPERATION_UPDATE_SPACE
|
190
|
+
when 'set'
|
191
|
+
Pubnub::Constants::OPERATION_SET_CHANNEL_METADATA
|
189
192
|
when 'delete'
|
190
|
-
Pubnub::Constants::
|
193
|
+
Pubnub::Constants::OPERATION_REMOVE_CHANNEL_METADATA
|
191
194
|
else
|
192
|
-
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']}." }
|
193
|
-
raise Exception, "Invalid event #{message[:payload]['event']}."
|
195
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for channel." }
|
196
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for channel."
|
194
197
|
end
|
195
198
|
when 'membership'
|
196
|
-
|
199
|
+
case message[:payload]['event']
|
200
|
+
when 'set'
|
201
|
+
Pubnub::Constants::OPERATION_SET_MEMBERSHIPS
|
202
|
+
when 'delete'
|
203
|
+
Pubnub::Constants::OPERATION_REMOVE_MEMBERSHIPS
|
204
|
+
else
|
205
|
+
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid event #{message[:payload]['event']} for membership." }
|
206
|
+
raise Exception, "Invalid event #{message[:payload]['event']} for membership."
|
207
|
+
end
|
197
208
|
else
|
198
209
|
Pubnub.logger.error('Pubnub::SubscribeEvent::Formatter') { "Invalid operation type #{message[:payload]['type']}." }
|
199
210
|
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,52 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
module Pubnub
|
3
|
+
# Validator module that holds all validators modules
|
4
|
+
module Validator
|
5
|
+
# Validator for AddChannelsToPush event
|
6
|
+
module AddChannelsToPush
|
7
|
+
include CommonValidator
|
8
|
+
|
9
|
+
def validate!
|
10
|
+
return if @skip_validate
|
11
|
+
validate_push_token!
|
12
|
+
validate_push_gateway!
|
13
|
+
validate_channel!
|
14
|
+
validate_topic! if @push_gateway.eql? 'apns2'
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def validate_push_token!
|
20
|
+
return unless @push_token.nil? || @push_token.empty?
|
21
|
+
raise(
|
22
|
+
ArgumentError.new,
|
23
|
+
':push_token is required for AddChannelsToPush event.'
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
def validate_push_gateway!
|
28
|
+
return unless @push_gateway.nil? || @push_gateway.empty?
|
29
|
+
raise(
|
30
|
+
ArgumentError.new,
|
31
|
+
':push_gateway is required for AddChannelsToPush event.'
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
def validate_channel!
|
36
|
+
return unless @channel.nil? || @channel.empty?
|
37
|
+
raise(
|
38
|
+
ArgumentError.new,
|
39
|
+
':channel is required for AddChannelsToPush event.'
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
def validate_topic!
|
44
|
+
return unless @topic.nil? || @topic.empty?
|
45
|
+
raise(
|
46
|
+
ArgumentError.new,
|
47
|
+
':topic is required for AddChannelsToPush event.'
|
48
|
+
)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
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 @uuids.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
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
module Pubnub
|
3
|
+
# Validator module that holds all validators modules
|
4
|
+
module Validator
|
5
|
+
# Validator for ListPushProvisions event
|
6
|
+
module ListPushProvisions
|
7
|
+
include CommonValidator
|
8
|
+
|
9
|
+
def validate!
|
10
|
+
return if @skip_validate
|
11
|
+
validate_push_token!
|
12
|
+
validate_push_gateway!
|
13
|
+
validate_topic! if @push_gateway.eql? 'apns2'
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def validate_push_token!
|
19
|
+
return unless @push_token.nil? || @push_token.empty?
|
20
|
+
raise(
|
21
|
+
ArgumentError.new,
|
22
|
+
':push_token is required for ListPushProvisions event.'
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
def validate_push_gateway!
|
27
|
+
return unless @push_gateway.nil? || @push_gateway.empty?
|
28
|
+
raise(
|
29
|
+
ArgumentError.new,
|
30
|
+
':push_gateway is required for ListPushProvisions event.'
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
def validate_topic!
|
35
|
+
return unless @topic.nil? || @topic.empty?
|
36
|
+
raise(
|
37
|
+
ArgumentError.new,
|
38
|
+
':topic is required for ListPushProvisions event.'
|
39
|
+
)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|