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.

Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.pubnub.yml +32 -24
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.md +1 -1
  6. data/VERSION +1 -1
  7. data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
  8. data/fixtures/vcr_cassettes/examples/grant/1945.yml +355 -4
  9. data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
  10. data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
  11. data/fixtures/vcr_cassettes/lib/events/{get_space_memberships.yml → get_channel_members.yml} +5 -6
  12. data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
  13. data/fixtures/vcr_cassettes/lib/events/{get_members.yml → get_memberships.yml} +10 -11
  14. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata.yml +76 -0
  15. data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
  16. data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
  17. data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
  18. data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
  19. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships.yml} +8 -9
  20. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata.yml +76 -0
  21. data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
  22. data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
  23. data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → set_memberships.yml} +8 -9
  24. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata.yml +78 -0
  25. data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
  26. data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
  27. data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
  28. data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
  29. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
  30. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
  31. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
  32. data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
  33. data/lib/pubnub/client.rb +14 -14
  34. data/lib/pubnub/client/events.rb +4 -2
  35. data/lib/pubnub/constants.rb +19 -18
  36. data/lib/pubnub/event.rb +29 -15
  37. data/lib/pubnub/event/signature.rb +22 -7
  38. data/lib/pubnub/events/get_all_channels_metadata.rb +92 -0
  39. data/lib/pubnub/events/get_all_uuid_metadata.rb +92 -0
  40. data/lib/pubnub/events/get_channel_members.rb +100 -0
  41. data/lib/pubnub/events/{get_user.rb → get_channel_metadata.rb} +22 -15
  42. data/lib/pubnub/events/get_memberships.rb +100 -0
  43. data/lib/pubnub/events/{get_space.rb → get_uuid_metadata.rb} +22 -15
  44. data/lib/pubnub/events/grant.rb +9 -7
  45. data/lib/pubnub/events/remove_channel_members.rb +117 -0
  46. data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +12 -12
  47. data/lib/pubnub/events/remove_memberships.rb +117 -0
  48. data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +12 -12
  49. data/lib/pubnub/events/set_channel_members.rb +120 -0
  50. data/lib/pubnub/events/{create_space.rb → set_channel_metadata.rb} +26 -16
  51. data/lib/pubnub/events/set_memberships.rb +120 -0
  52. data/lib/pubnub/events/{update_space.rb → set_uuid_metadata.rb} +27 -18
  53. data/lib/pubnub/pam.rb +2 -11
  54. data/lib/pubnub/subscribe_callback.rb +1 -3
  55. data/lib/pubnub/subscribe_event/formatter.rb +21 -17
  56. data/lib/pubnub/subscriber.rb +5 -6
  57. data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
  58. data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
  59. data/lib/pubnub/validators/get_channel_members.rb +39 -0
  60. data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
  61. data/lib/pubnub/validators/get_memberships.rb +39 -0
  62. data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
  63. data/lib/pubnub/validators/grant.rb +37 -2
  64. data/lib/pubnub/validators/remove_channel_members.rb +52 -0
  65. data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
  66. data/lib/pubnub/validators/remove_memberships.rb +52 -0
  67. data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
  68. data/lib/pubnub/validators/set_channel_members.rb +78 -0
  69. data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
  70. data/lib/pubnub/validators/set_memberships.rb +78 -0
  71. data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
  72. data/lib/pubnub/version.rb +1 -1
  73. data/spec/examples/grant_examples_spec.rb +2 -2
  74. data/spec/lib/events/channel_metadata_spec.rb +58 -0
  75. data/spec/lib/events/grant_spec.rb +3 -2
  76. data/spec/lib/events/membership_spec.rb +25 -22
  77. data/spec/lib/events/subscribe_spec.rb +58 -45
  78. data/spec/lib/events/uuid_metadata_spec.rb +56 -0
  79. data/spec/spec_helper.rb +1 -1
  80. metadata +55 -57
  81. data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
  82. data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
  83. data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
  84. data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
  85. data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
  86. data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
  87. data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
  88. data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
  89. data/fixtures/vcr_cassettes/lib/events/manage_memberships_add.yml +0 -40
  90. data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
  91. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
  92. data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
  93. data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
  94. data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
  95. data/lib/pubnub/events/create_user.rb +0 -84
  96. data/lib/pubnub/events/get_members.rb +0 -93
  97. data/lib/pubnub/events/get_space_memberships.rb +0 -93
  98. data/lib/pubnub/events/get_spaces.rb +0 -90
  99. data/lib/pubnub/events/get_users.rb +0 -90
  100. data/lib/pubnub/events/manage_members.rb +0 -105
  101. data/lib/pubnub/events/manage_memberships.rb +0 -105
  102. data/lib/pubnub/events/update_user.rb +0 -86
  103. data/lib/pubnub/validators/create_space.rb +0 -44
  104. data/lib/pubnub/validators/create_user.rb +0 -44
  105. data/lib/pubnub/validators/delete_space.rb +0 -32
  106. data/lib/pubnub/validators/delete_user.rb +0 -32
  107. data/lib/pubnub/validators/get_members.rb +0 -32
  108. data/lib/pubnub/validators/get_space.rb +0 -32
  109. data/lib/pubnub/validators/get_space_memberships.rb +0 -32
  110. data/lib/pubnub/validators/get_spaces.rb +0 -16
  111. data/lib/pubnub/validators/get_user.rb +0 -32
  112. data/lib/pubnub/validators/get_users.rb +0 -16
  113. data/lib/pubnub/validators/manage_members.rb +0 -45
  114. data/lib/pubnub/validators/manage_memberships.rb +0 -45
  115. data/lib/pubnub/validators/update_space.rb +0 -45
  116. data/lib/pubnub/validators/update_user.rb +0 -45
  117. data/spec/lib/events/space_spec.rb +0 -75
  118. data/spec/lib/events/user_spec.rb +0 -75
