zoom_rb 1.1.4 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|