quiz_api_client 0.1.5 → 0.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03f54de286917c727dd082e05ba212e603a0e95f
4
- data.tar.gz: ed6a0f6173ce23ae0bb238adb4ac743c9cca1dcb
3
+ metadata.gz: b8b6d357d650b6a668514767556251baa1bb1786
4
+ data.tar.gz: 3376b2fea80424f9ed013363303d1edf56108f4c
5
5
  SHA512:
6
- metadata.gz: efb836b3ee5f457c0385c516cb3321cad082c43afb72a8853c4aef1bc64f5a8f5cd49a327791b866764f9f27942039348ce39cc1b219e681cf75975631d8a4f4
7
- data.tar.gz: 53a5b9374b624e3ff60aa971d0bef3c8d6f17e678717e99cc2110766de77880d745462b9aa069d26d99bc4015a3a68a68dc719e415eff1e1393d46de1cbc1241
6
+ metadata.gz: b2572edba5803667282c491e2c764d5b09b7121757b1afb12effcbc2ca4ee161ce5ed2cf093f1cce3530f5638ec5fa5720d40c9add67f264ee53ff565f519136
7
+ data.tar.gz: 3138426617bb189f052aa4131653a51a062bccc50232a3773409ee39227191aa9e2d62fd08c6b064610b64494247973797dcbe602d1f5c2da9febe7f1ca2bef5
data/.gitignore CHANGED
@@ -6,3 +6,5 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /Gemfile.lock
10
+
data/Dockerfile CHANGED
@@ -1,23 +1,19 @@
1
- FROM instructure/ruby:2.3
1
+ FROM instructure/rvm
2
2
 
