quiz_api_client 4.5.2 → 4.5.4

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: 70b15efbfcbaa839cb8926bd79a9e59ff4fac43d23fb9d9006b018660c57c208
4
- data.tar.gz: 660cbf7a8ed8a218609c048412353c49144b27cbaad8ed7c2f7358fade2741f5
3
+ metadata.gz: c34fb90e53a33d8f34b3ed7c71d6df191b0affd3508ea08bb9484952e280c58d
4
+ data.tar.gz: f65f55cdc0a8596399c08b36f3cb14c5eb5e5c25dd6f3769f8c1f6f06dc94584
5
5
  SHA512:
6
- metadata.gz: 957d26373a0ede105dd0cf541282101b33fd356cc1ad35458983f3bcb687fa0ff6d65bedb4cc1ff9bb64fa1d603d315845cb61e6b5d05949a294e6412e248b97
7
- data.tar.gz: e5e1211e0a2d0556ab4ccf4b1273ea1ff0b179bc074bdc00e9f8cf11fdc2bd38b96c61c3ebdc81c6df7c64092adfae83817ae7b73557c62a46afbd2088757720
6
+ metadata.gz: bcac6b8e778f3e404612e5bdda4cd48475f624001004901403a6f5549586a9f93c80bdf51bddcd2aeebad78d3410a0d010a56128e540355f8f7cf334f209b4b2
7
+ data.tar.gz: 9f6fa6e356e4702bee44a3dded1bbff9ddfb2f223cbe0727b5bdbfa3bafce62c0c748edc7f1b36ddc722032cb70850abc975cd387c45c03143b7f812a4dac735
@@ -19,6 +19,13 @@ module QuizApiClient::Services
19
19
  )
20
20
  end
21
21
 
22
+ def associate_quizzes(params:, token: nil)
23
+ client(token: token).patch(
24
+ "/api/courses/#{params[:canvas_id]}/associate_quizzes",
25
+ quiz_ids: params[:quiz_ids]
26
+ )
27
+ end
28
+
22
29
  private
23
30
 
24
31
  def post_to_quiz_api(params:, token:)
@@ -1,7 +1,7 @@
1
1
  module QuizApiClient::Services
2
2
  class QuizCloneJobsService < BaseApiService
3
- def create(params:, token: nil)
4
- post_to_quiz_api(params: params, token: token)
3
+ def create(body: nil, params:, token: nil)
4
+ post_to_quiz_api(body: body, params: params, token: token)
5
5
  end
6
6
 
7
7
  def create_batch(body:, token: nil)
@@ -10,9 +10,10 @@ module QuizApiClient::Services
10
10
 
11
11
  private
12
12
 
13
- def post_to_quiz_api(params:, token:)
13
+ def post_to_quiz_api(body:, params:, token:)
14
14
  client(token: token).post(
15
- "/api/quizzes/#{params.fetch(:quiz_id)}/quiz_clone_jobs"
15
+ "/api/quizzes/#{params.fetch(:quiz_id)}/quiz_clone_jobs",
16
+ body
16
17
  )
17
18
  end
18
19
 
@@ -1,3 +1,3 @@
1
1
  module QuizApiClient
2
- VERSION = '4.5.2'.freeze
2
+ VERSION = '4.5.4'.freeze
3
3
  end
@@ -139,4 +139,39 @@ describe QuizApiClient::Services::CoursesService do
139
139
  ).to eq(response)
140
140
  end
141
141
  end
142
+
143
+ describe '#associate_quizzes' do
144
+ let(:params) { { canvas_id: 1, quiz_ids: [1, 2, 3] } }
145
+ let(:response) do
146
+ {
147
+ 'course' => {
148
+ 'id' => '4',
149
+ 'title' => 'foo',
150
+ 'canvas_id' => '2',
151
+ 'is_blueprint' => true,
152
+ 'created_at' => '2022-06-22T18:59:27.577Z',
153
+ 'updated_at' => '2022-06-22T18:59:27.577Z'
154
+ },
155
+ 'quizzes_synced' => params[:quiz_ids]
156
+ }
157
+ end
158
+
159
+ let(:expected_url) { "https://#{host}/api/courses/1/associate_quizzes" }
160
+
161
+ before do
162
+ stub_request(:patch, expected_url)
163
+ .with(body: { quiz_ids: params[:quiz_ids] }.to_json)
164
+ .to_return(
165
+ status: 200,
166
+ body: response.to_json,
167
+ headers: { 'Content-Type' => 'application/json' }
168
+ )
169
+ end
170
+
171
+ it 'patches to the correct endpoint and returns the response' do
172
+ expect(
173
+ subject.associate_quizzes(params: params, token: 'token').parsed_response
174
+ ).to eq(response)
175
+ end
176
+ end
142
177
  end
@@ -5,6 +5,7 @@ describe QuizApiClient::Services::QuizCloneJobsService do
5
5
 
6
6
  describe '#create' do
7
7
  let(:expected_url) { "https://#{host}/api/quizzes/#{params[:quiz_id]}/quiz_clone_jobs" }
8
+ let(:body) { { field_overrides: { course_id: 1 } } }
8
9
  let(:params) { { quiz_id: 1 } }
9
10
  let(:stubbed_response) { { 'id' => '1' } }
10
11
 
@@ -19,7 +20,7 @@ describe QuizApiClient::Services::QuizCloneJobsService do
19
20
  end
20
21
 
21
22
  it 'posts to /api/quizzes/:quiz_id/quiz_clone_job' do
22
- result = subject.create(params: params, token: 'token')
23
+ result = subject.create(body: body, params: params, token: 'token')
23
24
  expect(result.parsed_response).to eql(stubbed_response)
24
25
  end
25
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quiz_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.2
4
+ version: 4.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Slaughter
@@ -11,10 +11,11 @@ authors:
11
11
  - Michael Hargiss
12
12
  - Robin Kuss
13
13
  - Ryan Taylor
14
+ - Dustin Cowles
14
15
  autorequire:
15
16
  bindir: exe
16
17
  cert_chain: []
17
- date: 2022-09-27 00:00:00.000000000 Z
18
+ date: 2022-12-14 00:00:00.000000000 Z
18
19
  dependencies:
19
20
  - !ruby/object:Gem::Dependency
20
21
  name: httparty
@@ -165,6 +166,7 @@ email:
165
166
  - mhargiss@instructure.com
166
167
  - rkuss@instructure.com
167
168
  - rtaylor@instructure.com
169
+ - dustin.cowles@instructure.com
168
170
  executables: []
169
171
  extensions: []
170
172
  extra_rdoc_files: []