quiz_api_client 2.4.2 → 2.4.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/.rubocop.yml +9 -17
- data/Dockerfile +1 -1
- data/README.md +2 -2
- data/build.sh +5 -0
- data/lib/quiz_api_client/http_client.rb +14 -11
- data/lib/quiz_api_client/json_formatter.rb +3 -4
- data/lib/quiz_api_client/services/base_api_service.rb +6 -6
- data/lib/quiz_api_client/services/session_item_results_service.rb +5 -3
- data/lib/quiz_api_client/version.rb +1 -1
- data/quiz_api_client.gemspec +12 -10
- metadata +58 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6be53ea487e4dde2bf8f57ceda6bcc0e28f1203
|
4
|
+
data.tar.gz: dcc4cbdced4de27dab3a0f2b9ff826028b282360
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5949cfe9e2580614676224ab87e90ef0598a84aa2e9edb2506ae98a42b13e89c0205f1ec14ba947099d1578f3cba8dc77f430b216aeb355cbebdceb0b61cebff
|
7
|
+
data.tar.gz: 6ae2b643918ab843bbfc46c25af37034b8cf6dca31ae75f0725ea7beb84fb67b2126ba565194190225fca4878a8cec4a36b6fccc360bb37eb230ca5f3fa0f1df
|
data/.rubocop.yml
CHANGED
@@ -1,10 +1,3 @@
|
|
1
|
-
Rails:
|
2
|
-
Enabled: true
|
3
|
-
|
4
|
-
Rails/HttpPositionalArguments:
|
5
|
-
# Renable once we are on Rails v5
|
6
|
-
Enabled: false
|
7
|
-
|
8
1
|
AllCops:
|
9
2
|
TargetRubyVersion: 2.3
|
10
3
|
|
@@ -20,11 +13,10 @@ Metrics/MethodLength:
|
|
20
13
|
Metrics/BlockLength:
|
21
14
|
Max: 30
|
22
15
|
Exclude:
|
23
|
-
-
|
24
|
-
-
|
25
|
-
- 'app/docs/**/*.rb'
|
16
|
+
- quiz_api_client.gemspec
|
17
|
+
- spec/**/*.rb
|
26
18
|
|
27
|
-
|
19
|
+
Layout/AlignParameters:
|
28
20
|
# Alignment of parameters in multi-line method calls.
|
29
21
|
#
|
30
22
|
# The `with_fixed_indentation` style aligns the following lines with one
|
@@ -34,6 +26,12 @@ Style/AlignParameters:
|
|
34
26
|
# b)
|
35
27
|
EnforcedStyle: with_fixed_indentation
|
36
28
|
|
29
|
+
Layout/CaseIndentation:
|
30
|
+
EnforcedStyle: end
|
31
|
+
|
32
|
+
Lint/EndAlignment:
|
33
|
+
EnforcedStyleAlignWith: variable
|
34
|
+
|
37
35
|
Style/ClassAndModuleChildren:
|
38
36
|
# Checks the style of children definitions at classes and modules.
|
39
37
|
#
|
@@ -60,12 +58,6 @@ Style/Documentation:
|
|
60
58
|
# classes or other modules.
|
61
59
|
Enabled: false
|
62
60
|
|
63
|
-
Lint/EndAlignment:
|
64
|
-
AlignWith: variable
|
65
|
-
|
66
|
-
Style/CaseIndentation:
|
67
|
-
IndentWhenRelativeTo: end
|
68
|
-
|
69
61
|
Style/FrozenStringLiteralComment:
|
70
62
|
# `when_needed` will add the frozen string literal comment to files
|
71
63
|
# only when the `TargetRubyVersion` is set to 2.3+.
|
data/Dockerfile
CHANGED
data/README.md
CHANGED
@@ -174,9 +174,9 @@ client.quiz_session_events_service.list(
|
|
174
174
|
|
175
175
|
After checking out the repo, run `bin/setup` to install dependencies.
|
176
176
|
|
177
|
-
Then, run `rake spec` to run the tests.
|
177
|
+
Then, run `bundle exec rake spec` to run the tests.
|
178
178
|
|
179
|
-
You can also run `rake console` for an interactive prompt that will allow you to experiment.
|
179
|
+
You can also run `bundle exec rake console` for an interactive prompt that will allow you to experiment.
|
180
180
|
|
181
181
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
182
182
|
|
data/build.sh
CHANGED
@@ -24,6 +24,11 @@ function cleanup() {
|
|
24
24
|
trap cleanup INT TERM EXIT
|
25
25
|
|
26
26
|
docker-compose build --pull
|
27
|
+
|
28
|
+
echo "Running Rubocop..."
|
29
|
+
docker-compose run --rm testrunner /bin/bash -lc \
|
30
|
+
"rvm-exec 2.4 bundle exec rubocop --fail-level autocorrect"
|
31
|
+
|
27
32
|
echo "Running test suite..."
|
28
33
|
docker-compose run --name coverage testrunner $@
|
29
34
|
|
@@ -46,13 +46,15 @@ module QuizApiClient
|
|
46
46
|
|
47
47
|
def initialize_logger(log_level)
|
48
48
|
HTTParty::Logger.add_formatter('quiz_api_client_json_formatter', QuizApiClient::JSONFormatter)
|
49
|
-
@logger = ::Logger.new(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
@logger = ::Logger.new(
|
50
|
+
STDOUT,
|
51
|
+
formatter: proc { |_, _, _, msg| msg.merge(consumer_request_id: @consumer_request_id).to_json },
|
52
|
+
level: unfriendly_logger_level(log_level)
|
53
|
+
)
|
54
|
+
@logger_config = {
|
55
|
+
logger: @logger,
|
56
|
+
log_level: log_level,
|
57
|
+
log_format: :quiz_api_client_json_formatter
|
56
58
|
}
|
57
59
|
end
|
58
60
|
|
@@ -83,9 +85,10 @@ module QuizApiClient
|
|
83
85
|
|
84
86
|
def make_paginated_request(method, url, options)
|
85
87
|
entities = []
|
86
|
-
request_url
|
88
|
+
request_url = url
|
89
|
+
request_options = options
|
87
90
|
|
88
|
-
until request_url.nil?
|
91
|
+
until request_url.nil?
|
89
92
|
resp = make_request(method, request_url, request_options)
|
90
93
|
entities.concat(resp.parsed_response)
|
91
94
|
request_url, request_options = next_page(resp, url, options)
|
@@ -114,7 +117,7 @@ module QuizApiClient
|
|
114
117
|
end
|
115
118
|
|
116
119
|
def next_page_link(response, options)
|
117
|
-
return
|
120
|
+
return if response.headers['link'].blank?
|
118
121
|
links = LinkHeader.parse(response.headers['link']).links
|
119
122
|
next_link = links.find { |link| link['rel'] == 'next' }
|
120
123
|
[next_link.href, options] if next_link
|
@@ -129,7 +132,7 @@ module QuizApiClient
|
|
129
132
|
last_evaluated_hash_key: hash_key,
|
130
133
|
last_evaluated_range_key: range_key
|
131
134
|
)
|
132
|
-
[
|
135
|
+
[url, options.merge(query: query)]
|
133
136
|
end
|
134
137
|
end
|
135
138
|
end
|
@@ -6,13 +6,12 @@ module QuizApiClient
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def format(request, response)
|
9
|
-
@logger.send(
|
9
|
+
@logger.send(
|
10
|
+
@level,
|
10
11
|
client_request_id: response.headers.dig('x-request-id', 0),
|
11
12
|
request_url: request.last_uri,
|
12
13
|
response_code: response.code
|
13
|
-
|
14
|
+
)
|
14
15
|
end
|
15
16
|
end
|
16
17
|
end
|
17
|
-
|
18
|
-
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module QuizApiClient::Services
|
2
2
|
class BaseApiService
|
3
|
-
attr_reader :consumer_key, :host, :shared_secret
|
4
|
-
:protocol, :errors
|
3
|
+
attr_reader :consumer_key, :errors, :host, :protocol, :shared_secret
|
5
4
|
|
6
|
-
def initialize(
|
7
|
-
|
5
|
+
def initialize(
|
6
|
+
consumer_key:, consumer_request_id: nil, host:, protocol: 'https', shared_secret:
|
7
|
+
)
|
8
8
|
@consumer_key = consumer_key
|
9
|
+
@consumer_request_id = consumer_request_id
|
9
10
|
@host = host
|
10
|
-
@shared_secret = shared_secret
|
11
11
|
@protocol = protocol
|
12
|
+
@shared_secret = shared_secret
|
12
13
|
@errors = []
|
13
|
-
@consumer_request_id = consumer_request_id
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
@@ -9,10 +9,12 @@ module QuizApiClient::Services
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def get_from_quiz_api(params:, token:, all:)
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
path = format(
|
13
|
+
'/api/quiz_sessions/%<session>d/results/%<result>d/session_item_results',
|
14
|
+
session: params[:quiz_session_id],
|
15
|
+
result: params[:quiz_session_result_id]
|
15
16
|
)
|
17
|
+
client(token: token).get(path, all: all)
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
data/quiz_api_client.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'quiz_api_client/version'
|
@@ -20,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
20
19
|
'Robin Kuss',
|
21
20
|
'Ryan Taylor'
|
22
21
|
]
|
23
|
-
spec.email
|
22
|
+
spec.email = [
|
24
23
|
'acallejas@instructure.com',
|
25
24
|
'bpetty@instructure.com',
|
26
25
|
'cprescott@instructure.com',
|
@@ -41,15 +40,18 @@ Gem::Specification.new do |spec|
|
|
41
40
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
42
41
|
spec.require_paths = ['lib']
|
43
42
|
|
44
|
-
spec.
|
45
|
-
spec.add_dependency 'jwt', '~> 1.5'
|
46
|
-
spec.add_dependency 'link_header'
|
43
|
+
spec.required_ruby_version = '>= 2.3'
|
47
44
|
|
48
|
-
spec.
|
49
|
-
spec.
|
50
|
-
spec.
|
45
|
+
spec.add_dependency 'httparty', '~> 0.14.0'
|
46
|
+
spec.add_dependency 'jwt', '>= 1.5', '< 3.0'
|
47
|
+
spec.add_dependency 'link_header', '~> 0.0'
|
48
|
+
|
49
|
+
spec.add_development_dependency 'bundler', '~> 1.15'
|
51
50
|
spec.add_development_dependency 'pact', '~> 1.19.2'
|
52
51
|
spec.add_development_dependency 'pact_broker-client', '~> 1.13.1'
|
53
|
-
spec.add_development_dependency 'rake', '~>
|
54
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
52
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
53
|
+
spec.add_development_dependency 'rspec', '~> 3.7'
|
54
|
+
spec.add_development_dependency 'rubocop', '~> 0.52.1'
|
55
|
+
spec.add_development_dependency 'simplecov'
|
56
|
+
spec.add_development_dependency 'webmock'
|
55
57
|
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: 2.4.
|
4
|
+
version: 2.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wang
|
@@ -19,148 +19,168 @@ authors:
|
|
19
19
|
autorequire:
|
20
20
|
bindir: exe
|
21
21
|
cert_chain: []
|
22
|
-
date:
|
22
|
+
date: 2018-02-14 00:00:00.000000000 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: httparty
|
26
26
|
requirement: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 0.14.0
|
31
31
|
type: :runtime
|
32
32
|
prerelease: false
|
33
33
|
version_requirements: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - "~>"
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: 0.14.0
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: jwt
|
40
40
|
requirement: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
|
-
- - "
|
42
|
+
- - ">="
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: '1.5'
|
45
|
+
- - "<"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
45
48
|
type: :runtime
|
46
49
|
prerelease: false
|
47
50
|
version_requirements: !ruby/object:Gem::Requirement
|
48
51
|
requirements:
|
49
|
-
- - "
|
52
|
+
- - ">="
|
50
53
|
- !ruby/object:Gem::Version
|
51
54
|
version: '1.5'
|
55
|
+
- - "<"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '3.0'
|
52
58
|
- !ruby/object:Gem::Dependency
|
53
59
|
name: link_header
|
54
60
|
requirement: !ruby/object:Gem::Requirement
|
55
61
|
requirements:
|
56
|
-
- - "
|
62
|
+
- - "~>"
|
57
63
|
- !ruby/object:Gem::Version
|
58
|
-
version: '0'
|
64
|
+
version: '0.0'
|
59
65
|
type: :runtime
|
60
66
|
prerelease: false
|
61
67
|
version_requirements: !ruby/object:Gem::Requirement
|
62
68
|
requirements:
|
63
|
-
- - "
|
69
|
+
- - "~>"
|
64
70
|
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
71
|
+
version: '0.0'
|
66
72
|
- !ruby/object:Gem::Dependency
|
67
73
|
name: bundler
|
68
74
|
requirement: !ruby/object:Gem::Requirement
|
69
75
|
requirements:
|
70
76
|
- - "~>"
|
71
77
|
- !ruby/object:Gem::Version
|
72
|
-
version: '1.
|
78
|
+
version: '1.15'
|
73
79
|
type: :development
|
74
80
|
prerelease: false
|
75
81
|
version_requirements: !ruby/object:Gem::Requirement
|
76
82
|
requirements:
|
77
83
|
- - "~>"
|
78
84
|
- !ruby/object:Gem::Version
|
79
|
-
version: '1.
|
85
|
+
version: '1.15'
|
80
86
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
87
|
+
name: pact
|
82
88
|
requirement: !ruby/object:Gem::Requirement
|
83
89
|
requirements:
|
84
|
-
- - "
|
90
|
+
- - "~>"
|
85
91
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
92
|
+
version: 1.19.2
|
87
93
|
type: :development
|
88
94
|
prerelease: false
|
89
95
|
version_requirements: !ruby/object:Gem::Requirement
|
90
96
|
requirements:
|
91
|
-
- - "
|
97
|
+
- - "~>"
|
92
98
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
99
|
+
version: 1.19.2
|
94
100
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
101
|
+
name: pact_broker-client
|
96
102
|
requirement: !ruby/object:Gem::Requirement
|
97
103
|
requirements:
|
98
|
-
- - "
|
104
|
+
- - "~>"
|
99
105
|
- !ruby/object:Gem::Version
|
100
|
-
version:
|
106
|
+
version: 1.13.1
|
101
107
|
type: :development
|
102
108
|
prerelease: false
|
103
109
|
version_requirements: !ruby/object:Gem::Requirement
|
104
110
|
requirements:
|
105
|
-
- - "
|
111
|
+
- - "~>"
|
106
112
|
- !ruby/object:Gem::Version
|
107
|
-
version:
|
113
|
+
version: 1.13.1
|
108
114
|
- !ruby/object:Gem::Dependency
|
109
|
-
name:
|
115
|
+
name: rake
|
110
116
|
requirement: !ruby/object:Gem::Requirement
|
111
117
|
requirements:
|
112
118
|
- - "~>"
|
113
119
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
120
|
+
version: '12.0'
|
115
121
|
type: :development
|
116
122
|
prerelease: false
|
117
123
|
version_requirements: !ruby/object:Gem::Requirement
|
118
124
|
requirements:
|
119
125
|
- - "~>"
|
120
126
|
- !ruby/object:Gem::Version
|
121
|
-
version:
|
127
|
+
version: '12.0'
|
122
128
|
- !ruby/object:Gem::Dependency
|
123
|
-
name:
|
129
|
+
name: rspec
|
124
130
|
requirement: !ruby/object:Gem::Requirement
|
125
131
|
requirements:
|
126
132
|
- - "~>"
|
127
133
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
134
|
+
version: '3.7'
|
129
135
|
type: :development
|
130
136
|
prerelease: false
|
131
137
|
version_requirements: !ruby/object:Gem::Requirement
|
132
138
|
requirements:
|
133
139
|
- - "~>"
|
134
140
|
- !ruby/object:Gem::Version
|
135
|
-
version:
|
141
|
+
version: '3.7'
|
136
142
|
- !ruby/object:Gem::Dependency
|
137
|
-
name:
|
143
|
+
name: rubocop
|
138
144
|
requirement: !ruby/object:Gem::Requirement
|
139
145
|
requirements:
|
140
146
|
- - "~>"
|
141
147
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
148
|
+
version: 0.52.1
|
143
149
|
type: :development
|
144
150
|
prerelease: false
|
145
151
|
version_requirements: !ruby/object:Gem::Requirement
|
146
152
|
requirements:
|
147
153
|
- - "~>"
|
148
154
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
155
|
+
version: 0.52.1
|
150
156
|
- !ruby/object:Gem::Dependency
|
151
|
-
name:
|
157
|
+
name: simplecov
|
152
158
|
requirement: !ruby/object:Gem::Requirement
|
153
159
|
requirements:
|
154
|
-
- - "
|
160
|
+
- - ">="
|
155
161
|
- !ruby/object:Gem::Version
|
156
|
-
version: '
|
162
|
+
version: '0'
|
157
163
|
type: :development
|
158
164
|
prerelease: false
|
159
165
|
version_requirements: !ruby/object:Gem::Requirement
|
160
166
|
requirements:
|
161
|
-
- - "
|
167
|
+
- - ">="
|
162
168
|
- !ruby/object:Gem::Version
|
163
|
-
version: '
|
169
|
+
version: '0'
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: webmock
|
172
|
+
requirement: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
164
184
|
description:
|
165
185
|
email:
|
166
186
|
- acallejas@instructure.com
|
@@ -225,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
225
245
|
requirements:
|
226
246
|
- - ">="
|
227
247
|
- !ruby/object:Gem::Version
|
228
|
-
version: '
|
248
|
+
version: '2.3'
|
229
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
250
|
requirements:
|
231
251
|
- - ">="
|
@@ -233,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
253
|
version: '0'
|
234
254
|
requirements: []
|
235
255
|
rubyforge_project:
|
236
|
-
rubygems_version: 2.6.
|
256
|
+
rubygems_version: 2.6.11
|
237
257
|
signing_key:
|
238
258
|
specification_version: 4
|
239
259
|
summary: Ruby client for quiz_api
|