quiz_api_client 0.2.1 → 1.0.0
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/.dockerignore +3 -3
- data/.gitignore +4 -2
- data/Dockerfile +1 -0
- data/Dockerfile.contracts +19 -0
- data/bin/contracts +19 -0
- data/bin/setup +33 -4
- data/build.sh +17 -3
- data/docker-compose.dev.override.yml +10 -0
- data/docker-compose.yml +5 -0
- data/lib/quiz_api_client/services/jwt_service.rb +3 -10
- data/lib/quiz_api_client/version.rb +1 -1
- data/quiz_api_client.gemspec +2 -1
- metadata +23 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 495e1d1a307162fa8936f613e20380bb842291c1
|
|
4
|
+
data.tar.gz: cb5e833889a0f3291eee0046cecf5f03e3914cc8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: db378349c766050f4da8f8ba9930d745c1585231d944c93dfa09f10ad67fe024c7170c1d33bb6980e1bf539d32b511bd8c20cb58cc71db7cc9a6e24149421e09
|
|
7
|
+
data.tar.gz: cb4fec7cd16e380a062ef9bba994f9eb637d25df5788705fb9f37c8484d785c6f57b33782297a6febf7a557b43db80ac413a76757083d8823749f1f652376c3c
|
data/.dockerignore
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/coverage
|
|
2
|
-
/docker-compose
|
|
3
|
-
/Dockerfile
|
|
4
|
-
/**/*.gem
|
|
2
|
+
/docker-compose.*
|
|
3
|
+
/Dockerfile*
|
|
4
|
+
/**/*.gem
|
data/.gitignore
CHANGED
data/Dockerfile
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
FROM instructure/ruby:2.3
|
|
2
|
+
|
|
3
|
+
USER root
|
|
4
|
+
|
|
5
|
+
ENV APP_HOME /usr/src/app
|
|
6
|
+
RUN mkdir -p $APP_HOME/log
|
|
7
|
+
RUN mkdir -p $APP_HOME/pacts
|
|
8
|
+
|
|
9
|
+
COPY quiz_api_client.gemspec Gemfile $APP_HOME/
|
|
10
|
+
COPY lib/quiz_api_client/version.rb $APP_HOME/lib/quiz_api_client/version.rb
|
|
11
|
+
|
|
12
|
+
USER docker
|
|
13
|
+
RUN bundle install --quiet --jobs 8
|
|
14
|
+
|
|
15
|
+
USER root
|
|
16
|
+
COPY . $APP_HOME
|
|
17
|
+
RUN chown -R docker:docker $APP_HOME
|
|
18
|
+
|
|
19
|
+
USER docker
|
data/bin/contracts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function print_results() {
|
|
4
|
+
exit_code=$?
|
|
5
|
+
set +e
|
|
6
|
+
|
|
7
|
+
docker-compose rm -fv contracts-testrunner
|
|
8
|
+
|
|
9
|
+
if [[ "$exit_code" == "0" ]]; then
|
|
10
|
+
echo ""
|
|
11
|
+
echo "Success!"
|
|
12
|
+
fi
|
|
13
|
+
}
|
|
14
|
+
trap print_results INT TERM EXIT
|
|
15
|
+
set -e
|
|
16
|
+
|
|
17
|
+
docker-compose run --name contracts contracts-testrunner bundle exec rspec spec/contracts
|
|
18
|
+
docker cp contracts:/usr/src/app/log .
|
|
19
|
+
docker cp contracts:/usr/src/app/pacts .
|
data/bin/setup
CHANGED
|
@@ -1,8 +1,37 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
IFS=$'\n\t'
|
|
4
|
-
set -vx
|
|
5
2
|
|
|
3
|
+
function print_results() {
|
|
4
|
+
exit_code=$?
|
|
5
|
+
set +e
|
|
6
|
+
|
|
7
|
+
echo ""
|
|
8
|
+
|
|
9
|
+
if [[ "$exit_code" == "0" ]]; then
|
|
10
|
+
echo "Success!"
|
|
11
|
+
else
|
|
12
|
+
echo "Something went wrong! Check the output above for details."
|
|
13
|
+
fi
|
|
14
|
+
}
|
|
15
|
+
trap print_results INT TERM EXIT
|
|
16
|
+
set -e
|
|
17
|
+
|
|
18
|
+
echo ""
|
|
19
|
+
echo "Preparing environment for native development..."
|
|
6
20
|
bundle install
|
|
7
21
|
|
|
8
|
-
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Preparing environment for dockerized development (if you choose to use it)..."
|
|
24
|
+
|
|
25
|
+
override_file='docker-compose.override.yml'
|
|
26
|
+
dev_override_file='docker-compose.dev.override.yml'
|
|
27
|
+
if [ -f ${override_file} ] && ! cmp ${override_file} ${dev_override_file} --silent; then
|
|
28
|
+
echo "We found an existing ${override_file}"
|
|
29
|
+
echo ""
|
|
30
|
+
echo "You'll want to merge that file with the version controlled
|
|
31
|
+
docker-compose.dev.override.yml file to make sure you've got
|
|
32
|
+
the most recent changes."
|
|
33
|
+
echo ""
|
|
34
|
+
else
|
|
35
|
+
echo "We are copying the development example override file to docker-compose.override.yml for you."
|
|
36
|
+
cp ${dev_override_file} ${override_file}
|
|
37
|
+
fi
|
data/build.sh
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
#!/bin/bash
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -ex
|
|
4
|
+
|
|
5
|
+
function save_pact_files_to_s3()
|
|
6
|
+
{
|
|
7
|
+
echo "Saving pact files to S3..."
|
|
8
|
+
aws s3 cp pacts s3://ci-asset-cache/pacts/${JOB_NAME} --recursive --only-show-errors --region us-east-1
|
|
9
|
+
}
|
|
2
10
|
|
|
3
11
|
function cleanup() {
|
|
4
12
|
exit_code=$?
|
|
@@ -10,8 +18,14 @@ function cleanup() {
|
|
|
10
18
|
}
|
|
11
19
|
trap cleanup INT TERM EXIT
|
|
12
20
|
|
|
13
|
-
set -e
|
|
14
|
-
|
|
15
21
|
docker-compose build --pull
|
|
16
22
|
echo "Running test suite..."
|
|
17
23
|
docker-compose run --name coverage testrunner $@
|
|
24
|
+
|
|
25
|
+
echo ""
|
|
26
|
+
echo "Running contract tests..."
|
|
27
|
+
docker-compose run --name contracts -T contracts-testrunner bundle exec rspec spec/contracts
|
|
28
|
+
docker cp contracts:/usr/src/app/pacts .
|
|
29
|
+
docker cp contracts:/usr/src/app/log .
|
|
30
|
+
|
|
31
|
+
save_pact_files_to_s3
|
data/docker-compose.yml
CHANGED
|
@@ -11,22 +11,15 @@ module QuizApiClient::Services
|
|
|
11
11
|
@protocol = protocol
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
def grant_permission(scope:, exp: nil, resource_id: nil)
|
|
14
|
+
def grant_permission(scope:, exp: nil, resource_id: nil, uuid: nil)
|
|
15
15
|
payload = {
|
|
16
16
|
host: URI.parse("#{protocol}://#{host}").host,
|
|
17
17
|
consumer_key: consumer_key,
|
|
18
18
|
scope: scope,
|
|
19
|
-
exp: exp || Time.now.utc.to_i + 60
|
|
20
|
-
|
|
21
|
-
# FIXME: This is currently required on quiz_web
|
|
22
|
-
user: {
|
|
23
|
-
full_name: 'Fake Full Name',
|
|
24
|
-
given_name: 'Fake',
|
|
25
|
-
email: 'quizzes+fake@instructure.com',
|
|
26
|
-
id: 1
|
|
27
|
-
}
|
|
19
|
+
exp: exp || Time.now.utc.to_i + 60
|
|
28
20
|
}
|
|
29
21
|
payload[:resource_id] = resource_id if resource_id
|
|
22
|
+
payload[:user] = { uuid: uuid } if uuid
|
|
30
23
|
|
|
31
24
|
JWT.encode(payload, shared_secret, HASHING_ALGORITHM)
|
|
32
25
|
end
|
data/quiz_api_client.gemspec
CHANGED
|
@@ -15,12 +15,13 @@ Gem::Specification.new do |spec|
|
|
|
15
15
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
16
16
|
spec.require_paths = ['lib']
|
|
17
17
|
|
|
18
|
-
spec.add_dependency 'httparty'
|
|
18
|
+
spec.add_dependency 'httparty', '0.14.0'
|
|
19
19
|
spec.add_dependency 'jwt'
|
|
20
20
|
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.12'
|
|
22
22
|
spec.add_development_dependency 'simplecov'
|
|
23
23
|
spec.add_development_dependency 'webmock'
|
|
24
|
+
spec.add_development_dependency 'pact', '~> 1.12.0'
|
|
24
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
|
25
26
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
26
27
|
end
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: quiz_api_client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.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-05-
|
|
11
|
+
date: 2017-05-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: httparty
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 0.14.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 0.14.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: jwt
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,6 +80,20 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: pact
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 1.12.0
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 1.12.0
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: rake
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -121,12 +135,15 @@ files:
|
|
|
121
135
|
- ".rspec"
|
|
122
136
|
- ".rubocop.yml"
|
|
123
137
|
- Dockerfile
|
|
138
|
+
- Dockerfile.contracts
|
|
124
139
|
- Gemfile
|
|
125
140
|
- README.md
|
|
126
141
|
- Rakefile
|
|
127
142
|
- bin/console
|
|
143
|
+
- bin/contracts
|
|
128
144
|
- bin/setup
|
|
129
145
|
- build.sh
|
|
146
|
+
- docker-compose.dev.override.yml
|
|
130
147
|
- docker-compose.yml
|
|
131
148
|
- lib/quiz_api_client.rb
|
|
132
149
|
- lib/quiz_api_client/http_client.rb
|