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
@@ -1,44 +0,0 @@
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 CreateSpace event
8
- module CreateSpace
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_data!
15
- end
16
-
17
- private
18
-
19
- def validate_data!
20
- data = @data
21
-
22
- if data.nil?
23
- raise(
24
- ArgumentError.new(
25
- object: self,
26
- message: 'data: No data supplied.'
27
- ),
28
- 'data: No data supplied.'
29
- )
30
- end
31
-
32
- return unless !data[:id] || !data[:name]
33
-
34
- raise(
35
- ArgumentError.new(
36
- object: self,
37
- message: 'data: Space\'s id or name missing.'
38
- ),
39
- 'data: Space\'s id or name missing.'
40
- )
41
- end
42
- end
43
- end
44
- end
@@ -1,44 +0,0 @@
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 CreateUser event
8
- module CreateUser
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_data!
15
- end
16
-
17
- private
18
-
19
- def validate_data!
20
- data = @data
21
-
22
- if data.nil?
23
- raise(
24
- ArgumentError.new(
25
- object: self,
26
- message: 'data: No data supplied.'
27
- ),
28
- 'data: No data supplied.'
29
- )
30
- end
31
-
32
- return unless !data[:id] || !data[:name]
33
-
34
- raise(
35
- ArgumentError.new(
36
- object: self,
37
- message: 'data: Space\'s id or name missing.'
38
- ),
39
- 'data: Space\'s id or name missing.'
40
- )
41
- end
42
- end
43
- end
44
- end
@@ -1,32 +0,0 @@
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 DeleteSpace event
8
- module DeleteSpace
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_space!
15
- end
16
-
17
- private
18
-
19
- def validate_space!
20
- return unless @space_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide space_id.'
26
- ),
27
- 'data: Provide space_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
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 DeleteUser event
8
- module DeleteUser
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_user!
15
- end
16
-
17
- private
18
-
19
- def validate_user!
20
- return unless @user_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide user_id.'
26
- ),
27
- 'data: Provide user_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
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 GetMembers event
8
- module GetMembers
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_space!
15
- end
16
-
17
- private
18
-
19
- def validate_space!
20
- return unless @space_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide space_id.'
26
- ),
27
- 'data: Provide space_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
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 GetSpace event
8
- module GetSpace
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_space!
15
- end
16
-
17
- private
18
-
19
- def validate_space!
20
- return unless @space_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide space_id.'
26
- ),
27
- 'data: Provide space_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
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 GetSpaceMemberships event
8
- module GetSpaceMemberships
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_user!
15
- end
16
-
17
- private
18
-
19
- def validate_user!
20
- return unless @user_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide user_id.'
26
- ),
27
- 'data: Provide user_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,16 +0,0 @@
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 GetSpaces event
8
- module GetSpaces
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
- end
14
- end
15
- end
16
- end
@@ -1,32 +0,0 @@
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 GetUser event
8
- module GetUser
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_user!
15
- end
16
-
17
- private
18
-
19
- def validate_user!
20
- return unless @user_id.nil?
21
-
22
- raise(
23
- ArgumentError.new(
24
- object: self,
25
- message: 'data: Provide user_id.'
26
- ),
27
- 'data: Provide user_id.'
28
- )
29
- end
30
- end
31
- end
32
- end
@@ -1,16 +0,0 @@
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 GetUsers event
8
- module GetUsers
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
- end
14
- end
15
- end
16
- end
@@ -1,45 +0,0 @@
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 ManageMembers event
8
- module ManageMembers
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_space!
15
- validate_data!
16
- end
17
-
18
- private
19
-
20
- def validate_space!
21
- return unless @space_id.nil?
22
-
23
- raise(
24
- ArgumentError.new(
25
- object: self,
26
- message: 'data: Provide space_id.'
27
- ),
28
- 'data: Provide space_id.'
29
- )
30
- end
31
-
32
- def validate_data!
33
- return unless @data.nil?
34
-
35
- raise(
36
- ArgumentError.new(
37
- object: self,
38
- message: 'data: No data supplied.'
39
- ),
40
- 'data: No data supplied.'
41
- )
42
- end
43
- end
44
- end
45
- end
@@ -1,45 +0,0 @@
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 ManageMemberships event
8
- module ManageMemberships
9
- include CommonValidator
10
-
11
- def validate!
12
- return if @skip_validate
13
-
14
- validate_user!
15
- validate_data!
16
- end
17
-
18
- private
19
-
20
- def validate_user!
21
- return unless @user_id.nil?
22
-
23
- raise(
24
- ArgumentError.new(
25
- object: self,
26
- message: 'data: Provide user_id.'
27
- ),
28
- 'data: Provide user_id.'
29
- )
30
- end
31
-
32
- def validate_data!
33
- return unless @data.nil?
34
-
35
- raise(
36
- ArgumentError.new(
37
- object: self,
38
- message: 'data: No data supplied.'
39
- ),
40
- 'data: No data supplied.'
41
- )
42
- end
43
- end
44
- end
45
- end
@@ -1,43 +0,0 @@
1
- # Toplevel Pubnub module.
2
- require 'set'
3
-
4
- module Pubnub
5
- module Validator
6
- # Push related events validator
7
- module Push
8
- include CommonValidator
9
- BASIC_PARAMS = %i[push_token type].freeze
10
- PARAMS_MAP = {
11
- Pubnub::Constants::OPERATION_ADD_CHANNELS_TO_PUSH => BASIC_PARAMS + %i[add],
12
- Pubnub::Constants::OPERATION_LIST_PUSH_PROVISIONS => BASIC_PARAMS,
13
- Pubnub::Constants::OPERATION_REMOVE_CHANNELS_FROM_PUSH => BASIC_PARAMS + %i[remove],
14
- Pubnub::Constants::OPERATION_REMOVE_DEVICE_FROM_PUSH => BASIC_PARAMS
15
- }.freeze
16
-
17
- def validate!
18
- return if @skip_validate
19
-
20
- validate_channel!
21
- end
22
-
23
- private
24
-
25
- def validate_channel!
26
- missing_params = required_params - @given_options.keys
27
- return if missing_params.empty?
28
-
29
- raise(
30
- ArgumentError.new(
31
- object: self,
32
- message: "Following params are required: #{missing_params}"
33
- ),
34
- "Following params are required: #{missing_params}"
35
- )
36
- end
37
-
38
- def required_params
39
- PARAMS_MAP[current_operation]
40
- end
41
- end
42
- end
43
- end