quiz_api_client 4.5.1 → 4.5.3
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/lib/quiz_api_client/services/courses_service.rb +7 -0
- data/lib/quiz_api_client/services/quiz_clone_jobs_service.rb +5 -4
- data/lib/quiz_api_client/version.rb +1 -1
- data/spec/services/courses_service_spec.rb +39 -0
- data/spec/services/quiz_clone_jobs_service_spec.rb +2 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67900ec0f740056eb710dd6cdc077376bcff73697d6245f2f8ce724502a9149e
|
4
|
+
data.tar.gz: 7a46d4cd33abad4cd846460829430867e235ed3e6a9750300da8c72ab9018528
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8493ad9be849ebf1d74efed623dd0cafb343731b9d80849fa587474c20eeb0588ff4c9daa9bad63b79947340490abaaf2c3110e2c0e8c9c97094466dbb66a489
|
7
|
+
data.tar.gz: fab7a363cf5a4f9532cef754579c11df219a44c089531dfd3c2b5b4e4910871a3402c0f61c6e7732e00600bf080385228decd8205639322496afbac18789f1d0
|
@@ -12,6 +12,13 @@ module QuizApiClient::Services
|
|
12
12
|
delete_from_quiz_api(params: params, token: token)
|
13
13
|
end
|
14
14
|
|
15
|
+
def sync_blueprint_restrictions(params:, token: nil)
|
16
|
+
client(token: token).post(
|
17
|
+
"/api/courses/#{params[:canvas_id]}/sync_blueprint_restrictions",
|
18
|
+
lock_quizzes: params[:lock_quizzes]
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
15
22
|
private
|
16
23
|
|
17
24
|
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
|
|
@@ -100,4 +100,43 @@ describe QuizApiClient::Services::CoursesService do
|
|
100
100
|
expect(response.body).to be_nil
|
101
101
|
end
|
102
102
|
end
|
103
|
+
|
104
|
+
describe '#sync_blueprint_restrictions' do
|
105
|
+
let(:params) { { canvas_id: 1, lock_quizzes: true } }
|
106
|
+
let(:response) do
|
107
|
+
{
|
108
|
+
'course' => {
|
109
|
+
'id' => '1',
|
110
|
+
'title' => 'course one',
|
111
|
+
'canvas_id' => '1',
|
112
|
+
'is_blueprint' => true,
|
113
|
+
'parent_course_id' => '',
|
114
|
+
'created_at' => '2022-09-13T18:53:21.303Z',
|
115
|
+
'updated_at' => '2022-09-13T18:53:21.367Z'
|
116
|
+
},
|
117
|
+
'quizzes_synced' => [
|
118
|
+
1,
|
119
|
+
2
|
120
|
+
]
|
121
|
+
}
|
122
|
+
end
|
123
|
+
|
124
|
+
let(:expected_url) { "https://#{host}/api/courses/1/sync_blueprint_restrictions" }
|
125
|
+
|
126
|
+
before do
|
127
|
+
stub_request(:post, expected_url)
|
128
|
+
.with(body: { lock_quizzes: true }.to_json)
|
129
|
+
.to_return(
|
130
|
+
status: 200,
|
131
|
+
body: response.to_json,
|
132
|
+
headers: { 'Content-Type' => 'application/json' }
|
133
|
+
)
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'posts to the correct endpoint and returns the response' do
|
137
|
+
expect(
|
138
|
+
subject.sync_blueprint_restrictions(params: params, token: 'token').parsed_response
|
139
|
+
).to eq(response)
|
140
|
+
end
|
141
|
+
end
|
103
142
|
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.
|
4
|
+
version: 4.5.3
|
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-
|
18
|
+
date: 2022-09-27 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: []
|
@@ -246,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
248
|
- !ruby/object:Gem::Version
|
247
249
|
version: '0'
|
248
250
|
requirements: []
|
249
|
-
rubygems_version: 3.
|
251
|
+
rubygems_version: 3.3.7
|
250
252
|
signing_key:
|
251
253
|
specification_version: 4
|
252
254
|
summary: Ruby client for quiz_api
|