pubnub 4.1.6 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pubnub might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.pubnub.yml +40 -6
- data/.travis.yml +1 -1
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/lib/events/get_users.yml +40 -0
- data/lib/pubnub/client.rb +14 -0
- data/lib/pubnub/client/events.rb +3 -1
- data/lib/pubnub/constants.rb +18 -1
- data/lib/pubnub/event.rb +12 -4
- data/lib/pubnub/events/create_space.rb +84 -0
- data/lib/pubnub/events/create_user.rb +84 -0
- data/lib/pubnub/events/delete_space.rb +78 -0
- data/lib/pubnub/events/delete_user.rb +78 -0
- data/lib/pubnub/events/get_members.rb +93 -0
- data/lib/pubnub/events/get_space.rb +74 -0
- data/lib/pubnub/events/get_space_memberships.rb +93 -0
- data/lib/pubnub/events/get_spaces.rb +90 -0
- data/lib/pubnub/events/get_user.rb +74 -0
- data/lib/pubnub/events/get_users.rb +90 -0
- data/lib/pubnub/events/manage_members.rb +105 -0
- data/lib/pubnub/events/manage_memberships.rb +105 -0
- data/lib/pubnub/events/update_space.rb +86 -0
- data/lib/pubnub/events/update_user.rb +86 -0
- data/lib/pubnub/validators/create_space.rb +44 -0
- data/lib/pubnub/validators/create_user.rb +44 -0
- data/lib/pubnub/validators/delete_space.rb +32 -0
- data/lib/pubnub/validators/delete_user.rb +32 -0
- data/lib/pubnub/validators/get_members.rb +32 -0
- data/lib/pubnub/validators/get_space.rb +32 -0
- data/lib/pubnub/validators/get_space_memberships.rb +32 -0
- data/lib/pubnub/validators/get_spaces.rb +16 -0
- data/lib/pubnub/validators/get_user.rb +32 -0
- data/lib/pubnub/validators/get_users.rb +16 -0
- data/lib/pubnub/validators/manage_members.rb +45 -0
- data/lib/pubnub/validators/manage_memberships.rb +45 -0
- data/lib/pubnub/validators/update_space.rb +45 -0
- data/lib/pubnub/validators/update_user.rb +45 -0
- data/lib/pubnub/version.rb +1 -1
- data/spec/lib/events/membership_spec.rb +69 -0
- data/spec/lib/events/space_spec.rb +75 -0
- data/spec/lib/events/user_spec.rb +75 -0
- metadata +37 -2
@@ -0,0 +1,90 @@
|
|
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
|
@@ -0,0 +1,105 @@
|
|
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
|
@@ -0,0 +1,105 @@
|
|
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
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# Toplevel Pubnub module.
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Pubnub
|
5
|
+
# Holds UpdateSpace functionality
|
6
|
+
class UpdateSpace < SingleEvent
|
7
|
+
include Concurrent::Async
|
8
|
+
include Pubnub::Validator::UpdateSpace
|
9
|
+
|
10
|
+
def initialize(options, app)
|
11
|
+
@event = :update_space
|
12
|
+
@telemetry_name = :l_obj
|
13
|
+
@space_id = options[:space_id]
|
14
|
+
@data = options[:data]
|
15
|
+
@include = options[:include]
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def fire
|
20
|
+
Pubnub.logger.debug('Pubnub::UpdateSpace') { "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_SPACE
|
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
|
+
'spaces',
|
48
|
+
@space_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_SPACE,
|
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_SPACE,
|
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
|
@@ -0,0 +1,86 @@
|
|
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
|