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,90 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds GetSpaces functionality
6
- class GetSpaces < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::GetSpaces
9
- @max_limit = 100
10
-
11
- def initialize(options, app)
12
- @event = :get_spaces
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
- super
28
- end
29
-
30
- private
31
-
32
- def current_operation
33
- Pubnub::Constants::OPERATION_GET_SPACES
34
- end
35
-
36
- def parameters(*_args)
37
- parameters = super
38
- parameters[:start] = @start if @start
39
- parameters[:end] = @end if @end && !@start
40
- parameters[:count] = @count if @count
41
- parameters[:limit] = @limit if @limit && @limit != @max_limit
42
- parameters[:include] = @include if @include
43
-
44
- parameters
45
- end
46
-
47
- def path
48
- '/' + [
49
- 'v1',
50
- 'objects',
51
- @subscribe_key,
52
- 'spaces'
53
- ].join('/')
54
- end
55
-
56
- def valid_envelope(parsed_response, req_res_objects)
57
- Pubnub::Envelope.new(
58
- event: @event,
59
- event_options: @given_options,
60
- timetoken: nil,
61
-
62
- result: {
63
- code: req_res_objects[:response].code,
64
- operation: Pubnub::Constants::OPERATION_GET_SPACES,
65
- client_request: req_res_objects[:request],
66
- server_response: req_res_objects[:response],
67
- data: parsed_response
68
- },
69
-
70
- status: {
71
- code: req_res_objects[:response].code,
72
- operation: Pubnub::Constants::OPERATION_GET_SPACES,
73
- client_request: req_res_objects[:request],
74
- server_response: req_res_objects[:response],
75
- data: nil,
76
- category: Pubnub::Constants::STATUS_ACK,
77
- error: false,
78
- auto_retried: false,
79
-
80
- current_timetoken: nil,
81
- last_timetoken: nil,
82
- subscribed_channels: nil,
83
- subscribed_channel_groups: nil,
84
-
85
- config: get_config
86
- }
87
- )
88
- end
89
- end
90
- end
@@ -1,74 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds GetUser functionality
6
- class GetUser < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::GetUser
9
-
10
- def initialize(options, app)
11
- @event = :get_user
12
- @telemetry_name = :l_obj
13
- @user_id = options[:user_id]
14
- @include = options[:include]
15
- super
16
- end
17
-
18
- private
19
-
20
- def current_operation
21
- Pubnub::Constants::OPERATION_GET_USER
22
- end
23
-
24
- def parameters(*_args)
25
- parameters = super
26
- parameters[:include] = @include if @include
27
- parameters
28
- end
29
-
30
- def path
31
- '/' + [
32
- 'v1',
33
- 'objects',
34
- @subscribe_key,
35
- 'users',
36
- @user_id
37
- ].join('/')
38
- end
39
-
40
- def valid_envelope(parsed_response, req_res_objects)
41
- Pubnub::Envelope.new(
42
- event: @event,
43
- event_options: @given_options,
44
- timetoken: nil,
45
-
46
- result: {
47
- code: req_res_objects[:response].code,
48
- operation: Pubnub::Constants::OPERATION_GET_USER,
49
- client_request: req_res_objects[:request],
50
- server_response: req_res_objects[:response],
51
- data: parsed_response
52
- },
53
-
54
- status: {
55
- code: req_res_objects[:response].code,
56
- operation: Pubnub::Constants::OPERATION_GET_USER,
57
- client_request: req_res_objects[:request],
58
- server_response: req_res_objects[:response],
59
- data: nil,
60
- category: Pubnub::Constants::STATUS_ACK,
61
- error: false,
62
- auto_retried: false,
63
-
64
- current_timetoken: nil,
65
- last_timetoken: nil,
66
- subscribed_channels: nil,
67
- subscribed_channel_groups: nil,
68
-
69
- config: get_config
70
- }
71
- )
72
- end
73
- end
74
- end
@@ -1,90 +0,0 @@
1
- # Toplevel Pubnub module.
2
- # frozen_string_literal: true
3
-
4
- module Pubnub
5
- # Holds GetUsers functionality
6
- class GetUsers < SingleEvent
7
- include Concurrent::Async
8
- include Pubnub::Validator::GetUsers
9
- @max_limit = 100
10
-
11
- def initialize(options, app)
12
- @event = :get_users
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
- super
28
- end
29
-
30
- private
31
-
32
- def current_operation
33
- Pubnub::Constants::OPERATION_GET_USERS
34
- end
35
-
36
- def parameters(*_args)
37
- parameters = super
38
- parameters[:start] = @start if @start
39
- parameters[:end] = @end if @end && !@start
40
- parameters[:count] = @count if @count
41
- parameters[:limit] = @limit if @limit && @limit != @max_limit
42
- parameters[:include] = @include if @include
43
-
44
- parameters
45
- end
46
-
47
- def path
48
- '/' + [
49
- 'v1',
50
- 'objects',
51
- @subscribe_key,
52
- 'users'
53
- ].join('/')
54
- end
55
-
56
- def valid_envelope(parsed_response, req_res_objects)
57
- Pubnub::Envelope.new(
58
- event: @event,
59
- event_options: @given_options,
60
- timetoken: nil,
61
-
62
- result: {
63
- code: req_res_objects[:response].code,
64
- operation: Pubnub::Constants::OPERATION_GET_USERS,
65
- client_request: req_res_objects[:request],
66
- server_response: req_res_objects[:response],
67
- data: parsed_response
68
- },
69
-
70
- status: {
71
- code: req_res_objects[:response].code,
72
- operation: Pubnub::Constants::OPERATION_GET_USERS,
73
- client_request: req_res_objects[:request],
74
- server_response: req_res_objects[:response],
75
- data: nil,
76
- category: Pubnub::Constants::STATUS_ACK,
77
- error: false,
78
- auto_retried: false,
79
-
80
- current_timetoken: nil,
81
- last_timetoken: nil,
82
- subscribed_channels: nil,
83
- subscribed_channel_groups: nil,
84
-
85
- config: get_config
86
- }
87
- )
88
- end
89
- end
90
- 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