zoom_rb 1.1.2 → 1.1.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +1 -1
- data/lib/zoom/actions/webinar.rb +3 -0
- data/lib/zoom/actions.rb +1 -1
- data/lib/zoom/error.rb +7 -0
- data/lib/zoom/utils.rb +10 -3
- data/lib/zoom/version.rb +1 -1
- data/spec/fixtures/webinar/past_webinars_absentees.json +37 -0
- data/spec/lib/zoom/actions/groups/create_spec.rb +2 -2
- data/spec/lib/zoom/actions/groups/update_spec.rb +5 -5
- data/spec/lib/zoom/actions/im/chat/channels/get_spec.rb +1 -1
- data/spec/lib/zoom/actions/user/update_email_spec.rb +1 -1
- data/spec/lib/zoom/actions/user/update_status_spec.rb +1 -1
- data/spec/lib/zoom/actions/webinar/past_webinar_absentees_spec.rb +42 -0
- data/spec/lib/zoom/actions_spec.rb +1 -0
- data/spec/lib/zoom/utils_spec.rb +35 -6
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 891b312a2bfaf07b88b453c90875e5611d81c75ddf62fe0874712d624f5defdb
|
4
|
+
data.tar.gz: 90ea1015c081c3607f44c7693bd31f9e64ee118b09bf0b7099e46ef89564c177
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbeb2d5bdcf4b16bc581679f12044301f1cc18e533bcf97a97b6d63002123e71f798098f582305f7a5948862f896e7e4fa8bfe9fac7270e540567912a2c48426
|
7
|
+
data.tar.gz: 2d853dab47d2ee2df3b0f431db12ec88f1e4b7f8c1656f2ccf811adedf08a98dde36c7b52a6e7b892262549844e44cedf9511c733aaaba5fb081fa578650062b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 1.1.2
|
2
|
+
|
3
|
+
### New Features
|
4
|
+
|
5
|
+
* Add ServerToServer OAuth client [#423](https://github.com/hintmedia/zoom_rb/pull/423)
|
6
|
+
|
7
|
+
### Fixes
|
8
|
+
|
9
|
+
* Webinar Settings API permits `language_interpretation` key/values [#424](https://github.com/hintmedia/zoom_rb/pull/424)
|
10
|
+
* Check if response is a `Hash` [#421](https://github.com/hintmedia/zoom_rb/pull/421)
|
11
|
+
|
12
|
+
|
1
13
|
# 1.1.1
|
2
14
|
|
3
15
|
### Fixes
|
data/Gemfile.lock
CHANGED
data/lib/zoom/actions/webinar.rb
CHANGED
@@ -77,6 +77,9 @@ module Zoom
|
|
77
77
|
get 'webinar_poll_get', '/webinars/:webinar_id/polls/:poll_id'
|
78
78
|
|
79
79
|
get 'webinar_panelist_list', '/webinars/:webinar_id/panelists'
|
80
|
+
|
81
|
+
get 'past_webinars_absentees', '/past_webinars/:webinar_uuid/absentees',
|
82
|
+
permit: %i[occurrence_id page_size next_page_token]
|
80
83
|
end
|
81
84
|
end
|
82
85
|
end
|
data/lib/zoom/actions.rb
CHANGED
@@ -30,7 +30,7 @@ module Zoom
|
|
30
30
|
client, method, parsed_path, params, request_options, oauth =
|
31
31
|
args.values_at :client, :method, :parsed_path, :params, :request_options, :oauth
|
32
32
|
case method
|
33
|
-
when :get
|
33
|
+
when :get, :delete
|
34
34
|
request_options[:query] = params
|
35
35
|
when :post, :put, :patch
|
36
36
|
request_options[:body] =
|
data/lib/zoom/error.rb
CHANGED
@@ -15,4 +15,11 @@ module Zoom
|
|
15
15
|
class ParameterNotPermitted < StandardError; end
|
16
16
|
class ParameterValueNotPermitted < StandardError; end
|
17
17
|
class AuthenticationError < StandardError; end
|
18
|
+
class BadRequest < StandardError; end
|
19
|
+
class Unauthorized < StandardError; end
|
20
|
+
class Forbidden < StandardError; end
|
21
|
+
class NotFound < StandardError; end
|
22
|
+
class Conflict < StandardError; end
|
23
|
+
class TooManyRequests < StandardError; end
|
24
|
+
class InternalServerError < StandardError; end
|
18
25
|
end
|
data/lib/zoom/utils.rb
CHANGED
@@ -15,10 +15,17 @@ module Zoom
|
|
15
15
|
return response unless response.is_a?(Hash) && response.key?('code')
|
16
16
|
|
17
17
|
code = response['code']
|
18
|
-
|
19
|
-
raise AuthenticationError, build_error(response) if code == 124
|
20
18
|
error_hash = build_error(response)
|
21
|
-
|
19
|
+
|
20
|
+
raise AuthenticationError, error_hash if code == 124
|
21
|
+
raise BadRequest, error_hash if code == 400
|
22
|
+
raise Unauthorized, error_hash if code == 401
|
23
|
+
raise Forbidden, error_hash if code == 403
|
24
|
+
raise NotFound, error_hash if code == 404
|
25
|
+
raise Conflict, error_hash if code == 409
|
26
|
+
raise TooManyRequests, error_hash if code == 429
|
27
|
+
raise InternalServerError, error_hash if code == 500
|
28
|
+
raise Error.new(error_hash, error_hash)
|
22
29
|
end
|
23
30
|
|
24
31
|
def build_error(response)
|
data/lib/zoom/version.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
"next_page_token": "w7587w4eiyfsudgf",
|
3
|
+
"page_count": 1,
|
4
|
+
"page_number": 1,
|
5
|
+
"page_size": 30,
|
6
|
+
"total_records": 20,
|
7
|
+
"registrants": [
|
8
|
+
{
|
9
|
+
"id": "9tboDiHUQAeOnbmudzWa5g",
|
10
|
+
"address": "1800 Amphibious Blvd.",
|
11
|
+
"city": "Mountain View",
|
12
|
+
"comments": "Looking forward to the discussion.",
|
13
|
+
"country": "US",
|
14
|
+
"custom_questions": [
|
15
|
+
{
|
16
|
+
"title": "What do you hope to learn from this?",
|
17
|
+
"value": "Look forward to learning how you come up with new recipes and what other services you offer."
|
18
|
+
}
|
19
|
+
],
|
20
|
+
"email": "jchill@example.com",
|
21
|
+
"first_name": "Jill",
|
22
|
+
"industry": "Food",
|
23
|
+
"job_title": "Chef",
|
24
|
+
"last_name": "Chill",
|
25
|
+
"no_of_employees": "1-20",
|
26
|
+
"org": "Cooking Org",
|
27
|
+
"phone": "5550100",
|
28
|
+
"purchasing_time_frame": "1-3 months",
|
29
|
+
"role_in_purchase_process": "Influencer",
|
30
|
+
"state": "CA",
|
31
|
+
"status": "approved",
|
32
|
+
"zip": "94045",
|
33
|
+
"create_time": "2022-03-22T05:59:09Z",
|
34
|
+
"join_url": "https://example.com/j/11111"
|
35
|
+
}
|
36
|
+
]
|
37
|
+
}
|
@@ -44,7 +44,7 @@ describe Zoom::Actions::Groups do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'raises an error' do
|
47
|
-
expect { response }.to raise_error(Zoom::
|
47
|
+
expect { response }.to raise_error(Zoom::Conflict)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -59,7 +59,7 @@ describe Zoom::Actions::Groups do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'raises an error' do
|
62
|
-
expect { response }.to raise_error(Zoom::
|
62
|
+
expect { response }.to raise_error(Zoom::TooManyRequests)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -32,12 +32,12 @@ describe Zoom::Actions::Groups do
|
|
32
32
|
:patch,
|
33
33
|
zoom_url("/groups/#{args[:group_id]}")
|
34
34
|
).to_return(status: 404,
|
35
|
-
body:
|
35
|
+
body: '{ "code": 404, "message": "Group name Zoom Group Name is already in use." }',
|
36
36
|
headers: { 'Content-Type' => 'application/json' })
|
37
37
|
end
|
38
38
|
|
39
|
-
it 'raises
|
40
|
-
expect { zc.group_update(args) }.to raise_error(Zoom::
|
39
|
+
it 'raises Zoom::NotFound' do
|
40
|
+
expect { zc.group_update(args) }.to raise_error(Zoom::NotFound)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -51,8 +51,8 @@ describe Zoom::Actions::Groups do
|
|
51
51
|
headers: { 'Content-Type' => 'application/json' })
|
52
52
|
end
|
53
53
|
|
54
|
-
it 'raises
|
55
|
-
expect { zc.group_update(args) }.to raise_error(Zoom::
|
54
|
+
it 'raises Zoom::Conflict' do
|
55
|
+
expect { zc.group_update(args) }.to raise_error(Zoom::Conflict)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
@@ -38,7 +38,7 @@ describe Zoom::Actions::IM::Chat do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'raises Zoom::Error exception' do
|
41
|
-
expect { zc.get_chat_channels(args) }.to raise_error(Zoom::
|
41
|
+
expect { zc.get_chat_channels(args) }.to raise_error(Zoom::BadRequest, {
|
42
42
|
base: "Unauthorized request. You do not have permission to access this user’s channel information."
|
43
43
|
}.to_s)
|
44
44
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Zoom::Actions::Webinar do
|
4
|
+
let(:zc) { zoom_client }
|
5
|
+
let(:args) { { webinar_uuid: '123456789' } }
|
6
|
+
|
7
|
+
describe '#past_webinars_absentees' do
|
8
|
+
context 'with a valid response' do
|
9
|
+
before :each do
|
10
|
+
stub_request(
|
11
|
+
:get,
|
12
|
+
zoom_url("/past_webinars/#{args[:webinar_uuid]}/absentees")
|
13
|
+
).to_return(status: 200,
|
14
|
+
body: json_response('webinar', 'past_webinars_absentees'),
|
15
|
+
headers: { 'Content-Type' => 'application/json' })
|
16
|
+
end
|
17
|
+
|
18
|
+
it "requires a 'uuid' argument" do
|
19
|
+
expect { zc.past_webinars_absentees(filter_key(args, :webinar_uuid)) }.to raise_error(Zoom::ParameterMissing, [:webinar_uuid].to_s)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns a webinar instance with registrants as an array' do
|
23
|
+
expect(zc.past_webinars_absentees(args)['registrants']).to be_kind_of(Array)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with a 4xx response' do
|
28
|
+
before :each do
|
29
|
+
stub_request(
|
30
|
+
:get,
|
31
|
+
zoom_url("/past_webinars/#{args[:webinar_uuid]}/absentees")
|
32
|
+
).to_return(status: 404,
|
33
|
+
body: json_response('error', 'validation'),
|
34
|
+
headers: { 'Content-Type' => 'application/json' })
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'raises Zoom::Error exception' do
|
38
|
+
expect { zc.past_webinars_absentees(args) }.to raise_error(Zoom::Error)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/lib/zoom/utils_spec.rb
CHANGED
@@ -16,13 +16,43 @@ describe Zoom::Utils do
|
|
16
16
|
|
17
17
|
describe '#raise_if_error!' do
|
18
18
|
it 'raises Zoom::AuthenticationError if error is present and code = 124' do
|
19
|
-
response = { 'code' => 124, 'message' => '
|
19
|
+
response = { 'code' => 124, 'message' => 'Authentication error.' }
|
20
20
|
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::AuthenticationError)
|
21
21
|
end
|
22
22
|
|
23
|
-
it 'raises Zoom::
|
24
|
-
response = { 'code' => 400, 'message' => '
|
25
|
-
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::
|
23
|
+
it 'raises Zoom::BadRequest if error is present and code = 400' do
|
24
|
+
response = { 'code' => 400, 'message' => 'Bas request.' }
|
25
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::BadRequest)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'raises Zoom::Unauthorized if error is present and code = 401' do
|
29
|
+
response = { 'code' => 401, 'message' => 'Unauthorized.' }
|
30
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::Unauthorized)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'raises Zoom::Forbidden if error is present and code = 403' do
|
34
|
+
response = { 'code' => 403, 'message' => 'Forbidden.' }
|
35
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::Forbidden)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'raises Zoom::NotFound if error is present and code = 404' do
|
39
|
+
response = { 'code' => 404, 'message' => 'NotFound.' }
|
40
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::NotFound)
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'raises Zoom::Conflict if error is present and code = 409' do
|
44
|
+
response = { 'code' => 409, 'message' => 'Conflict.' }
|
45
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::Conflict)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'raises Zoom::TooManyRequests if error is present and code = 429' do
|
49
|
+
response = { 'code' => 429, 'message' => 'Too many requests.' }
|
50
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::TooManyRequests)
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'raises Zoom::InternalServerError if error is present and code = 500' do
|
54
|
+
response = { 'code' => 500, 'message' => 'Internal server error.' }
|
55
|
+
expect { Utils.raise_if_error!(response) }.to raise_error(Zoom::InternalServerError)
|
26
56
|
end
|
27
57
|
|
28
58
|
it 'does not raise Zoom::Error if error is not present' do
|
@@ -35,11 +65,10 @@ describe Zoom::Utils do
|
|
35
65
|
expect { Utils.raise_if_error!(response) }.to_not raise_error
|
36
66
|
end
|
37
67
|
|
38
|
-
it 'raises Zoom::Error if http code is not
|
68
|
+
it 'raises Zoom::Error if http code is not in [124, 400, 401, 403, 404, 429, 500]' do
|
39
69
|
response = { 'code' => 180, 'message' => 'lol error' }
|
40
70
|
expect { Utils.raise_if_error!(response, 400) }.to raise_error(Zoom::Error)
|
41
71
|
end
|
42
|
-
|
43
72
|
end
|
44
73
|
|
45
74
|
describe '#extract_options!' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zoom_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Boe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -298,6 +298,7 @@ files:
|
|
298
298
|
- spec/fixtures/webinar/list.json
|
299
299
|
- spec/fixtures/webinar/panelist_list.json
|
300
300
|
- spec/fixtures/webinar/past_webinar_list.json
|
301
|
+
- spec/fixtures/webinar/past_webinars_absentees.json
|
301
302
|
- spec/fixtures/webinar/poll_get.json
|
302
303
|
- spec/fixtures/webinar/polls_list.json
|
303
304
|
- spec/fixtures/webinar/registrant/add.json
|
@@ -434,6 +435,7 @@ files:
|
|
434
435
|
- spec/lib/zoom/actions/webinar/list_registration_spec.rb
|
435
436
|
- spec/lib/zoom/actions/webinar/list_spec.rb
|
436
437
|
- spec/lib/zoom/actions/webinar/panelist_list_spec.rb
|
438
|
+
- spec/lib/zoom/actions/webinar/past_webinar_absentees_spec.rb
|
437
439
|
- spec/lib/zoom/actions/webinar/past_webinar_list_spec.rb
|
438
440
|
- spec/lib/zoom/actions/webinar/poll_get_spec.rb
|
439
441
|
- spec/lib/zoom/actions/webinar/polls_list_spec.rb
|
@@ -578,6 +580,7 @@ test_files:
|
|
578
580
|
- spec/fixtures/webinar/list.json
|
579
581
|
- spec/fixtures/webinar/panelist_list.json
|
580
582
|
- spec/fixtures/webinar/past_webinar_list.json
|
583
|
+
- spec/fixtures/webinar/past_webinars_absentees.json
|
581
584
|
- spec/fixtures/webinar/poll_get.json
|
582
585
|
- spec/fixtures/webinar/polls_list.json
|
583
586
|
- spec/fixtures/webinar/registrant/add.json
|
@@ -714,6 +717,7 @@ test_files:
|
|
714
717
|
- spec/lib/zoom/actions/webinar/list_registration_spec.rb
|
715
718
|
- spec/lib/zoom/actions/webinar/list_spec.rb
|
716
719
|
- spec/lib/zoom/actions/webinar/panelist_list_spec.rb
|
720
|
+
- spec/lib/zoom/actions/webinar/past_webinar_absentees_spec.rb
|
717
721
|
- spec/lib/zoom/actions/webinar/past_webinar_list_spec.rb
|
718
722
|
- spec/lib/zoom/actions/webinar/poll_get_spec.rb
|
719
723
|
- spec/lib/zoom/actions/webinar/polls_list_spec.rb
|