pubnub 4.2.5 → 4.5.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.

Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.pubnub.yml +168 -117
  4. data/.travis.yml +13 -9
  5. data/CHANGELOG.md +31 -8
  6. data/Gemfile.lock +67 -64
  7. data/README.md +56 -17
  8. data/VERSION +1 -1
  9. data/fixtures/vcr_cassettes/examples/add_channels_to_push/001.yml +45 -0
  10. data/fixtures/vcr_cassettes/examples/add_channels_to_push/002.yml +45 -0
  11. data/fixtures/vcr_cassettes/examples/add_channels_to_push/003.yml +45 -0
  12. data/fixtures/vcr_cassettes/examples/add_channels_to_push/004.yml +45 -0
  13. data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
  14. data/fixtures/vcr_cassettes/examples/grant/1944.yml +8 -9
  15. data/fixtures/vcr_cassettes/examples/grant/1945.yml +359 -9
  16. data/fixtures/vcr_cassettes/examples/grant/1946.yml +8 -9
  17. data/fixtures/vcr_cassettes/examples/grant/1947.yml +8 -9
  18. data/fixtures/vcr_cassettes/examples/grant/1948.yml +8 -9
  19. data/fixtures/vcr_cassettes/examples/history/100.yml +46 -0
  20. data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted.yml +46 -0
  21. data/fixtures/vcr_cassettes/examples/history/include_token__encrypted.yml +45 -0
  22. data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted.yml +45 -0
  23. data/fixtures/vcr_cassettes/examples/list_push_provisions/001.yml +46 -0
  24. data/fixtures/vcr_cassettes/examples/list_push_provisions/002.yml +45 -0
  25. data/fixtures/vcr_cassettes/examples/list_push_provisions/003.yml +45 -0
  26. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/001.yml +45 -0
  27. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/002.yml +45 -0
  28. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/003.yml +45 -0
  29. data/fixtures/vcr_cassettes/examples/remove_device_from_push/001.yml +45 -0
  30. data/fixtures/vcr_cassettes/examples/remove_device_from_push/002.yml +45 -0
  31. data/fixtures/vcr_cassettes/examples/remove_device_from_push/003.yml +45 -0
  32. data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
  33. data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
  34. data/fixtures/vcr_cassettes/lib/events/get_channel_members.yml +37 -0
  35. data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
  36. data/fixtures/vcr_cassettes/lib/events/get_memberships1.yml +37 -0
  37. data/fixtures/vcr_cassettes/lib/events/get_memberships2.yml +37 -0
  38. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata1.yml +76 -0
  39. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata2.yml +76 -0
  40. data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
  41. data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
  42. data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
  43. data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
  44. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships1.yml} +8 -9
  45. data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → remove_memberships2.yml} +8 -9
  46. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata1.yml +76 -0
  47. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata2.yml +76 -0
  48. data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
  49. data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
  50. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_add.yml → set_memberships1.yml} +8 -9
  51. data/fixtures/vcr_cassettes/lib/events/set_memberships2.yml +39 -0
  52. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata1.yml +78 -0
  53. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata2.yml +78 -0
  54. data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
  55. data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
  56. data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
  57. data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
  58. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
  59. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
  60. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
  61. data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
  62. data/lib/pubnub/client.rb +18 -15
  63. data/lib/pubnub/client/events.rb +4 -2
  64. data/lib/pubnub/client/paged_history.rb +1 -1
  65. data/lib/pubnub/constants.rb +19 -18
  66. data/lib/pubnub/event.rb +32 -16
  67. data/lib/pubnub/event/formatter.rb +4 -0
  68. data/lib/pubnub/event/signature.rb +22 -7
  69. data/lib/pubnub/events/add_channels_to_push.rb +29 -13
  70. data/lib/pubnub/events/get_all_channels_metadata.rb +104 -0
  71. data/lib/pubnub/events/get_all_uuid_metadata.rb +104 -0
  72. data/lib/pubnub/events/get_channel_members.rb +120 -0
  73. data/lib/pubnub/events/{update_space.rb → get_channel_metadata.rb} +27 -27
  74. data/lib/pubnub/events/get_memberships.rb +120 -0
  75. data/lib/pubnub/events/{create_space.rb → get_uuid_metadata.rb} +27 -25
  76. data/lib/pubnub/events/grant.rb +10 -1
  77. data/lib/pubnub/events/history.rb +17 -2
  78. data/lib/pubnub/events/list_push_provisions.rb +29 -12
  79. data/lib/pubnub/events/remove_channel_members.rb +137 -0
  80. data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +12 -12
  81. data/lib/pubnub/events/remove_channels_from_push.rb +29 -13
  82. data/lib/pubnub/events/remove_device_from_push.rb +30 -14
  83. data/lib/pubnub/events/remove_memberships.rb +137 -0
  84. data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +12 -12
  85. data/lib/pubnub/events/set_channel_members.rb +140 -0
  86. data/lib/pubnub/events/{manage_members.rb → set_channel_metadata.rb} +32 -38
  87. data/lib/pubnub/events/set_memberships.rb +140 -0
  88. data/lib/pubnub/events/{create_user.rb → set_uuid_metadata.rb} +33 -17
  89. data/lib/pubnub/formatter.rb +30 -3
  90. data/lib/pubnub/pam.rb +2 -11
  91. data/lib/pubnub/subscribe_callback.rb +1 -3
  92. data/lib/pubnub/subscribe_event/formatter.rb +26 -17
  93. data/lib/pubnub/subscriber.rb +5 -6
  94. data/lib/pubnub/validators/add_channels_to_push.rb +52 -0
  95. data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
  96. data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
  97. data/lib/pubnub/validators/get_channel_members.rb +39 -0
  98. data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
  99. data/lib/pubnub/validators/get_memberships.rb +39 -0
  100. data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
  101. data/lib/pubnub/validators/grant.rb +37 -2
  102. data/lib/pubnub/validators/list_push_provisions.rb +43 -0
  103. data/lib/pubnub/validators/remove_channel_members.rb +52 -0
  104. data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
  105. data/lib/pubnub/validators/remove_channels_from_push.rb +52 -0
  106. data/lib/pubnub/validators/remove_device_from_push.rb +43 -0
  107. data/lib/pubnub/validators/remove_memberships.rb +52 -0
  108. data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
  109. data/lib/pubnub/validators/set_channel_members.rb +78 -0
  110. data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
  111. data/lib/pubnub/validators/set_memberships.rb +78 -0
  112. data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
  113. data/lib/pubnub/version.rb +1 -1
  114. data/pubnub.gemspec +1 -1
  115. data/spec/examples/add_channels_to_push_spec.rb +178 -0
  116. data/spec/examples/{grant_examples_spec.rb → grant_examples_1_spec.rb} +0 -8973
  117. data/spec/examples/grant_examples_2_spec.rb +9107 -0
  118. data/spec/examples/history_examples_spec.rb +85 -0
  119. data/spec/examples/list_push_provisions_spec.rb +164 -0
  120. data/spec/examples/presence_examples_spec.rb +222 -186
  121. data/spec/examples/remove_channels_from_push_spec.rb +164 -0
  122. data/spec/examples/remove_device_from_push_spec.rb +164 -0
  123. data/spec/examples/revoke_examples_1_spec.rb +27013 -0
  124. data/spec/examples/revoke_examples_2_spec.rb +27012 -0
  125. data/spec/examples/revoke_examples_3_spec.rb +17967 -0
  126. data/spec/examples/status_request_message_count_exceeded_spec.rb +4 -1
  127. data/spec/examples/subscribe_examples_1_spec.rb +26972 -0
  128. data/spec/examples/subscribe_examples_2_spec.rb +19575 -0
  129. data/spec/lib/connection_callback_spec.rb +4 -3
  130. data/spec/lib/event/formatter_spec.rb +22 -0
  131. data/spec/lib/events/channel_metadata_spec.rb +58 -0
  132. data/spec/lib/events/grant_spec.rb +3 -2
  133. data/spec/lib/events/membership_spec.rb +51 -21
  134. data/spec/lib/events/presence_delta_spec.rb +9 -6
  135. data/spec/lib/events/presence_spec.rb +13 -7
  136. data/spec/lib/events/subscribe_spec.rb +102 -65
  137. data/spec/lib/events/uuid_metadata_spec.rb +86 -0
  138. data/spec/lib/subscribe_event/formatter_spec.rb +22 -0
  139. data/spec/lib/super_admin_spec.rb +8 -4
  140. data/spec/spec_helper.rb +24 -8
  141. metadata +124 -79
  142. data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
  143. data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
  144. data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
  145. data/fixtures/vcr_cassettes/lib/events/get_members.yml +0 -38
  146. data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
  147. data/fixtures/vcr_cassettes/lib/events/get_space_memberships.yml +0 -38
  148. data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
  149. data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
  150. data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
  151. data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
  152. data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
  153. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
  154. data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
  155. data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
  156. data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
  157. data/lib/pubnub/events/get_members.rb +0 -93
  158. data/lib/pubnub/events/get_space.rb +0 -74
  159. data/lib/pubnub/events/get_space_memberships.rb +0 -93
  160. data/lib/pubnub/events/get_spaces.rb +0 -90
  161. data/lib/pubnub/events/get_user.rb +0 -74
  162. data/lib/pubnub/events/get_users.rb +0 -90
  163. data/lib/pubnub/events/manage_memberships.rb +0 -105
  164. data/lib/pubnub/events/update_user.rb +0 -86
  165. data/lib/pubnub/validators/create_space.rb +0 -44
  166. data/lib/pubnub/validators/create_user.rb +0 -44
  167. data/lib/pubnub/validators/delete_space.rb +0 -32
  168. data/lib/pubnub/validators/delete_user.rb +0 -32
  169. data/lib/pubnub/validators/get_members.rb +0 -32
  170. data/lib/pubnub/validators/get_space.rb +0 -32
  171. data/lib/pubnub/validators/get_space_memberships.rb +0 -32
  172. data/lib/pubnub/validators/get_spaces.rb +0 -16
  173. data/lib/pubnub/validators/get_user.rb +0 -32
  174. data/lib/pubnub/validators/get_users.rb +0 -16
  175. data/lib/pubnub/validators/manage_members.rb +0 -45
  176. data/lib/pubnub/validators/manage_memberships.rb +0 -45
  177. data/lib/pubnub/validators/push.rb +0 -43
  178. data/lib/pubnub/validators/update_space.rb +0 -45
  179. data/lib/pubnub/validators/update_user.rb +0 -45
  180. data/spec/examples/revoke_examples_spec.rb +0 -71950
  181. data/spec/examples/subscribe_examples_spec.rb +0 -45184
  182. data/spec/lib/events/space_spec.rb +0 -75
  183. data/spec/lib/events/user_spec.rb +0 -75
