zoom_rb 1.1.8 → 1.1.10

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: 87a9e2f7848d2e669f3e022e99e0efeaba1610e3021c904b7266a0bf4269d1c8
4
- data.tar.gz: 891a47c991116c9df57217bcafc443e4f077709ed87499ee270a4c365526cbd3
3
+ metadata.gz: eba66b57716707ef68c2b32a14fe9befae24025bbf9f86a19e6af4595200eb4a
4
+ data.tar.gz: c467da5f5513c6af4ab2eabdaada0ad1284ce3991fd10a69b0b0e556d07e1b29
5
5
  SHA512:
6
- metadata.gz: cdd836e38abf1363e152c21c2698b0575e2ce869fd473293affd8baa3a6b16c6d4c451f442f8b37a5dfe67ce8aa1c696d022b65afd21e9ec962c2984b1c66a40
7
- data.tar.gz: '0677805581c425cf3ebd7e8a30bed630b626c16c54046977168761cf6abb1a6afab86e1ca04e875845fa4f62f0110c993535f0c026139dfad885f7396a508cec'
6
+ metadata.gz: b8097a2372ec570dc70515fb835077becd1ef1531180b790765c53b994fcad883203da966643f41072ce36cba632d4bac40ce12fc65286ad0cf90e00be033d79
7
+ data.tar.gz: 67c49dc2a4b6575064991cbaa499b36d94c9ce403db4fc0c866a1c668b247cb64708c4b81e959e1d8e6ddf95e23b37804a336aa4641275ef698e7f4181b8b007
@@ -10,7 +10,7 @@ jobs:
10
10
  test:
11
11
  strategy:
12
12
  matrix:
13
- ruby: ['3.0', '3.1', '3.2']
13
+ ruby: ['3.0', '3.1', '3.2', '3.3']
14
14
  runs-on: ubuntu-latest
15
15
 
16
16
  steps:
@@ -37,4 +37,4 @@ jobs:
37
37
  uses: coverallsapp/github-action@v2
38
38
  with:
39
39
  parallel-finished: true
40
- carryforward: "ruby-3.0,ruby-3.1,ruby-3.2"
40
+ carryforward: "ruby-3.0,ruby-3.1,ruby-3.2,ruby-3.3"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zoom_rb (1.1.8)
4
+ zoom_rb (1.1.10)
5
5
  httparty (>= 0.13)
6
6
  json (>= 1.8)
7
7
  jwt
@@ -36,9 +36,9 @@ GEM
36
36
  i18n (1.12.0)
37
37
  concurrent-ruby (~> 1.0)
38
38
  json (2.6.3)
39
- jwt (2.7.0)
39
+ jwt (2.7.1)
40
40
  method_source (1.0.0)
41
- mini_mime (1.1.2)
41
+ mini_mime (1.1.5)
42
42
  minitest (5.18.0)
43
43
  multi_xml (0.6.0)
44
44
  parallel (1.22.1)
@@ -13,7 +13,7 @@ module Zoom
13
13
  post 'meeting_create', '/users/:user_id/meetings',
14
14
  permit: %i[
15
15
  topic type start_time duration schedule_for timezone password default_password agenda tracking_fields
16
- recurrence settings template_id
16
+ recurrence settings template_id pre_schedule
17
17
  ]
18
18
 
19
19
  # Get a meeting on Zoom via meeting ID, return the meeting info.
@@ -49,6 +49,9 @@ module Zoom
49
49
  language occurrence_ids auto_approve
50
50
  ]
51
51
 
52
+ # Delete a meeting registrant.
53
+ delete 'meeting_delete_registrant', '/meetings/:meeting_id/registrants/:registrant_id'
54
+
52
55
  # Register up to 30 registrants at once for a meeting that requires registration.
53
56
  post 'batch_registrants', '/meetings/:meeting_id/batch_registrants',
54
57
  permit: %i[registrants auto_approve registrants_confirmation_email]
@@ -75,6 +78,12 @@ module Zoom
75
78
 
76
79
  # Get a meeting on Zoom via meeting ID, return the meeting info.
77
80
  get 'meeting_invitation', '/meetings/:meeting_id/invitation'
81
+
82
+ # Support for meeting surveys
83
+ # https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetingSurveyGet
84
+ get "meeting_survey", "/meetings/:meeting_id/survey"
85
+ delete "meeting_delete_survey", "/meetings/:meeting_id/survey"
86
+ patch "meeting_update_survey", "/meetings/:meeting_id/survey"
78
87
  end