@@ -1,105 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds ManageMembers functionality
6
- class ManageMembers < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::ManageMembers
9
- @max_limit = 100
10
-
11
- def initialize(options, app)
12
- @event = :manage_members
13
- @telemetry_name = :l_obj
14
- @start = options[:start]
15
- @end = if options[:end].nil?
16
- @max_limit
17
- else
18
- @end = options[:end]
19
- end
20
- @limit = options[:limit]
21
- @count = if options[:count].nil?
22
- false
23
- else
24
- options[:count]
25
- end
26
- @include = options[:include]
27
- @space_id = options[:space_id]
28
- @data = options[:data]
29
- super
30
- end
31
-
32
- def fire
33
- Pubnub.logger.debug('Pubnub::ManageMembers') { "Fired event #{self.class}" }
34
-
35
- body = Formatter.format_message(@data, @cipher_key, false)
36
- response = send_request(body)
37
-
38
- envelopes = fire_callbacks(handle(response, uri))
39
- finalize_event(envelopes)
40
- envelopes
41
- end
42
-
43
- private
44
-
45
- def current_operation
46
- Pubnub::Constants::OPERATION_MANAGE_MEMBERS
47
- end
48
-
49
- def parameters(*_args)
50
- parameters = super
51
- parameters[:start] = @start if @start
52
- parameters[:end] = @end if @end && !@start
53
- parameters[:count] = @count if @count
54
- parameters[:limit] = @limit if @limit && @limit != @max_limit
55
- parameters[:include] = @include if @include
56
-
57
- parameters
58
- end
59
-
60
- def path
61
- '/' + [
62
- 'v1',
63
- 'objects',
64
- @subscribe_key,
65
- 'spaces',
66
- @space_id,
67
- 'users'
68
- ].join('/')
69
- end
70
-
71
- def valid_envelope(parsed_response, req_res_objects)
72
- Pubnub::Envelope.new(
73
- event: @event,
74
- event_options: @given_options,
75
- timetoken: nil,
76
-
77
- result: {
78
- code: req_res_objects[:response].code,
79
- operation: Pubnub::Constants::OPERATION_MANAGE_MEMBERS,
80
- client_request: req_res_objects[:request],
81
- server_response: req_res_objects[:response],
82
- data: parsed_response
83
- },
84
-
85
- status: {
86
- code: req_res_objects[:response].code,
87
- operation: Pubnub::Constants::OPERATION_MANAGE_MEMBERS,
88
- client_request: req_res_objects[:request],
89
- server_response: req_res_objects[:response],
90
- data: nil,
91
- category: Pubnub::Constants::STATUS_ACK,
92
- error: false,
93
- auto_retried: false,
94
-
95
- current_timetoken: nil,
96
- last_timetoken: nil,
97
- subscribed_channels: nil,
98
- subscribed_channel_groups: nil,
99
-
100
- config: get_config
101
- }
102
- )
103
- end
104
- end
105
- end
@@ -1,105 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds ManageMemberships functionality
6
- class ManageMemberships < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::ManageMemberships
9
- @max_limit = 100
10
-
11
- def initialize(options, app)
12
- @event = :manage_memberships
13
- @telemetry_name = :l_obj
14
- @start = options[:start]
15
- @end = if options[:end].nil?
16
- @max_limit
17
- else
18
- @end = options[:end]
19
- end
20
- @limit = options[:limit]
21
- @count = if options[:count].nil?
22
- false
23
- else
24
- options[:count]
25
- end
26
- @include = options[:include]
27
- @user_id = options[:user_id]
28
- @data = options[:data]
29
- super
30
- end
31
-
32
- def fire
33
- Pubnub.logger.debug('Pubnub::ManageMemberships') { "Fired event #{self.class}" }
34
-
35
- body = Formatter.format_message(@data, @cipher_key, false)
36
- response = send_request(body)
37
-
38
- envelopes = fire_callbacks(handle(response, uri))
39
- finalize_event(envelopes)
40
- envelopes
41
- end
42
-
43
- private
44
-
45
- def current_operation
46
- Pubnub::Constants::OPERATION_MANAGE_MEMBERSHIPS
47
- end
48
-
49
- def parameters(*_args)
50
- parameters = super
51
- parameters[:start] = @start if @start
52
- parameters[:end] = @end if @end && !@start
53
- parameters[:count] = @count if @count
54
- parameters[:limit] = @limit if @limit && @limit != @max_limit
55
- parameters[:include] = @include if @include
56
-
57
- parameters
58
- end
59
-
60
- def path
61
- '/' + [
62
- 'v1',
63
- 'objects',
64
- @subscribe_key,
65
- 'users',
66
- @user_id,
67
- 'spaces'
68
- ].join('/')
69
- end
70
-
71
- def valid_envelope(parsed_response, req_res_objects)
72
- Pubnub::Envelope.new(
73
- event: @event,
74
- event_options: @given_options,
75
- timetoken: nil,
76
-
77
- result: {
78
- code: req_res_objects[:response].code,
79
- operation: Pubnub::Constants::OPERATION_MANAGE_MEMBERSHIPS,
80
- client_request: req_res_objects[:request],
81
- server_response: req_res_objects[:response],
82
- data: parsed_response
83
- },
84
-
85
- status: {
86
- code: req_res_objects[:response].code,
87
- operation: Pubnub::Constants::OPERATION_MANAGE_MEMBERSHIPS,
88
- client_request: req_res_objects[:request],
89
- server_response: req_res_objects[:response],
90
- data: nil,
91
- category: Pubnub::Constants::STATUS_ACK,
92
- error: false,
93
- auto_retried: false,
94
-
95
- current_timetoken: nil,
96
- last_timetoken: nil,
97
- subscribed_channels: nil,
98
- subscribed_channel_groups: nil,
99
-
100
- config: get_config
101
- }
102
- )
103
- end
104
- end
105
- end
@@ -1,86 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds UpdateUser functionality
6
- class UpdateUser < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::UpdateUser
9
-
10
- def initialize(options, app)
11
- @event = :update_user
12
- @telemetry_name = :l_obj
13
- @user_id = options[:user_id]
14
- @data = options[:data]
15
- @include = options[:include]
16
- super
17
- end
18
-
19
- def fire
20
- Pubnub.logger.debug('Pubnub::UpdateUser') { "Fired event #{self.class}" }
21
-
22
- body = Formatter.format_message(@data, @cipher_key, false)
23
- response = send_request(body)
24
-
25
- envelopes = fire_callbacks(handle(response, uri))
26
- finalize_event(envelopes)
27
- envelopes
28
- end
29
-
30
- private
31
-
32
- def current_operation
33
- Pubnub::Constants::OPERATION_UPDATE_USER
34
- end
35
-
36
- def parameters(*_args)
37
- parameters = super
38
- parameters[:include] = @include if @include
39
- parameters
40
- end
41
-
42
- def path
43
- '/' + [
44
- 'v1',
45
- 'objects',
46
- @subscribe_key,
47
- 'users',
48
- @user_id
49
- ].join('/')
50
- end
51
-
52
- def valid_envelope(parsed_response, req_res_objects)
53
- Pubnub::Envelope.new(
54
- event: @event,
55
- event_options: @given_options,
56
- timetoken: nil,
57
-
58
- result: {
59
- code: req_res_objects[:response].code,
60
- operation: Pubnub::Constants::OPERATION_UPDATE_USER,
61
- client_request: req_res_objects[:request],
62
- server_response: req_res_objects[:response],
63
- data: parsed_response
64
- },
65
-
66
- status: {
67
- code: req_res_objects[:response].code,
68
- operation: Pubnub::Constants::OPERATION_UPDATE_USER,
69
- client_request: req_res_objects[:request],
70
- server_response: req_res_objects[:response],
71
- data: nil,
72
- category: Pubnub::Constants::STATUS_ACK,
73
- error: false,
74
- auto_retried: false,
75
-
76
- current_timetoken: nil,
77
- last_timetoken: nil,
78
- subscribed_channels: nil,
79
- subscribed_channel_groups: nil,
80
-
81
- config: get_config
82
- }
83
- )
84
- end
85
- end
86
- 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 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