3
- USER root
4
-
5
- RUN apt-get update \
6
- && apt-get install -y unzip \
7
- && apt-get clean \
8
- && rm -rf /var/lib/apt/lists/*
9
-
10
- ENV LANG C.UTF-8
11
3
  WORKDIR /app
12
4
 
13
- COPY Gemfile quiz_api_client.gemspec Gemfile.lock /app/
14
- COPY . /app
15
- RUN chown -R docker:docker /app
5
+ COPY quiz_api_client.gemspec Gemfile /app/
6
+ COPY lib/quiz_api_client/version.rb /app/lib/quiz_api_client/version.rb
16
7
 
17
- USER docker
18
- RUN bundle install --jobs 8
19
8
  USER root
9
+ RUN chown -R docker:docker /app
20
10
 
21
- RUN mkdir -p /app/coverage && chown -R docker:docker /app
11
+ USER docker
12
+ RUN /bin/bash -l -c "cd /app && rvm-exec 2.4 bundle install --jobs 5"
13
+ COPY . /app
22
14
 
15
+ USER root
16
+ RUN chown -R docker:docker /app
23
17
  USER docker
18
+
19
+ CMD /bin/bash -l -c "rvm-exec 2.4 bundle exec rspec"
data/README.md CHANGED
@@ -103,9 +103,9 @@ client.quizzes_service.list(params:)
103
103
 
104
104
  **Tokens**
105
105
  ```ruby
106
- # Generate token: Update Quiz Session
106
+ # Generate token: Grade Quiz Session
107
107
  client.quiz_session_service.token(
108
- scope: client.quiz_session_service.scope_update,
108
+ scope: client.quiz_session_service.scope_grade,
109
109
  exp: some_expiration,
110
110
  resource_id: quiz_session_id
111
111
  )
@@ -116,6 +116,13 @@ client.quiz_session_service.token(
116
116
  exp: some_expiration,
117
117
  resource_id: quiz_session_id
118
118
  )
119
+
120
+ # Generate token: Update Quiz Session
121
+ client.quiz_session_service.token(
122
+ scope: client.quiz_session_service.scope_update,
123
+ exp: some_expiration,
124
+ resource_id: quiz_session_id
125
+ )
119
126
  ```
120
127
 
121
128
  **API Calls**
data/build.sh CHANGED
@@ -1,12 +1,10 @@
1
- #!/bin/bash
2
-
3
- export COMPOSE_PROJECT_NAME=api_client
1
+ #!/bin/bash -ex
4
2
 
5
3
  function cleanup() {
6
4
  exit_code=$?
7
5
  set +e
8
- docker cp testrunner:/app/coverage .
9
- docker-compose stop
6
+ docker cp coverage:/app/coverage .
7
+ docker-compose kill
10
8
  docker-compose rm -f
11
9
  exit $exit_code
12
10
  }
@@ -16,4 +14,4 @@ set -e
16
14
 
17
15
  docker-compose build --pull
18
16
  echo "Running test suite..."
19
- docker-compose run --name testrunner -T testrunner bundle exec rspec
17
+ docker-compose run --name coverage testrunner $@
data/docker-compose.yml CHANGED
@@ -2,4 +2,4 @@ version: '2'
2
2
 
3
3
  services:
4
4
  testrunner:
5
- build: .
5
+ build: .
@@ -1,5 +1,3 @@
1
- require 'httparty'
2
-
3
1
  module QuizApiClient
4
2
  class HttpClient
5
3
  include HTTParty
@@ -1,6 +1,3 @@
1
- require 'quiz_api_client/http_client'
2
- require 'quiz_api_client/services/jwt_service'
3
-
4
1
  module QuizApiClient::Services
5
2
  class BaseApiService
6
3
  attr_reader :consumer_key, :host, :shared_secret,
@@ -23,9 +20,7 @@ module QuizApiClient::Services
23
20
  end
24
21
 
25
22
  def uri
26
- uri = URI::HTTP.build(host: host)
27
- uri.scheme = protocol
28
- uri.to_s
23
+ URI.parse("#{protocol}://#{host}").to_s
29
24
  end
30
25
 
31
26
  def generate_token(scope:, exp: nil, resource_id: nil)
@@ -35,7 +30,7 @@ module QuizApiClient::Services
35
30
  def jwt_service
36
31
  QuizApiClient::Services::JwtService.new(
37
32
  consumer_key: consumer_key,
38
- host: host,
33
+ host: URI.parse("#{protocol}://#{host}").host,
39
34
  shared_secret: shared_secret,
40
35
  protocol: protocol
41
36
  )
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class ItemAnalysesService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,8 +1,7 @@
1
- require 'jwt'
2
-
3
1
  module QuizApiClient::Services
4
- HASHING_ALGORITHM = 'HS512'.freeze
5
2
  class JwtService
3
+ HASHING_ALGORITHM = 'HS512'.freeze
4
+
6
5
  attr_reader :consumer_key, :host, :shared_secret, :protocol
7
6
 
8
7
  def initialize(consumer_key: nil, shared_secret:, host:, protocol: 'https')
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QtiImportsService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizAnalysesService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizSessionEventsService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizSessionService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -19,6 +17,10 @@ module QuizApiClient::Services
19
17
  'quiz_session.take'
20
18
  end
21
19
 
20
+ def scope_grade
21
+ 'quiz_session.grade'
22
+ end
23
+
22
24
  private
23
25
 
24
26
  def patch_to_quiz_api(params:, token:)
@@ -29,7 +31,11 @@ module QuizApiClient::Services
29
31
  end
30
32
 
31
33
  def allowed_scopes
32
- [scope_update, scope_take]
34
+ [
35
+ scope_grade,
36
+ scope_take,
37
+ scope_update
38
+ ]
33
39
  end
34
40
  end
35
41
  end
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizSessionsService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,5 +1,3 @@
1
- require 'quiz_api_client/services/base_api_service'
2
-
3
1
  module QuizApiClient::Services
4
2
  class QuizzesService < BaseApiService
5
3
  def token(scope:, exp: nil, resource_id: nil)
@@ -1,3 +1,3 @@
1
1
  module QuizApiClient
2
- VERSION = '0.1.5'.freeze
2
+ VERSION = '0.1.7'.freeze
3
3
  end
@@ -1,13 +1,5 @@
1
- require 'quiz_api_client/version'
2
- require 'quiz_api_client/services/qti_imports_service'
3
- require 'quiz_api_client/services/quiz_service'
4
- require 'quiz_api_client/services/quizzes_service'
5
- require 'quiz_api_client/services/quiz_sessions_service'
6
- require 'quiz_api_client/services/quiz_session_service'
7
- require 'quiz_api_client/services/quiz_sessions_service'
8
- require 'quiz_api_client/services/item_analyses_service'
9
- require 'quiz_api_client/services/quiz_analyses_service'
10
- require 'quiz_api_client/services/quiz_session_events_service'
1
+ require 'httparty'
2
+ require 'jwt'
11
3
 
12
4
  module QuizApiClient
13
5
  class Client
@@ -64,3 +56,16 @@ module QuizApiClient
64
56
  end
65
57
  end
66
58
  end
59
+
60
+ require 'quiz_api_client/http_client'
61
+ require 'quiz_api_client/services/jwt_service'
62
+ require 'quiz_api_client/services/base_api_service'
63
+
64
+ require 'quiz_api_client/services/item_analyses_service'
65
+ require 'quiz_api_client/services/qti_imports_service'
66
+ require 'quiz_api_client/services/quiz_analyses_service'
67
+ require 'quiz_api_client/services/quiz_service'
68
+ require 'quiz_api_client/services/quiz_session_events_service'
69
+ require 'quiz_api_client/services/quiz_session_service'
70
+ require 'quiz_api_client/services/quiz_sessions_service'
71
+ require 'quiz_api_client/services/quizzes_service'
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: 0.1.5
4
+ version: 0.1.7
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-03-10 00:00:00.000000000 Z
11
+ date: 2017-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -122,7 +122,6 @@ files:
122
122
  - ".rubocop.yml"
123
123
  - Dockerfile
124
124
  - Gemfile
125
- - Gemfile.lock
126
125
  - README.md
127
126
  - Rakefile
128
127
  - bin/console
@@ -162,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
161
  version: '0'
163
162
  requirements: []
164
163
  rubyforge_project:
165
- rubygems_version: 2.6.10
164
+ rubygems_version: 2.5.2
166
165
  signing_key:
167
166
  specification_version: 4
168
167
  summary: Ruby client for quiz_api
data/Gemfile.lock DELETED
@@ -1,69 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- quiz_api_client (0.1.5)
5
- httparty
6
- jwt
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- addressable (2.5.0)
12
- public_suffix (~> 2.0, >= 2.0.2)
13
- coderay (1.1.1)
14
- crack (0.4.3)
15
- safe_yaml (~> 1.0.0)
16
- diff-lcs (1.3)
17
- docile (1.1.5)
18
- hashdiff (0.3.2)
19
- httparty (0.14.0)
20
- multi_xml (>= 0.5.2)
21
- json (2.0.3)
22
- jwt (1.5.6)
23
- method_source (0.8.2)
24
- multi_xml (0.6.0)
25
- pry (0.10.4)
26
- coderay (~> 1.1.0)
27
- method_source (~> 0.8.1)
28
- slop (~> 3.4)
29
- public_suffix (2.0.5)
30
- rake (10.4.2)
31
- rspec (3.5.0)
32
- rspec-core (~> 3.5.0)
33
- rspec-expectations (~> 3.5.0)
34
- rspec-mocks (~> 3.5.0)
35
- rspec-core (3.5.4)
36
- rspec-support (~> 3.5.0)
37
- rspec-expectations (3.5.0)
38
- diff-lcs (>= 1.2.0, < 2.0)
39
- rspec-support (~> 3.5.0)
40
- rspec-mocks (3.5.0)
41
- diff-lcs (>= 1.2.0, < 2.0)
42
- rspec-support (~> 3.5.0)
43
- rspec-support (3.5.0)
44
- safe_yaml (1.0.4)
45
- simplecov (0.13.0)
46
- docile (~> 1.1.0)
47
- json (>= 1.8, < 3)
48
- simplecov-html (~> 0.10.0)
49
- simplecov-html (0.10.0)
50
- slop (3.6.0)
51
- webmock (2.3.2)
52
- addressable (>= 2.3.6)
53
- crack (>= 0.3.2)
54
- hashdiff
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- bundler (~> 1.12)
61
- pry
62
- quiz_api_client!
63
- rake (~> 10.0)
64
- rspec (~> 3.0)
65
- simplecov
66
- webmock
67
-
68
- BUNDLED WITH
69
- 1.14.3