79
88
  end
80
89
  end
@@ -15,6 +15,11 @@ module Zoom
15
15
 
16
16
  get 'meeting_recording_settings_get', '/meetings/:meeting_id/recordings/settings'
17
17
 
18
+ get 'meeting_recording_analytics_summary', '/meetings/:meeting_id/recordings/analytics_summary'
19
+
20
+ get 'meeting_recording_analytics_details', '/meetings/:meeting_id/recordings/analytics_details',
21
+ permit: %i[page_size next_page_token from to type]
22
+
18
23
  patch 'meeting_recording_settings_update', '/meetings/:meeting_id/recordings/settings',
19
24
  permit: RECORDING_SETTINGS_KEYS
20
25
 
@@ -11,10 +11,10 @@ module Zoom
11
11
  get 'meeting_details_report', '/report/meetings/:id'
12
12
 
13
13
  get 'meeting_participants_report', '/report/meetings/:id/participants',
14
- permit: %i[page_size next_page_token]
14
+ permit: %i[page_size next_page_token include_fields]
15
15
 
16
16
  get 'webinar_participants_report', '/report/webinars/:id/participants',
17
- permit: %i[page_size next_page_token]
17
+ permit: %i[page_size next_page_token include_fields]
18
18
 
19
19
  get 'webinar_details_report', '/report/webinars/:webinar_id'
20
20
  end
@@ -21,7 +21,7 @@ module Zoom
21
21
  permit: :login_type
22
22
 
23
23
  patch 'user_update', '/users/:id',
24
- permit: %i[first_name last_name type pmi timezone dept vanity_name host_key cms_user_id]
24
+ permit: %i[first_name last_name type pmi timezone dept vanity_name host_key cms_user_id custom_attributes]
25
25
 
26
26
  delete 'user_delete', '/users/:id',
27
27
  permit: %i[action transfer_email transfer_meeting transfer_webinar transfer_recording]
@@ -69,6 +69,8 @@ module Zoom
69
69
 
70
70
  patch 'user_status_update', '/users/:id/status',
71
71
  permit: :status
72
+
73
+ get 'user_zak', '/users/me/zak'
72
74
  end
73
75
  end
74
76
  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.8'
4
+ VERSION = '1.1.10'
5
5
  end
