zoom_rb 1.1.4 → 1.1.6
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/.circleci/config.yml +1 -1
- data/Gemfile.lock +2 -2
- data/lib/zoom/actions/meeting.rb +17 -1
- data/lib/zoom/actions/webinar.rb +12 -1
- data/lib/zoom/version.rb +1 -1
- data/spec/fixtures/meeting/instances.json +8 -0
- data/spec/fixtures/webinar/panelist_add.json +4 -0
- data/spec/fixtures/webinar/panelist_delete.json +4 -0
- data/spec/fixtures/webinar/panelist_delete_all.json +4 -0
- data/spec/lib/zoom/actions/meeting/get_spec.rb +20 -0
- data/spec/lib/zoom/actions/meeting/registrants/update_status_spec.rb +42 -0
- data/spec/lib/zoom/actions/webinar/panelist_add_spec.rb +54 -0
- data/spec/lib/zoom/actions/webinar/panelist_delete_spec.rb +50 -0
- data/spec/lib/zoom/actions/webinar/panelists_delete_all_spec.rb +45 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e99bc06bfde1afda39add7d423f4114e8d0d62e7d582b18e32f9878c56be99a9
|
4
|
+
data.tar.gz: ce77dd9991a10004967382a9dbc8a10e450fba32f02da7de735a3f11c535af8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1131215c10a10ebcfa0b1840ecd619adce953908dc5293b9dc1dc4b84b5c526ec40ac5826447c8dae4609d6abaec573b0bc29eb2730efed26c07c5082361e38
|
7
|
+
data.tar.gz: e79fca64061d0394b9b1bb082300cb14da883a10ff436b8926b2bdaa441cb8ac4900d7772ad587fdde68cc93e5aef0fcd7a28cc5aa125708fd6628ddfe41efc6
|
data/.circleci/config.yml
CHANGED
@@ -9,7 +9,7 @@ jobs:
|
|
9
9
|
CC_TEST_REPORTER_ID: c6c77975186cfe10e41d9548e9b4a4648f87b56cdbb70bd3896a5a58abf08421
|
10
10
|
docker:
|
11
11
|
# specify the version you desire here
|
12
|
-
- image: circleci/ruby:
|
12
|
+
- image: circleci/ruby:3.0-node-browsers
|
13
13
|
|
14
14
|
# Specify service dependencies here if necessary
|
15
15
|
# CircleCI maintains a library of pre-built images
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
zoom_rb (1.1.
|
4
|
+
zoom_rb (1.1.6)
|
5
5
|
httparty (>= 0.13)
|
6
6
|
json (>= 1.8)
|
7
7
|
jwt
|
@@ -36,7 +36,7 @@ GEM
|
|
36
36
|
i18n (1.10.0)
|
37
37
|
concurrent-ruby (~> 1.0)
|
38
38
|
json (2.6.2)
|
39
|
-
jwt (2.
|
39
|
+
jwt (2.5.0)
|
40
40
|
method_source (1.0.0)
|
41
41
|
mime-types (3.4.1)
|
42
42
|
mime-types-data (~> 3.2015)
|
data/lib/zoom/actions/meeting.rb
CHANGED
@@ -35,21 +35,37 @@ module Zoom
|
|
35
35
|
put 'meeting_update_status', '/meetings/:meeting_id/status',
|
36
36
|
permit: :action
|
37
37
|
|
38
|
+
# Update registrant's status
|
39
|
+
put 'meeting_registrants_status_update', '/meetings/:meeting_id/registrants/status',
|
40
|
+
require: :action,
|
41
|
+
permit: [ :occurrence_id, registrants: [] ]
|
42
|
+
|
38
43
|
# Register for a meeting.
|
39
44
|
post 'meeting_add_registrant', '/meetings/:meeting_id/registrants',
|
40
45
|
require: %i[email first_name],
|
41
46
|
permit: %i[
|
42
47
|
last_name address city country zip state phone industry org job_title
|
43
48
|
purchasing_time_frame role_in_purchase_process no_of_employees comments custom_questions
|
44
|
-
language occurrence_ids
|
49
|
+
language occurrence_ids auto_approve
|
45
50
|
]
|
46
51
|
|
52
|
+
# Register up to 30 registrants at once for a meeting that requires registration.
|
53
|
+
post 'batch_registrants', '/meetings/:meeting_id/batch_registrants',
|
54
|
+
permit: %i[registrants auto_approve registrants_confirmation_email]
|
55
|
+
|
47
56
|
# Register for a meeting.
|
48
57
|
patch 'meeting_registrant_questions', '/meeting/:meeting_id/registrants/questions'
|
49
58
|
|
59
|
+
# List users that have registered for a meeting.
|
60
|
+
get 'list_meeting_registrants', '/meetings/:meeting_id/registrants',
|
61
|
+
permit: %i[occurrence_id status page_size next_page_token]
|
62
|
+
|
50
63
|
# Retrieve ended meeting details
|
51
64
|
get 'past_meeting_details', '/past_meetings/:meeting_uuid'
|
52
65
|
|
66
|
+
# Retrieve past meeting instances
|
67
|
+
get 'past_meeting_instances', '/past_meetings/:meeting_id/instances'
|
68
|
+
|
53
69
|
# Retrieve ended meeting participants
|
54
70
|
get 'past_meeting_participants', '/past_meetings/:meeting_uuid/participants'
|
55
71
|
|
data/lib/zoom/actions/webinar.rb
CHANGED
@@ -27,7 +27,10 @@ module Zoom
|
|
27
27
|
question_and_answer: %i[
|
28
28
|
allow_anonymous_questions answer_questions attendees_can_comment
|
29
29
|
attendees_can_upvote enable
|
30
|
-
]
|
30
|
+
],
|
31
|
+
attendees_and_panelists_reminder_email_notification: %i[enable type],
|
32
|
+
follow_up_absentees_email_notification: %i[enable type],
|
33
|
+
follow_up_attendees_email_notification: %i[enable type]
|
31
34
|
}
|
32
35
|
].freeze
|
33
36
|
|
@@ -78,6 +81,14 @@ module Zoom
|
|
78
81
|
|
79
82
|
get 'webinar_panelist_list', '/webinars/:webinar_id/panelists'
|
80
83
|
|
84
|
+
post 'webinar_panelist_add', '/webinars/:webinar_id/panelists',
|
85
|
+
require: :panelists,
|
86
|
+
permit: [ panelists: [] ]
|
87
|
+
|
88
|
+
delete 'webinar_panelist_delete', '/webinars/:webinar_id/panelists/:panelist_id'
|
89
|
+
|
90
|
+
delete 'webinar_panelists_delete_all', '/webinars/:webinar_id/panelists'
|
91
|
+
|
81
92
|
get 'past_webinars_absentees', '/past_webinars/:webinar_uuid/absentees',
|
82
93
|
permit: %i[occurrence_id page_size next_page_token]
|
83
94
|
end
|
data/lib/zoom/version.rb
CHANGED
@@ -46,4 +46,24 @@ describe Zoom::Actions::Meeting do
|
|
46
46
|
}.to raise_error(NoMethodError)
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
describe '#past_meeting_instances' do
|
51
|
+
before :each do
|
52
|
+
stub_request(
|
53
|
+
:get,
|
54
|
+
zoom_url("/past_meetings/#{args[:meeting_id]}/instances")
|
55
|
+
).to_return(
|
56
|
+
status: 200,
|
57
|
+
body: json_response('meeting','instances'){},
|
58
|
+
headers: { 'Content-Type' => 'application/json' }
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'returns meeting instances' do
|
63
|
+
res = zc.past_meeting_instances(args)
|
64
|
+
|
65
|
+
expect(res['meetings'][0]['start_time']).to eq('2022-03-26T05:37:59Z')
|
66
|
+
expect(res['meetings'][0]['uuid']).to eq('Vg8IdgluR5WDeWIkpJlElQ==')
|
67
|
+
end
|
68
|
+
end
|
49
69
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Zoom::Actions::Webinar do
|
6
|
+
let(:zc) { zoom_client }
|
7
|
+
let(:args) { { meeting_id: 1, action: 'approve' } }
|
8
|
+
|
9
|
+
describe '#webinar_registrants_status_update' do
|
10
|
+
context 'with a valid response' do
|
11
|
+
before :each do
|
12
|
+
stub_request(
|
13
|
+
:put,
|
14
|
+
zoom_url("/meetingss/#{args[:meeting_id]}/registrants/status")
|
15
|
+
).to_return(status: 204)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "requires a 'meeting_id' argument" do
|
19
|
+
expect { zc.meeting_registrants_status_update(filter_key(args, :meeting_id)) }.to raise_error(Zoom::ParameterMissing, [:meeting_id].to_s)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "requires a 'action' argument" do
|
23
|
+
expect { zc.meeting_registrants_status_update(filter_key(args, :action)) }.to raise_error(Zoom::ParameterMissing, [:action].to_s)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with a 4xx response' do
|
28
|
+
before :each do
|
29
|
+
stub_request(
|
30
|
+
:put,
|
31
|
+
zoom_url("/meetings/#{args[:meeting_id]}/registrants/status")
|
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.meeting_registrants_status_update(args) }.to raise_error(Zoom::Error)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Zoom::Actions::Webinar do
|
6
|
+
let(:zc) { zoom_client }
|
7
|
+
let(:args) { { webinar_id: '123456789',
|
8
|
+
panelists: [{email: "foo@bar.com", name: "Foo Bar"}] } }
|
9
|
+
|
10
|
+
describe '#webinar_panelist_add' do
|
11
|
+
context 'with a valid response' do
|
12
|
+
before :each do
|
13
|
+
stub_request(
|
14
|
+
:post,
|
15
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists")
|
16
|
+
).to_return(status: 201,
|
17
|
+
body: json_response('webinar', 'panelist_add'),
|
18
|
+
headers: { 'Content-Type' => 'application/json' })
|
19
|
+
end
|
20
|
+
|
21
|
+
it "requires a 'webinar id' argument" do
|
22
|
+
expect { zc.webinar_panelist_add(filter_key(args, :webinar_id)) }.to raise_error(Zoom::ParameterMissing, [:webinar_id].to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "requires a 'panelists' argument" do
|
26
|
+
expect { zc.webinar_panelist_add(filter_key(args, :panelists)) }.to raise_error(Zoom::ParameterMissing, [:panelists].to_s)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns an Hash' do
|
30
|
+
expect(zc.webinar_panelist_add(args)).to be_kind_of(Hash)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'returns an "id"' do
|
34
|
+
res = zc.webinar_panelist_add(args)
|
35
|
+
expect(res['id']).not_to be nil
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'with a 4xx response' do
|
40
|
+
before :each do
|
41
|
+
stub_request(
|
42
|
+
:post,
|
43
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists")
|
44
|
+
).to_return(status: 404,
|
45
|
+
body: json_response('error', 'validation'),
|
46
|
+
headers: { 'Content-Type' => 'application/json' })
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'raises Zoom::Error exception' do
|
50
|
+
expect { zc.webinar_panelist_add(args) }.to raise_error(Zoom::Error)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Zoom::Actions::Webinar do
|
6
|
+
let(:zc) { zoom_client }
|
7
|
+
let(:args) { { webinar_id: '123456789',
|
8
|
+
panelist_id: '12345' } }
|
9
|
+
|
10
|
+
describe '#webinar_panelist_delete' do
|
11
|
+
context 'with a valid response' do
|
12
|
+
before :each do
|
13
|
+
stub_request(
|
14
|
+
:delete,
|
15
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists/#{args[:panelist_id]}")
|
16
|
+
).to_return(status: 204,
|
17
|
+
body: json_response('webinar', 'panelist_delete'),
|
18
|
+
headers: { 'Content-Type' => 'application/json' })
|
19
|
+
end
|
20
|
+
|
21
|
+
it "requires a 'webinar id' argument" do
|
22
|
+
expect { zc.webinar_panelist_delete(filter_key(args, :webinar_id)) }.to raise_error(Zoom::ParameterMissing, [:webinar_id].to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "requires a 'panelist id' argument" do
|
26
|
+
expect { zc.webinar_panelist_delete(filter_key(args, :panelist_id)) }.to raise_error(Zoom::ParameterMissing, [:panelist_id].to_s)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns the http status code as a number' do
|
30
|
+
expect(zc.webinar_panelist_delete(args)).to eql(204)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'with a 4xx response' do
|
36
|
+
before :each do
|
37
|
+
stub_request(
|
38
|
+
:delete,
|
39
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists/#{args[:panelist_id]}")
|
40
|
+
).to_return(status: 404,
|
41
|
+
body: json_response('error', 'validation'),
|
42
|
+
headers: { 'Content-Type' => 'application/json' })
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'raises Zoom::Error exception' do
|
46
|
+
expect { zc.webinar_panelist_delete(args) }.to raise_error(Zoom::Error)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Zoom::Actions::Webinar do
|
6
|
+
let(:zc) { zoom_client }
|
7
|
+
let(:args) { { webinar_id: '123456789' } }
|
8
|
+
|
9
|
+
describe '#webinar_panelists_delete_all' do
|
10
|
+
context 'with a valid response' do
|
11
|
+
before :each do
|
12
|
+
stub_request(
|
13
|
+
:delete,
|
14
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists")
|
15
|
+
).to_return(status: 204,
|
16
|
+
body: json_response('webinar', 'panelist_delete_all'),
|
17
|
+
headers: { 'Content-Type' => 'application/json' })
|
18
|
+
end
|
19
|
+
|
20
|
+
it "requires a 'webinar id' argument" do
|
21
|
+
expect { zc.webinar_panelists_delete_all(filter_key(args, :webinar_id)) }.to raise_error(Zoom::ParameterMissing, [:webinar_id].to_s)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns the http status code as a number' do
|
25
|
+
expect(zc.webinar_panelists_delete_all(args)).to eql(204)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'with a 4xx response' do
|
31
|
+
before :each do
|
32
|
+
stub_request(
|
33
|
+
:delete,
|
34
|
+
zoom_url("/webinars/#{args[:webinar_id]}/panelists")
|
35
|
+
).to_return(status: 404,
|
36
|
+
body: json_response('error', 'validation'),
|
37
|
+
headers: { 'Content-Type' => 'application/json' })
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'raises Zoom::Error exception' do
|
41
|
+
expect { zc.webinar_panelist_delete(args) }.to raise_error(Zoom::Error)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
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.6
|
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-
|
11
|
+
date: 2022-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- spec/fixtures/meeting/add_registrant.json
|
241
241
|
- spec/fixtures/meeting/create.json
|
242
242
|
- spec/fixtures/meeting/get.json
|
243
|
+
- spec/fixtures/meeting/instances.json
|
243
244
|
- spec/fixtures/meeting/invitation.json
|
244
245
|
- spec/fixtures/meeting/list.json
|
245
246
|
- spec/fixtures/meeting/live_stream/errors/meeting_not_found.json
|
@@ -296,6 +297,9 @@ files:
|
|
296
297
|
- spec/fixtures/webinar/create.json
|
297
298
|
- spec/fixtures/webinar/delete.json
|
298
299
|
- spec/fixtures/webinar/list.json
|
300
|
+
- spec/fixtures/webinar/panelist_add.json
|
301
|
+
- spec/fixtures/webinar/panelist_delete.json
|
302
|
+
- spec/fixtures/webinar/panelist_delete_all.json
|
299
303
|
- spec/fixtures/webinar/panelist_list.json
|
300
304
|
- spec/fixtures/webinar/past_webinar_list.json
|
301
305
|
- spec/fixtures/webinar/past_webinars_absentees.json
|
@@ -369,6 +373,7 @@ files:
|
|
369
373
|
- spec/lib/zoom/actions/meeting/invitation_spec.rb
|
370
374
|
- spec/lib/zoom/actions/meeting/list_spec.rb
|
371
375
|
- spec/lib/zoom/actions/meeting/livestream_spec.rb
|
376
|
+
- spec/lib/zoom/actions/meeting/registrants/update_status_spec.rb
|
372
377
|
- spec/lib/zoom/actions/meeting/update_spec.rb
|
373
378
|
- spec/lib/zoom/actions/recording/file_delete_spec.rb
|
374
379
|
- spec/lib/zoom/actions/recording/get_spec.rb
|
@@ -434,7 +439,10 @@ files:
|
|
434
439
|
- spec/lib/zoom/actions/webinar/get_spec.rb
|
435
440
|
- spec/lib/zoom/actions/webinar/list_registration_spec.rb
|
436
441
|
- spec/lib/zoom/actions/webinar/list_spec.rb
|
442
|
+
- spec/lib/zoom/actions/webinar/panelist_add_spec.rb
|
443
|
+
- spec/lib/zoom/actions/webinar/panelist_delete_spec.rb
|
437
444
|
- spec/lib/zoom/actions/webinar/panelist_list_spec.rb
|
445
|
+
- spec/lib/zoom/actions/webinar/panelists_delete_all_spec.rb
|
438
446
|
- spec/lib/zoom/actions/webinar/past_webinar_absentees_spec.rb
|
439
447
|
- spec/lib/zoom/actions/webinar/past_webinar_list_spec.rb
|
440
448
|
- spec/lib/zoom/actions/webinar/poll_get_spec.rb
|
@@ -523,6 +531,7 @@ test_files:
|
|
523
531
|
- spec/fixtures/meeting/add_registrant.json
|
524
532
|
- spec/fixtures/meeting/create.json
|
525
533
|
- spec/fixtures/meeting/get.json
|
534
|
+
- spec/fixtures/meeting/instances.json
|
526
535
|
- spec/fixtures/meeting/invitation.json
|
527
536
|
- spec/fixtures/meeting/list.json
|
528
537
|
- spec/fixtures/meeting/live_stream/errors/meeting_not_found.json
|
@@ -579,6 +588,9 @@ test_files:
|
|
579
588
|
- spec/fixtures/webinar/create.json
|
580
589
|
- spec/fixtures/webinar/delete.json
|
581
590
|
- spec/fixtures/webinar/list.json
|
591
|
+
- spec/fixtures/webinar/panelist_add.json
|
592
|
+
- spec/fixtures/webinar/panelist_delete.json
|
593
|
+
- spec/fixtures/webinar/panelist_delete_all.json
|
582
594
|
- spec/fixtures/webinar/panelist_list.json
|
583
595
|
- spec/fixtures/webinar/past_webinar_list.json
|
584
596
|
- spec/fixtures/webinar/past_webinars_absentees.json
|
@@ -652,6 +664,7 @@ test_files:
|
|
652
664
|
- spec/lib/zoom/actions/meeting/invitation_spec.rb
|
653
665
|
- spec/lib/zoom/actions/meeting/list_spec.rb
|
654
666
|
- spec/lib/zoom/actions/meeting/livestream_spec.rb
|
667
|
+
- spec/lib/zoom/actions/meeting/registrants/update_status_spec.rb
|
655
668
|
- spec/lib/zoom/actions/meeting/update_spec.rb
|
656
669
|
- spec/lib/zoom/actions/recording/file_delete_spec.rb
|
657
670
|
- spec/lib/zoom/actions/recording/get_spec.rb
|
@@ -717,7 +730,10 @@ test_files:
|
|
717
730
|
- spec/lib/zoom/actions/webinar/get_spec.rb
|
718
731
|
- spec/lib/zoom/actions/webinar/list_registration_spec.rb
|
719
732
|
- spec/lib/zoom/actions/webinar/list_spec.rb
|
733
|
+
- spec/lib/zoom/actions/webinar/panelist_add_spec.rb
|
734
|
+
- spec/lib/zoom/actions/webinar/panelist_delete_spec.rb
|
720
735
|
- spec/lib/zoom/actions/webinar/panelist_list_spec.rb
|
736
|
+
- spec/lib/zoom/actions/webinar/panelists_delete_all_spec.rb
|
721
737
|
- spec/lib/zoom/actions/webinar/past_webinar_absentees_spec.rb
|
722
738
|
- spec/lib/zoom/actions/webinar/past_webinar_list_spec.rb
|
723
739
|
- spec/lib/zoom/actions/webinar/poll_get_spec.rb
|