quiz_api_client 4.11.1 → 4.13.0

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: 296ae98e95e4fff6555495c5ae214e08fe3c54d5ed7ad0dcc5b6438097e4229e
4
- data.tar.gz: f9b544b10bf67683f216e0f357fd6ce3862cfc8cc526b9f9eb62506a89f30745
3
+ metadata.gz: b00457ab08c111b3cbed96f2581a0491cfbc1aaa8444228bb171754db5d302a6
4
+ data.tar.gz: da4deb0cb2166b04d3c293eb7ab10891ece8efab5c12485e2c14b4802767435e
5
5
  SHA512:
6
- metadata.gz: b00e342816f726c8f06bde41615b4e474866d99c3f63bc216e2a4bb3803c7c2e879ef1c82a08c4e08b571aed5af5091a91559b291214fe07f060bc6cf6c16bc5
7
- data.tar.gz: f6f0e3ddd4197ae8dc2567a58c3e6b67ca6835cbf6ac7c21144e2bd3d021ba111f922794a1d499fd6b1110ccdb5b3fa7c13ebae52d179dbaf68ff61bd0e3ca1d
6
+ metadata.gz: 1b0fe620b198f56743e58a19414906d1b42d9b1b26181824a4d3ffa5df8d4ba9cdd5f9f69ffb116b72dfe1efbbace4919781c87608f9801cfa368b5de4cb24ee
7
+ data.tar.gz: ac18907b4a8454d2d9c0309b61ab2aff3439358678b04ad8754555d0c6c3caba2e4437eede06f5d51345e7b044af63deb5cdad8205bfdb789e3a1923cd656219
@@ -8,8 +8,9 @@ module QuizApiClient::Services
8
8
 
9
9
  def post_to_quiz_api(params:, token:)
10
10
  client(token: token).post(
11
- "/api/quizzes/#{params[:quiz_id]}/stats",
12
- quiz_sessions: params[:quiz_sessions]
11
+ "/api/quizzes/#{params[:quiz_id]}/analyses",
12
+ quiz_session_ids: params[:quiz_session_ids],
13
+ filter: params[:filter]
13
14
  )
14
15
  end
15
16
  end
@@ -0,0 +1,20 @@
1
+ module QuizApiClient::Services
2
+ class BankEntriesService < BaseApiService
3
+ def list(params:, token: nil, all: false)
4
+ raise 'Bank Id Required' unless params && params[:id]
5
+
6
+ pagination_params = { page: params.delete(:page), per_page: params.delete(:per_page) }
7
+ get_from_quiz_api(params: params, token: token, pagination_params: pagination_params, all: all)
8
+ end
9
+
10
+ private
11
+
12
+ def get_from_quiz_api(params:, token:, pagination_params:, all:)
13
+ client(token: token).get(
14
+ "/api/internal_services/banks/#{params[:id]}/bank_entries",
15
+ query: pagination_params,
16
+ all: all
17
+ )
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module QuizApiClient::Services
2
+ class BankService < BaseApiService
3
+ def show(params:, token: nil)
4
+ get_from_quiz_api(params: params, token: token)
5
+ end
6
+
7
+ private
8
+
9
+ def get_from_quiz_api(params:, token:)
10
+ client(token: token).get(
11
+ "/api/internal_services/banks/#{params[:id]}"
12
+ )
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module QuizApiClient
2
- VERSION = '4.11.1'.freeze
2
+ VERSION = '4.13.0'.freeze
3
3
  end
@@ -18,6 +18,14 @@ module QuizApiClient
18
18
  yield(config) if block_given?
19
19
  end
20
20
 
21
+ def bank_service
22
+ @_bank_service ||= Services::BankService.new(config)
23
+ end
24
+
25
+ def bank_entries_service
26
+ @_bank_entries_service ||= Services::BankEntriesService.new(config)
27
+ end
28
+
21
29
  def config
22
30
  @_config ||= QuizApiClient::Config.new
23
31
  end
@@ -126,6 +134,8 @@ require 'quiz_api_client/http_request/metrics'
126
134
  require 'quiz_api_client/services/jwt_service'
127
135
  require 'quiz_api_client/services/base_api_service'
128
136
 
137
+ require 'quiz_api_client/services/bank_service'
138
+ require 'quiz_api_client/services/bank_entries_service'
129
139
  require 'quiz_api_client/services/content_exports_service'
130
140
  require 'quiz_api_client/services/courses_service'
131
141
  require 'quiz_api_client/services/interaction_types_service'
@@ -128,6 +128,34 @@ describe QuizApiClient do
128
128
  end
129
129
  end
130
130
 
131
+ describe '#quiz_service' do
132
+ it 'should create the service' do
133
+ expect(QuizApiClient::Services::QuizService).to receive(:new).with(subject.config)
134
+ subject.quiz_service
135
+ end
136
+ end
137
+
138
+ describe '#quiz_entries_service' do
139
+ it 'should create the service' do
140
+ expect(QuizApiClient::Services::QuizEntriesService).to receive(:new).with(subject.config)
141
+ subject.quiz_entries_service
142
+ end
143
+ end
144
+
145
+ describe '#bank_service' do
146
+ it 'should create the service' do
147
+ expect(QuizApiClient::Services::BankService).to receive(:new).with(subject.config)
148
+ subject.bank_service
149
+ end
150
+ end
151
+
152
+ describe '#bank_entries_service' do
153
+ it 'should create the service' do
154
+ expect(QuizApiClient::Services::BankEntriesService).to receive(:new).with(subject.config)
155
+ subject.bank_entries_service
156
+ end
157
+ end
158
+
131
159
  describe '#interaction_types_service' do
132
160
  it 'should create the service' do
