quiz_api_client 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/build.sh +5 -2
- data/lib/quiz_api_client/http_client.rb +35 -15
- data/lib/quiz_api_client/services/item_analyses_service.rb +3 -4
- data/lib/quiz_api_client/services/qti_imports_service.rb +1 -1
- data/lib/quiz_api_client/services/quiz_analyses_service.rb +1 -2
- data/lib/quiz_api_client/services/quiz_entries_service.rb +5 -4
- data/lib/quiz_api_client/services/quiz_session_events_service.rb +4 -4
- data/lib/quiz_api_client/services/quizzes_service.rb +5 -4
- data/lib/quiz_api_client/services/session_item_results_service.rb +5 -4
- data/lib/quiz_api_client/version.rb +1 -1
- data/quiz_api_client.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70e713b4e5b2500e94c9b5a2c3d37a199cbe217f
|
4
|
+
data.tar.gz: 23d8d25b11174dd9b62073be217bcf3ba446f378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1432971a3e6b77b29e10cabb6336076e8d714fcbe030b1722d9f2c04d76f9e5ad4d96048c325a5f28e432db917bd31cee8d6179995222a52784448ab309d5b2d
|
7
|
+
data.tar.gz: 20ab1c0813f2bf9a9be32f3132f333a1ecf9144669461a2e68ebcd873010fdd714925a1ada23036e70e27749fcd696fde0553b8038d5a30863f9ae14e5529154
|
data/build.sh
CHANGED
@@ -5,7 +5,8 @@ set -ex
|
|
5
5
|
function save_pact_files_to_s3()
|
6
6
|
{
|
7
7
|
echo "Saving pact files to S3..."
|
8
|
-
|
8
|
+
folder=${1:-latest}
|
9
|
+
aws s3 cp pacts s3://ci-asset-cache/pacts/${JOB_NAME}/${folder} --recursive --only-show-errors --region us-east-1
|
9
10
|
}
|
10
11
|
|
11
12
|
function cleanup() {
|
@@ -28,4 +29,6 @@ docker-compose run --name contracts -T contracts-testrunner bundle exec rspec sp
|
|
28
29
|
docker cp contracts:/usr/src/app/pacts .
|
29
30
|
docker cp contracts:/usr/src/app/log .
|
30
31
|
|
31
|
-
|
32
|
+
if [[ "${GERRIT_EVENT_TYPE}" == "change-merged" ]]; then
|
33
|
+
save_pact_files_to_s3
|
34
|
+
fi
|
@@ -11,47 +11,67 @@ module QuizApiClient
|
|
11
11
|
@jwt = jwt
|
12
12
|
end
|
13
13
|
|
14
|
-
def get(path, query
|
15
|
-
make_request :get, path,
|
14
|
+
def get(path, all: false, query: {})
|
15
|
+
return make_request :get, path, query: query unless all
|
16
|
+
make_paginated_request :get, path, query: query
|
16
17
|
end
|
17
18
|
|
18
19
|
def post(path, body = {})
|
19
|
-
make_request :post, path,
|
20
|
+
make_request :post, path, body: body.to_json
|
20
21
|
end
|
21
22
|
|
22
23
|
def patch(path, body = {})
|
23
|
-
make_request :patch, path,
|
24
|
+
make_request :patch, path, body: body.to_json
|
24
25
|
end
|
25
26
|
|
26
27
|
def put(path, body = {})
|
27
|
-
make_request :put, path,
|
28
|
+
make_request :put, path, body: body.to_json
|
28
29
|
end
|
29
30
|
|
30
31
|
def delete(path)
|
31
|
-
make_request :delete, path
|
32
|
+
make_request :delete, path
|
32
33
|
end
|
33
34
|
|
34
35
|
private
|
35
36
|
|
36
|
-
def make_request(method, path,
|
37
|
+
def make_request(method, path, request_options = {})
|
37
38
|
self.class.send(
|
38
39
|
method,
|
39
40
|
"#{uri}#{path}",
|
40
|
-
|
41
|
+
default_request_data.merge(request_options)
|
41
42
|
)
|
42
43
|
rescue HTTParty::Error, Errno::ECONNREFUSED, Net::ReadTimeout => e
|
43
44
|
raise RequestFailed, e.message
|
44
45
|
end
|
45
46
|
|
46
|
-
def
|
47
|
-
|
47
|
+
def make_paginated_request(method, path, request_options)
|
48
|
+
entities = []
|
49
|
+
request_path = path
|
50
|
+
|
51
|
+
until request_path.nil? do
|
52
|
+
resp = make_request(method, request_path, request_options)
|
53
|
+
entities.concat(resp.parsed_response)
|
54
|
+
request_path = next_page(resp)
|
55
|
+
end
|
56
|
+
entities
|
57
|
+
end
|
58
|
+
|
59
|
+
def default_request_data
|
60
|
+
{
|
61
|
+
headers: {
|
62
|
+
'Authorization' => jwt,
|
63
|
+
'AuthType' => 'Signature',
|
64
|
+
'Accept' => 'application/json',
|
65
|
+
'Content-Type' => 'application/json'
|
66
|
+
}
|
67
|
+
}
|
48
68
|
end
|
49
69
|
|
50
|
-
def
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
70
|
+
def next_page(response)
|
71
|
+
links = LinkHeader.parse(response.headers['link']).links
|
72
|
+
|
73
|
+
next_link = links.find { |link| link['rel'] == 'next' }
|
74
|
+
next_link.href if next_link
|
55
75
|
end
|
56
76
|
end
|
57
77
|
end
|
@@ -1,18 +1,17 @@
|
|
1
1
|
module QuizApiClient::Services
|
2
2
|
class ItemAnalysesService < BaseApiService
|
3
|
-
def list(params:, token: nil)
|
3
|
+
def list(params:, token: nil, all: false)
|
4
4
|
raise 'Quiz Id Required' unless params.key?(:quiz_id)
|
5
5
|
client(token: token).get(
|
6
6
|
"/api/quizzes/#{params[:quiz_id]}/stats/item_analyses",
|
7
|
-
|
7
|
+
all: all
|
8
8
|
)
|
9
9
|
end
|
10
10
|
|
11
11
|
def get(params:, token: nil)
|
12
12
|
raise 'Quiz Id and Item Id are Required' unless params.key?(:id) && params.key?(:quiz_id)
|
13
13
|
client(token: token).get(
|
14
|
-
"/api/quizzes/#{params[:quiz_id]}/stats/item_analyses/#{params[:id]}"
|
15
|
-
{}
|
14
|
+
"/api/quizzes/#{params[:quiz_id]}/stats/item_analyses/#{params[:id]}"
|
16
15
|
)
|
17
16
|
end
|
18
17
|
end
|
@@ -1,15 +1,16 @@
|
|
1
1
|
module QuizApiClient::Services
|
2
2
|
class QuizEntriesService < BaseApiService
|
3
|
-
def list(params:, token: nil)
|
3
|
+
def list(params:, token: nil, all: false)
|
4
4
|
raise 'Quiz Id Required' unless params && params[:id]
|
5
|
-
get_from_quiz_api(params: params, token: token)
|
5
|
+
get_from_quiz_api(params: params, token: token, all: all)
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
9
|
|
10
|
-
def get_from_quiz_api(params:, token:)
|
10
|
+
def get_from_quiz_api(params:, token:, all:)
|
11
11
|
client(token: token).get(
|
12
|
-
"/api/quizzes/#{params[:id]}/quiz_entries"
|
12
|
+
"/api/quizzes/#{params[:id]}/quiz_entries",
|
13
|
+
all: all
|
13
14
|
)
|
14
15
|
end
|
15
16
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module QuizApiClient::Services
|
2
2
|
class QuizSessionEventsService < BaseApiService
|
3
|
-
def list(params:, token: nil)
|
3
|
+
def list(params:, token: nil, all: false)
|
4
4
|
raise 'Quiz Session Id Required' unless params.key?(:quiz_session_id)
|
5
|
-
get_from_quiz_api(params: params, token: token)
|
5
|
+
get_from_quiz_api(params: params, token: token, all: all)
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
9
|
|
10
|
-
def get_from_quiz_api(params:, token:)
|
10
|
+
def get_from_quiz_api(params:, token:, all:)
|
11
11
|
client(token: token).get(
|
12
12
|
"/api/quiz_sessions/#{params[:quiz_session_id]}/quiz_session_events",
|
13
|
-
|
13
|
+
all: all
|
14
14
|
)
|
15
15
|
end
|
16
16
|
end
|
@@ -4,8 +4,8 @@ module QuizApiClient::Services
|
|
4
4
|
post_to_quiz_api(params: params, token: token)
|
5
5
|
end
|
6
6
|
|
7
|
-
def list(params:, token: nil)
|
8
|
-
get_from_quiz_api(params: params, token: token)
|
7
|
+
def list(params:, token: nil, all: false)
|
8
|
+
get_from_quiz_api(params: params, token: token, all: all)
|
9
9
|
end
|
10
10
|
|
11
11
|
private
|
@@ -17,10 +17,11 @@ module QuizApiClient::Services
|
|
17
17
|
)
|
18
18
|
end
|
19
19
|
|
20
|
-
def get_from_quiz_api(params:, token:)
|
20
|
+
def get_from_quiz_api(params:, token:, all:)
|
21
21
|
client(token: token).get(
|
22
22
|
'/api/quizzes',
|
23
|
-
|
23
|
+
all: all,
|
24
|
+
query: params
|
24
25
|
)
|
25
26
|
end
|
26
27
|
end
|
@@ -1,16 +1,17 @@
|
|
1
1
|
module QuizApiClient::Services
|
2
2
|
class SessionItemResultsService < BaseApiService
|
3
|
-
def list(params:, token: nil)
|
3
|
+
def list(params:, token: nil, all: false)
|
4
4
|
raise 'QuizSession Id Required' unless params && params[:quiz_session_id]
|
5
5
|
raise 'QuizSessionResult Id Required' unless params && params[:quiz_session_result_id]
|
6
|
-
get_from_quiz_api(params: params, token: token)
|
6
|
+
get_from_quiz_api(params: params, token: token, all: all)
|
7
7
|
end
|
8
8
|
|
9
9
|
private
|
10
10
|
|
11
|
-
def get_from_quiz_api(params:, token:)
|
11
|
+
def get_from_quiz_api(params:, token:, all:)
|
12
12
|
client(token: token).get(
|
13
|
-
"/api/quiz_sessions/#{params[:quiz_session_id]}/results/#{params[:quiz_session_result_id]}/session_item_results"
|
13
|
+
"/api/quiz_sessions/#{params[:quiz_session_id]}/results/#{params[:quiz_session_result_id]}/session_item_results",
|
14
|
+
all: all
|
14
15
|
)
|
15
16
|
end
|
16
17
|
end
|
data/quiz_api_client.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quiz_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: link_header
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|