quiz_api_client 0.2.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|