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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c6da2eeba5f955c575c3c727711115b78cbcd1d37b0baa8781fb49d111dc8a8
4
- data.tar.gz: b199c01cfa6ede2a269e6350c358b90f3f630ba0b7eab9fe752a31680cf88f28
3
+ metadata.gz: e99bc06bfde1afda39add7d423f4114e8d0d62e7d582b18e32f9878c56be99a9
4
+ data.tar.gz: ce77dd9991a10004967382a9dbc8a10e450fba32f02da7de735a3f11c535af8a
5
5
  SHA512:
6
- metadata.gz: 8cbc44242ca16594d10bb513a520163df99fa050043e197d6341b5c7249d5f811a26bd3920fca7c1226880302649e19933b379a2dcfe5814ba5399e5a1de20c0
7
- data.tar.gz: f5417945d43116b4b104746ea0c5351943418bd9cc7ad3f539d636cebf36982daf6a0c4b3a1e4bf1f7c4d38ad051b5a986913b4a50831f406c2d91c131bde130
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:2.7-node-browsers
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)
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.4.1)
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)
@@ -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
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zoom
4
- VERSION = '1.1.4'
4
+ VERSION = '1.1.6'
5
5
  end
@@ -0,0 +1,8 @@
1
+ {
2
+ "meetings": [
3
+ {
4
+ "start_time": "2022-03-26T05:37:59Z",
5
+ "uuid": "Vg8IdgluR5WDeWIkpJlElQ=="
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": "567456745674",
3
+ "updated_at": "2022-03-26T07:30:16Z"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": "123456789",
3
+ "deleted_at": "2012-11-25T12:00:00Z"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "id": "123456789",
3
+ "deleted_at": "2012-11-25T12:00:00Z"
4
+ }
@@ -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
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-08-10 00:00:00.000000000 Z
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