@@ -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
@@ -0,0 +1,52 @@
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 RemoveChannelMembers event
8
+ module RemoveChannelMembers
9
+ include CommonValidator
10
+
11
+ def validate!
12
+ return if @skip_validate
13
+
14
+ validate_subscribe_key!
15
+ validate_channel!
16
+ validate_members!
17
+ end
18
+
19
+ private
20
+
21
+ def validate_subscribe_key!
22
+ return unless @subscribe_key.nil?
23
+
24
+ raise(
25
+ ArgumentError.new(object: self, message: ':subscribe_key is required for remove channel members event.'),
26
+ ':subscribe_key is required for remove channel members event.'
27
+ )
28
+ end
29
+
30
+ def validate_channel!
31
+ return unless @channel.nil? || @channel.empty?
32
+
33
+ raise(
34
+ ArgumentError.new(object: self, message: ':channel is required for remove channel members event.'),
35
+ ':channel is required for remove channel members event.'
36
+ )
37
+ end
38
+
39
+ def validate_members!
40
+ raise(
41
+ ArgumentError.new(object: self, message: ':uuids is required for remove channel members event.'),
42
+ ':uuids is required for remove channel members event.'
43
+ ) if @uuids.nil? || @uuids.empty?
44
+
45
+ raise(
46
+ ArgumentError.new(object: self, message: ':uuids parameter for remove channel members must be Array.'),
47
+ ':uuids parameter for remove channel members must be Array.'
48
+ ) if @uuids.class != Array
49
+ end
50
+ end
51
+ end
52
+ 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 RemoveChannelMetadata event
8
+ module RemoveChannelMetadata
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 remove channel metadata event.'),
25
+ ':subscribe_key is required for remove 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 remove channel metadata event.'),
34
+ ':channel is required for remove channel metadata event.'
35
+ )
36
+ end
37
+ end
38
+ end
39
+ 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 RemoveChannelsFromPush event
6
+ module RemoveChannelsFromPush
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 RemoveChannelsFromPush 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 RemoveChannelsFromPush 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 RemoveChannelsFromPush 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 RemoveChannelsFromPush event.'
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end