133
161
  expect(QuizApiClient::Services::InteractionTypesService).to receive(:new).with(subject.config)
@@ -5,10 +5,10 @@ describe QuizApiClient::Services::AnalysesService do
5
5
 
6
6
  describe '#create' do
7
7
  let(:params) do
8
- { quiz_id: 1, quiz_session: [1, 5, 10] }
8
+ { quiz_id: 1, quiz_session_ids: [1, 5, 10], filter: :last_attempt }
9
9
  end
10
10
  let(:stubbed_response) { { 'job_id' => 1 } }
11
- let(:expected_url) { "https://#{host}/api/quizzes/#{params[:quiz_id]}/stats" }
11
+ let(:expected_url) { "https://#{host}/api/quizzes/#{params[:quiz_id]}/analyses" }
12
12
  let(:status_code) { 200 }
13
13
 
14
14
  before do
@@ -20,7 +20,7 @@ describe QuizApiClient::Services::AnalysesService do
20
20
  )
21
21
  end
22
22
 
23
- it 'posts to quiz_api/api/quizzes/{id}/stats and returns the response' do
23
+ it 'posts to quiz_api/api/quizzes/{id}/analyses and returns the response' do
24
24
  result = subject.create(params: params, token: 'token')
25
25
  expect(result.parsed_response).to eql(stubbed_response)
26
26
  end
@@ -0,0 +1,26 @@
1
+ describe QuizApiClient::Services::BankEntriesService do
2
+ let(:host) { 'api.host' }
3
+ let(:config) { QuizApiClient::Config.new { |c| c.host = host } }
4
+ let(:subject) { described_class.new(config) }
5
+
6
+ describe '#list' do
7
+ let(:params) { { id: 1 } }
8
+ let(:stubbed_response) { { 'id' => 1, 'entry' => { 'id' => 1 } } }
9
+ let(:expected_url) { "https://#{host}/api/internal_services/banks/#{params[:id]}/bank_entries?page=&per_page=" }
10
+ let(:status_code) { 200 }
11
+
12
+ before do
13
+ stub_request(:get, expected_url)
14
+ .to_return(
15
+ status: status_code,
16
+ body: stubbed_response.to_json,
17
+ headers: { 'Content-Type' => 'application/json' }
18
+ )
19
+ end
20
+
21
+ it 'gets from quiz_api/api/banks/{id}/bank_entries and returns the response' do
22
+ result = subject.list(params: params, token: 'token')
23
+ expect(result.parsed_response).to eql(stubbed_response)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ describe QuizApiClient::Services::BankService do
2
+ let(:host) { 'api.host' }
3
+ let(:config) { QuizApiClient::Config.new { |c| c.host = host } }
4
+ let(:subject) { described_class.new(config) }
5
+
6
+ describe '#show' do
7
+ let(:params) { { id: 1 } }
8
+ let(:stubbed_response) { { 'id' => 1, 'title' => 'some title' } }
9
+ let(:expected_url) { "https://#{host}/api/internal_services/banks/#{params[:id]}" }
10
+ let(:status_code) { 200 }
11
+
12
+ before do
13
+ stub_request(:get, expected_url)
14
+ .to_return(
15
+ status: status_code,
16
+ body: stubbed_response.to_json,
17
+ headers: { 'Content-Type' => 'application/json' }
18
+ )
19
+ end
20
+
21
+ it 'gets from quiz_api/api/banks and returns the response' do
22
+ result = subject.show(params: params, token: 'token')
23
+ expect(result.parsed_response).to eql(stubbed_response)
24
+ end
25
+ end
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.11.1
4
+ version: 4.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Slaughter
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: exe
17
17
  cert_chain: []
18
- date: 2023-04-18 00:00:00.000000000 Z
18
+ date: 2023-07-17 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: httparty
@@ -180,6 +180,8 @@ files:
180
180
  - lib/quiz_api_client/http_request/metrics.rb
181
181
  - lib/quiz_api_client/json_formatter.rb
182
182
  - lib/quiz_api_client/services/analyses_service.rb
183
+ - lib/quiz_api_client/services/bank_entries_service.rb
184
+ - lib/quiz_api_client/services/bank_service.rb
183
185
  - lib/quiz_api_client/services/base_api_service.rb
184
186
  - lib/quiz_api_client/services/content_exports_service.rb
185
187
  - lib/quiz_api_client/services/courses_service.rb
@@ -211,6 +213,8 @@ files:
211
213
  - spec/quiz_api_client/http_request/metrics_spec.rb
212
214
  - spec/quiz_api_client_spec.rb
213
215
  - spec/services/analyses_service_spec.rb
216
+ - spec/services/bank_entries_service_spec.rb
217
+ - spec/services/bank_service_spec.rb
214
218
  - spec/services/base_api_service_spec.rb
215
219
  - spec/services/content_exports_service_spec.rb
216
220
  - spec/services/courses_service_spec.rb
@@ -252,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
256
  - !ruby/object:Gem::Version
253
257
  version: '0'
254
258
  requirements: []
255
- rubygems_version: 3.3.7
259
+ rubygems_version: 3.4.10
256
260
  signing_key:
257
261
  specification_version: 4
258
262
  summary: Ruby client for quiz_api
@@ -264,6 +268,8 @@ test_files:
264
268
  - spec/quiz_api_client/http_request/metrics_spec.rb
265
269
  - spec/quiz_api_client_spec.rb
266
270
  - spec/services/analyses_service_spec.rb
271
+ - spec/services/bank_entries_service_spec.rb
272
+ - spec/services/bank_service_spec.rb
267
273
  - spec/services/base_api_service_spec.rb
268
274
  - spec/services/content_exports_service_spec.rb
269
275
  - spec/services/courses_service_spec.rb