@@ -0,0 +1,21 @@
1
+ {
2
+ "custom_survey": {
3
+ "title": "Feedback on your live lecture",
4
+ "anonymous": false,
5
+ "feedback": "Thank you so much for taking the time to complete the survey. Your feedback really makes a difference.",
6
+ "questions": [
7
+ {
8
+ "name": "How useful was this lecture?",
9
+ "type": "rating_scale",
10
+ "answer_required": true,
11
+ "rating_min_value": 1,
12
+ "rating_max_value": 5,
13
+ "rating_min_label": "There is room for improvement",
14
+ "rating_max_label": "Very useful, I feel I learned a lot"
15
+ }
16
+ ],
17
+ "numbered_questions": false,
18
+ "show_question_type": false
19
+ },
20
+ "show_in_the_browser": true
21
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "from":"2023-01-01",
3
+ "to":"2023-01-02",
4
+ "next_page_token":"",
5
+ "page_size":30,
6
+ "total_records":1,
7
+ "analytics_details": [
8
+ {
9
+ "name":"John Doe",
10
+ "email":"john.doe@example.com",
11
+ "duration":1234,
12
+ "date_time":"2023-01-01T11:25:01Z"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "from":"2023-01-01",
3
+ "to":"2023-01-02",
4
+ "analytics_summary": [
5
+ {
6
+ "date":"2023-01-01",
7
+ "views_total_count":8,
8
+ "downloads_total_count":0
9
+ },
10
+ {
11
+ "date":"2023-01-02",
12
+ "views_total_count": 13,
13
+ "downloads_total_count": 1
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "token": "eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJhdWQiOiJjb"
3
+ }
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Zoom::Actions::Meeting do
6
+ let(:zc) { zoom_client }
7
+ let(:args) { { meeting_id: 1, registrant_id: 'abcdef' } }
8
+
9
+ describe '#meeting_delete_registrant action' do
10
+ before :each do
11
+ stub_request(
12
+ :delete,
13
+ zoom_url("/meetings/#{args[:meeting_id]}/registrants/#{args[:registrant_id]}")
14
+ ).to_return(status: 204, headers: { 'Content-Type' => 'application/json' })
15
+ end
16
+
17
+ it "requires a 'meeting_id' and 'registrant_id' argument" do
18
+ expect {
19
+ zc.meeting_delete_registrant(filter_key(args, :meeting_id))
20
+ }.to raise_error(Zoom::ParameterMissing)
21
+ expect {
22
+ zc.meeting_delete_registrant(filter_key(args, :registrant_id))
23
+ }.to raise_error(Zoom::ParameterMissing)
24
+ end
25
+
26
+ it 'returns a status code of 204' do
27
+ expect(zc.meeting_delete_registrant(args)).to eq(204)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Zoom::Actions::Meeting do
6
+ let(:zc) { zoom_client }
7
+ let(:args) { { meeting_id: 1 } }
8
+
9
+ describe '#meeting_survey action' do
10
+ before :each do
11
+ stub_request(
12
+ :get,
13
+ zoom_url("/meetings/#{args[:meeting_id]}/survey")
14
+ ).to_return(body: json_response('meeting', 'get_survey'), headers: { 'Content-Type' => 'application/json' })
15
+ end
16
+
17
+ it 'returns a hash' do
18
+ expect(zc.meeting_survey(args)).to be_kind_of(Hash)
19
+ end
20
+
21
+ it "returns survey properties" do
22
+ expect(zc.meeting_survey(args)['show_in_the_browser']).to eql(true)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Zoom::Actions::Recording do
6
+ let(:zc) { zoom_client }
7
+ let(:args) { { meeting_id: 91538056781 } }
8
+
9
+ describe '#meeting_recording_analytics_details action' do
10
+ before :each do
11
+ stub_request(
12
+ :get,
13
+ zoom_url("/meetings/#{args[:meeting_id]}/recordings/analytics_details")
14
+ ).to_return(
15
+ status: 200,
16
+ body: json_response('recording', 'analytics_details'),
17
+ headers: { 'Content-Type' => 'application/json' }
18
+ )
19
+ end
20
+
21
+ it "requires a 'meeting_id' argument" do
22
+ expect {
23
+ zc.meeting_recording_analytics_details(filter_key(args, :meeting_id))
24
+ }.to raise_error(Zoom::ParameterMissing)
25
+ end
26
+
27
+ it 'returns a hash' do
28
+ expect(zc.meeting_recording_analytics_details(args)).to be_kind_of(Hash)
29
+ end
30
+
31
+ it "returns 'from'" do
32
+ expect(zc.meeting_recording_analytics_details(args)['from']).to eq('2023-01-01')
33
+ end
34
+
35
+ it "returns 'to'" do
36
+ expect(zc.meeting_recording_analytics_details(args)['to']).to eq('2023-01-02')
37
+ end
38
+
39
+ it "returns 'next_page_token'" do
40
+ expect(zc.meeting_recording_analytics_details(args)['next_page_token']).to eq('')
41
+ end
42
+
43
+ it "returns 'page_size'" do
44
+ expect(zc.meeting_recording_analytics_details(args)['page_size']).to eq(30)
45
+ end
46
+
47
+ it "returns 'total_records'" do
48
+ expect(zc.meeting_recording_analytics_details(args)['total_records']).to eq(1)
49
+ end
50
+
51
+ it "returns 'analytics_details' Array" do
52
+ expect(zc.meeting_recording_analytics_details(args)['analytics_details']).to be_kind_of(Array)
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Zoom::Actions::Recording do
6
+ let(:zc) { zoom_client }
7
+ let(:args) { { meeting_id: 91538056781 } }
8
+
9
+ describe '#meeting_recording_analytics_summary action' do
10
+ before :each do
11
+ stub_request(
12
+ :get,
13
+ zoom_url("/meetings/#{args[:meeting_id]}/recordings/analytics_summary")
14
+ ).to_return(
15
+ status: 200,
16
+ body: json_response('recording', 'analytics_summary'),
17
+ headers: { 'Content-Type' => 'application/json' }
18
+ )
19
+ end
20
+
21
+ it "requires a 'meeting_id' argument" do
22
+ expect {
23
+ zc.meeting_recording_analytics_summary(filter_key(args, :meeting_id))
24
+ }.to raise_error(Zoom::ParameterMissing)
25
+ end
26
+
27
+ it 'returns a hash' do
28
+ expect(zc.meeting_recording_analytics_summary(args)).to be_kind_of(Hash)
29
+ end
30
+
31
+ it "returns 'from'" do
32
+ expect(zc.meeting_recording_analytics_summary(args)['from']).to eq('2023-01-01')
33
+ end
34
+
35
+ it "returns 'to'" do
36
+ expect(zc.meeting_recording_analytics_summary(args)['to']).to eq('2023-01-02')
37
+ end
38
+
39
+ it "returns 'analytics_summary' Array" do
40
+ expect(zc.meeting_recording_analytics_summary(args)['analytics_summary']).to be_kind_of(Array)
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Zoom::Actions::User do
6
+ let(:zc) { zoom_client }
7
+
8
+ describe '#user_zak action' do
9
+ context 'with a valid response' do
10
+ before :each do
11
+ stub_request(
12
+ :get,
13
+ zoom_url("/users/me/zak")
14
+ ).to_return(status: 200,
15
+ body: json_response('user', 'zak'),
16
+ headers: { 'Content-Type' => 'application/json' })
17
+ end
18
+
19
+ it 'returns a users zak token' do
20
+ res = zc.user_zak
21
+ expected_response = JSON.parse(json_response('user', 'zak'))
22
+ expect(res['token']).to eq(expected_response['token'])
23
+ end
24
+ end
25
+ end
26
+ 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.8
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Boe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-10 00:00:00.000000000 Z
11
+ date: 2024-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -254,11 +254,14 @@ files:
254
254
  - spec/fixtures/meeting/add_registrant.json
255
255
  - spec/fixtures/meeting/create.json
256
256
  - spec/fixtures/meeting/get.json
257
+ - spec/fixtures/meeting/get_survey.json
257
258
  - spec/fixtures/meeting/instances.json
258
259
  - spec/fixtures/meeting/invitation.json
259
260
  - spec/fixtures/meeting/list.json
260
261
  - spec/fixtures/meeting/live_stream/errors/meeting_not_found.json
261
262
  - spec/fixtures/meeting/live_stream/errors/missing_field.json
263
+ - spec/fixtures/recording/analytics_details.json
264
+ - spec/fixtures/recording/analytics_summary.json
262
265
  - spec/fixtures/recording/get.json
263
266
  - spec/fixtures/recording/list.json
264
267
  - spec/fixtures/recording/settings/get.json
@@ -308,6 +311,7 @@ files:
308
311
  - spec/fixtures/user/update_password.json
309
312
  - spec/fixtures/user/update_status.json
310
313
  - spec/fixtures/user/vanity_name.json
314
+ - spec/fixtures/user/zak.json
311
315
  - spec/fixtures/webinar/create.json
312
316
  - spec/fixtures/webinar/delete.json
313
317
  - spec/fixtures/webinar/list.json
@@ -382,13 +386,17 @@ files:
382
386
  - spec/lib/zoom/actions/ma/account/plan/update_spec.rb
383
387
  - spec/lib/zoom/actions/meeting/add_registrant_spec.rb
384
388
  - spec/lib/zoom/actions/meeting/create_spec.rb
389
+ - spec/lib/zoom/actions/meeting/delete_registrant_spec.rb
385
390
  - spec/lib/zoom/actions/meeting/delete_spec.rb
386
391
  - spec/lib/zoom/actions/meeting/get_spec.rb
392
+ - spec/lib/zoom/actions/meeting/get_survey_spec.rb
387
393
  - spec/lib/zoom/actions/meeting/invitation_spec.rb
388
394
  - spec/lib/zoom/actions/meeting/list_spec.rb
389
395
  - spec/lib/zoom/actions/meeting/livestream_spec.rb
390
396
  - spec/lib/zoom/actions/meeting/registrants/update_status_spec.rb
391
397
  - spec/lib/zoom/actions/meeting/update_spec.rb
398
+ - spec/lib/zoom/actions/recording/analytics_details_spec.rb
399
+ - spec/lib/zoom/actions/recording/analytics_summary_spec.rb
392
400
  - spec/lib/zoom/actions/recording/file_delete_spec.rb
393
401
  - spec/lib/zoom/actions/recording/get_spec.rb
394
402
  - spec/lib/zoom/actions/recording/list_spec.rb
@@ -446,6 +454,7 @@ files:
446
454
  - spec/lib/zoom/actions/user/update_spec.rb
447
455
  - spec/lib/zoom/actions/user/update_status_spec.rb
448
456
  - spec/lib/zoom/actions/user/vanity_name_spec.rb
457
+ - spec/lib/zoom/actions/user/zak_spec.rb
449
458
  - spec/lib/zoom/actions/webinar/attendees_list_spec.rb
450
459
  - spec/lib/zoom/actions/webinar/create_spec.rb
451
460
  - spec/lib/zoom/actions/webinar/delete_spec.rb
@@ -482,7 +491,7 @@ homepage: https://github.com/hintmedia/zoom_rb
482
491
  licenses:
483
492
  - MIT
484
493
  metadata: {}
485
- post_install_message:
494
+ post_install_message:
486
495
  rdoc_options: []
487
496
  require_paths:
488
497
  - lib
@@ -497,8 +506,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
497
506
  - !ruby/object:Gem::Version
498
507
  version: '0'
499
508
  requirements: []
500
- rubygems_version: 3.4.10
501
- signing_key:
509
+ rubygems_version: 3.5.4
510
+ signing_key:
502
511
  specification_version: 4
503
512
  summary: zoom.us API wrapper
504
513
  test_files:
@@ -545,11 +554,14 @@ test_files:
545
554
  - spec/fixtures/meeting/add_registrant.json
546
555
  - spec/fixtures/meeting/create.json
547
556
  - spec/fixtures/meeting/get.json
557
+ - spec/fixtures/meeting/get_survey.json
548
558
  - spec/fixtures/meeting/instances.json
549
559
  - spec/fixtures/meeting/invitation.json
550
560
  - spec/fixtures/meeting/list.json
551
561
  - spec/fixtures/meeting/live_stream/errors/meeting_not_found.json
552
562
  - spec/fixtures/meeting/live_stream/errors/missing_field.json
563
+ - spec/fixtures/recording/analytics_details.json
564
+ - spec/fixtures/recording/analytics_summary.json
553
565
  - spec/fixtures/recording/get.json
554
566
  - spec/fixtures/recording/list.json
555
567
  - spec/fixtures/recording/settings/get.json
@@ -599,6 +611,7 @@ test_files:
599
611
  - spec/fixtures/user/update_password.json
600
612
  - spec/fixtures/user/update_status.json
601
613
  - spec/fixtures/user/vanity_name.json
614
+ - spec/fixtures/user/zak.json
602
615
  - spec/fixtures/webinar/create.json
603
616
  - spec/fixtures/webinar/delete.json
604
617
  - spec/fixtures/webinar/list.json
@@ -673,13 +686,17 @@ test_files:
673
686
  - spec/lib/zoom/actions/ma/account/plan/update_spec.rb
674
687
  - spec/lib/zoom/actions/meeting/add_registrant_spec.rb
675
688
  - spec/lib/zoom/actions/meeting/create_spec.rb
689
+ - spec/lib/zoom/actions/meeting/delete_registrant_spec.rb
676
690
  - spec/lib/zoom/actions/meeting/delete_spec.rb
677
691
  - spec/lib/zoom/actions/meeting/get_spec.rb
692
+ - spec/lib/zoom/actions/meeting/get_survey_spec.rb
678
693
  - spec/lib/zoom/actions/meeting/invitation_spec.rb
679
694
  - spec/lib/zoom/actions/meeting/list_spec.rb
680
695
  - spec/lib/zoom/actions/meeting/livestream_spec.rb
681
696
  - spec/lib/zoom/actions/meeting/registrants/update_status_spec.rb
682
697
  - spec/lib/zoom/actions/meeting/update_spec.rb
698
+ - spec/lib/zoom/actions/recording/analytics_details_spec.rb
699
+ - spec/lib/zoom/actions/recording/analytics_summary_spec.rb
683
700
  - spec/lib/zoom/actions/recording/file_delete_spec.rb
684
701
  - spec/lib/zoom/actions/recording/get_spec.rb
685
702
  - spec/lib/zoom/actions/recording/list_spec.rb
@@ -737,6 +754,7 @@ test_files:
737
754
  - spec/lib/zoom/actions/user/update_spec.rb
738
755
  - spec/lib/zoom/actions/user/update_status_spec.rb
739
756
  - spec/lib/zoom/actions/user/vanity_name_spec.rb
757
+ - spec/lib/zoom/actions/user/zak_spec.rb
740
758
  - spec/lib/zoom/actions/webinar/attendees_list_spec.rb
741
759
  - spec/lib/zoom/actions/webinar/create_spec.rb
742
760
  - spec/lib/zoom/actions/webinar/delete_spec.rb