blockscore 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06ecd870cb3e626453bc45ac1641894c5c26ee1b
4
- data.tar.gz: 2cd81bf67f31b992628749517144b566ff04d79b
3
+ metadata.gz: 4f61e8c610b55b1f1ddcceaee471a43ff801f5b6
4
+ data.tar.gz: 1bf303c4c529a8b938c6585f57f2270d83cae4a7
5
5
  SHA512:
6
- metadata.gz: 1337e955e142465e080ec7c7c3bb0629ada9c5c42a29866e4412d6d6be168187d5b491fc6e9e6162a8183da334003db39d7b8aac417284f088e416926bc561e2
7
- data.tar.gz: afe0e88d5c9182893ddee9ea674eeb5ae90e5f5cb9e88fef486c9070782ac21dff91456e481fed5ad635e87033f8ade5236d1987562202ae3c43aa212fcf2a5f
6
+ metadata.gz: 35faf5f2d4491efe6bb94fa84403302be778fc31725744a6b8b190dcfb66c807462f41368ea10f1316c7694e3dd3a6076d92568f0b937a6f417154c95c93a84b
7
+ data.tar.gz: 7d80af18289d119a535c85756486fbfddeba67e0a9ef8ad8a1c8f11c6312686d90f3c0106bdd2e7d8c6218c73a318f33de602c1ba887eaa26c0e296b641e54eb
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
- gem "httparty", "~> 0.13.0"
6
+ gem 'httparty', '~> 0.13.1'
7
7
 
8
8
  # Add dependencies to develop your gem here.
9
9
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -1,5 +1,5 @@
1
1
  GEM
2
- remote: http://rubygems.org/
2
+ remote: https://rubygems.org/
3
3
  specs:
4
4
  activesupport (4.0.3)
5
5
  i18n (~> 0.6, >= 0.6.4)
@@ -25,7 +25,7 @@ GEM
25
25
  oauth2
26
26
  hashie (2.0.5)
27
27
  highline (1.6.20)
28
- httparty (0.13.0)
28
+ httparty (0.13.1)
29
29
  json (~> 1.8)
30
30
  multi_xml (>= 0.5.2)
31
31
  i18n (0.6.9)
@@ -78,7 +78,7 @@ PLATFORMS
78
78
 
79
79
  DEPENDENCIES
80
80
  bundler (~> 1.0)
81
- httparty (~> 0.13.0)
81
+ httparty (~> 0.13.1)
82
82
  jeweler (~> 2.0.1)
83
83
  rdoc (~> 3.12)
84
84
  shoulda
data/README.md CHANGED
@@ -10,7 +10,7 @@ Via rubygems.org:
10
10
  gem install blockscore
11
11
  ```
12
12
 
13
- If you are using rails, add the following to your `Gemfile`:
13
+ If you are using Rails, add the following to your `Gemfile`:
14
14
 
15
15
  ```ruby
16
16
  gem 'blockscore', '~> 1.0.1'
@@ -18,91 +18,30 @@ gem 'blockscore', '~> 1.0.1'
18
18
 
19
19
  ## Getting Started
20
20
 
21
- ### Initializing BlockScore
21
+ To get started, you can initialize the library with one line:
22
22
 
23
23
  ```ruby
24
- @blockscore = BlockScore::Client("your-api-key", version = 2)
24
+ client = BlockScore::Client.new('your-api-key', version = 2)
25
25
  ```
26
26
 
27
- ## Verifications
28
-
29
- ### List all verifications
27
+ To see the list of calls you can make, please visit out [full Ruby API reference](http://docs.blockscore.com/ruby).
30
28
 
31
- ```ruby
32
- @blockscore.verifications
33
- ```
34
-
35
- ### View a verification by ID
36
-
37
- ```ruby
38
- @blockscore.verification("526781407e7b0ace47000001")
39
- ```
40
-
41
- ### Create a new verification
42
-
43
- ```ruby
44
- @blockscore.create_verification({
45
- type: "us_citizen",
46
- date_of_birth: "1993-08-23",
47
- identification: {
48
- ssn: "0000"
49
- },
50
- name: {
51
- first: "Alain",
52
- middle: nil,
53
- last: "Meier"
54
- },
55
- address: {
56
- street1: "1 Infinite Loop",
57
- street2: nil,
58
- city: "Cupertino",
59
- state: "CA",
60
- postal_code: "95014",
61
- country: "US"
62
- }
63
- })
64
- ```
29
+ ## Exceptions and Errors
65
30
 
66
- ## Question Sets
31
+ ### Error Description
67
32
 
68
- ### Create a new question set
33
+ * The generic error class is BlockscoreError. All other types of errors are derived from BlockscoreError.
34
+ * Errors contain information such as the HTTP response code, a short message describing the error, the type of error, and if applicable, the parameter and error code at issue.
35
+ * Also available in the error object is the full JSON text representation of the data.
69
36
 
70
- ```ruby
71
- @blockscore.create_question_set({
72
- verification_id: "53099a636274639ebb0e0000"
73
- })
74
- ```
37
+ ### Error Types
75
38
 
76
- ### Score a question set
77
-
78
- ```ruby
79
- @blockscore.score_question_set({
80
- verification_id: "53099a636274639ebb0e0000",
81
- question_set_id: "53099c5f6274639ebb7e0000",
82
- answers: [
83
- {
84
- question_id: 1,
85
- answer_id: 1
86
- },
87
- {
88
- question_id: 2,
89
- answer_id: 1
90
- },
91
- {
92
- question_id: 3,
93
- answer_id: 1
94
- },
95
- {
96
- question_id: 4,
97
- answer_id: 1
98
- },
99
- {
100
- question_id: 5,
101
- answer_id: 1
102
- }
103
- ]
104
- })
105
- ```
39
+ * BlockscoreError (Generic error, base class)
40
+ * AuthenticationError (401 : Invalid API Key)
41
+ * ValidationError (400 : Input could not be validated)
42
+ * ParameterError (400 : Missing parameter)
43
+ * NotFoundError (404 : Attempting to reference nonexistent endpoint)
44
+ * InternalServerError (500 : Error on the Blockscore API)
106
45
 
107
46
  ## Contributing to BlockScore
108
47
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 2.0.0
data/blockscore.gemspec CHANGED
@@ -2,15 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: blockscore 1.0.1 ruby lib
5
+ # stub: blockscore 2.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "blockscore"
9
- s.version = "1.0.1"
9
+ s.version = "2.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
12
13
  s.authors = ["Alain Meier"]
13
- s.date = "2014-02-23"
14
+ s.date = "2014-06-15"
14
15
  s.description = "A ruby client library for the BlockScore API."
15
16
  s.email = "alain@blockscore.com"
16
17
  s.extra_rdoc_files = [
@@ -30,27 +31,36 @@ Gem::Specification.new do |s|
30
31
  "lib/blockscore-cert.crt",
31
32
  "lib/blockscore.rb",
32
33
  "lib/blockscore/client.rb",
34
+ "lib/blockscore/error/authorization_error.rb",
35
+ "lib/blockscore/error/blockscore_error.rb",
36
+ "lib/blockscore/error/error_handler.rb",
37
+ "lib/blockscore/error/internal_server_error.rb",
38
+ "lib/blockscore/error/not_found_error.rb",
39
+ "lib/blockscore/error/parameter_error.rb",
40
+ "lib/blockscore/error/validation_error.rb",
41
+ "lib/blockscore/errors.rb",
42
+ "lib/blockscore/question_set.rb",
43
+ "lib/blockscore/verification.rb",
33
44
  "test/helper.rb",
34
45
  "test/test_blockscore.rb"
35
46
  ]
36
47
  s.homepage = "http://github.com/blockscore/blockscore-ruby"
37
48
  s.licenses = ["MIT"]
38
- s.require_paths = ["lib"]
39
- s.rubygems_version = "2.1.11"
49
+ s.rubygems_version = "2.2.2"
40
50
  s.summary = "A ruby client library for the BlockScore API."
41
51
 
42
52
  if s.respond_to? :specification_version then
43
53
  s.specification_version = 4
44
54
 
45
55
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_runtime_dependency(%q<httparty>, ["~> 0.13.0"])
56
+ s.add_runtime_dependency(%q<httparty>, ["~> 0.13.1"])
47
57
  s.add_development_dependency(%q<shoulda>, [">= 0"])
48
58
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
49
59
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
50
60
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
51
61
  s.add_development_dependency(%q<simplecov>, [">= 0"])
52
62
  else
53
- s.add_dependency(%q<httparty>, ["~> 0.13.0"])
63
+ s.add_dependency(%q<httparty>, ["~> 0.13.1"])
54
64
  s.add_dependency(%q<shoulda>, [">= 0"])
55
65
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
56
66
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -58,7 +68,7 @@ Gem::Specification.new do |s|
58
68
  s.add_dependency(%q<simplecov>, [">= 0"])
59
69
  end
60
70
  else
61
- s.add_dependency(%q<httparty>, ["~> 0.13.0"])
71
+ s.add_dependency(%q<httparty>, ["~> 0.13.1"])
62
72
  s.add_dependency(%q<shoulda>, [">= 0"])
63
73
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
64
74
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -5,9 +5,16 @@ module BlockScore
5
5
  @ssl_path = File.expand_path(File.join(File.dirname(__FILE__), '../blockscore-cert.crt'))
6
6
  ssl_ca_file @ssl_path
7
7
 
8
+ attr_reader :verification
9
+ attr_reader :question_set
10
+
8
11
  def initialize(api_key, version, options = {})
12
+
9
13
  @api_key = api_key
10
14
  @auth = { username: @api_key, password: "" }
15
+ @verification = BlockScore::Verification.new(self)
16
+ @question_set = BlockScore::QuestionSet.new(self)
17
+ @error_handler = BlockScore::ErrorHandler.new
11
18
 
12
19
  options[:base_uri] ||= "https://api.blockscore.com"
13
20
  options[:headers] = { 'Accept' => 'application/vnd.blockscore+json;version=' + version.to_s }
@@ -17,39 +24,33 @@ module BlockScore
17
24
  end
18
25
  end
19
26
 
20
- def get_verifications
21
- self.get '/verifications'
22
- end
27
+ def get(path, options = {})
23
28
 
24
- def get_verification(id)
25
- self.get '/verifications/' + id.to_s
26
- end
29
+ options = { body: options, basic_auth: @auth }
27
30
 
28
- def create_verification(options = {})
29
- self.post '/verifications/', options
30
- end
31
+ response = self.class.get(path, options)
31
32
 
32
- # def get_question_set(id)
33
- # self.get '/questions/' + id.to_s
34
- # end
33
+ begin
34
+ result = @error_handler.check_error(response)
35
+ rescue BlockScore::BlockscoreError => e
36
+ raise
37
+ end
35
38
 
36
- def create_question_set(options = {})
37
- self.post '/questions/', options
38
39
  end
39
40
 
40
- def score_question_set(options = {})
41
- self.post '/questions/score', options
42
- end
41
+ def post(path, options = {})
43
42
 
44
- def get(path, options = {})
45
43
  options = { body: options, basic_auth: @auth }
46
- puts options
47
- self.class.get(path, options)
48
- end
49
44
 
50
- def post(path, options = {})
51
- options = { body: options, basic_auth: @auth }
52
- self.class.post(path, options)
45
+ response = self.class.post(path, options)
46
+
47
+ begin
48
+ result = @error_handler.check_error(response)
49
+ rescue BlockScore::BlockscoreError => e
50
+ raise
51
+ end
52
+
53
53
  end
54
+
54
55
  end
55
56
  end
@@ -0,0 +1,12 @@
1
+ require_relative './blockscore_error'
2
+ module BlockScore
3
+ class AuthorizationError < BlockscoreError
4
+
5
+ @@http_status = 401
6
+
7
+ def initialize(message=nil, json_body=nil, error_type=nil)
8
+
9
+ super(message, json_body, @@http_status, error_type)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,25 @@
1
+ module BlockScore
2
+ class BlockscoreError < StandardError
3
+
4
+ attr_reader :message
5
+ attr_reader :error_type
6
+ attr_reader :http_status
7
+ attr_reader :json_body
8
+
9
+ def initialize(message=nil, json_body=nil, http_status="400",
10
+ error_type="invalid_request_error")
11
+ super(message)
12
+
13
+ @message = message
14
+ @error_type = error_type
15
+ @http_status = http_status
16
+ @json_body = json_body
17
+
18
+ end
19
+
20
+ def to_s
21
+ "Status: #{@http_status}. Type: #{@error_type}, Message: #{@message}"
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,141 @@
1
+ require 'json'
2
+ module BlockScore
3
+ class ErrorHandler
4
+
5
+ def initialize()
6
+ end
7
+
8
+ # Function:
9
+ # check_error()
10
+ #
11
+ # response -
12
+ #
13
+ def check_error(response)
14
+
15
+ @code = response.code
16
+ @type = response.headers['content-type']
17
+
18
+ if (200 <= @code and @code < 300)
19
+ return response
20
+ end
21
+
22
+ @body = get_body(response)
23
+ @message = get_message(@body)
24
+ @error_type = @error_code = @param = nil
25
+
26
+ # Internal API Error
27
+ if @code == 500
28
+ raise BlockScore::InternalServerError.new(@message, @body, @error_type)
29
+ end
30
+
31
+ if @body.include? 'error'
32
+ @error = @body['error']
33
+ @error_type = get_value(@error, 'type')
34
+ @error_code = get_value(@error, 'code')
35
+ @param = get_value(@error, 'param')
36
+ end # body.include? 'error'
37
+
38
+ process_code(@code)
39
+
40
+ end # check_error
41
+
42
+
43
+ # Function:
44
+ # process_code()
45
+ #
46
+ # Tries to determine which error to raise.
47
+ #
48
+ # code -
49
+ #
50
+ def process_code(code)
51
+
52
+ # Input data error
53
+ if code == 400
54
+ # Could not be validated.
55
+ # Which type of input error?
56
+ if @param
57
+ raise BlockScore::ValidationError.new(@message, @body, @error_type, @param, @error_code)
58
+
59
+ # Required parameter is missing
60
+ else
61
+ raise BlockScore::ParameterError.new(@message, @body, @error_type)
62
+ end # if param
63
+
64
+ # Error with an API Key
65
+ elsif code == 401
66
+ raise BlockScore::AuthorizationError.new(@message, @body, @error_type)
67
+
68
+ # Trying to access nonexistent endpoint
69
+ elsif code == 404
70
+ raise BlockScore::NotFoundError.new(@message, @body, @error_type)
71
+
72
+ # Generic BlockscoreError (fallback)
73
+ else
74
+ raise BlockScore::BlockscoreError.new(@message, @body)
75
+
76
+ end # end code checking
77
+
78
+ end # process code
79
+
80
+
81
+
82
+ # Function:
83
+ # get_body()
84
+ #
85
+ # response -
86
+ #
87
+ def get_body(response)
88
+ type = response.headers['content-type']
89
+ body = response.body
90
+
91
+ # If response body is in JSON
92
+ if type.include? 'json'
93
+ body = JSON.parse(body)
94
+ end # type.include?
95
+
96
+ body
97
+
98
+ end
99
+
100
+
101
+ # Function:
102
+ # get_message()
103
+ #
104
+ # body -
105
+ #
106
+ def get_message(body)
107
+ message = ''
108
+ if body.is_a? String
109
+ message = body
110
+
111
+ elsif body.is_a? Hash
112
+ if body.include? 'error'
113
+ message = body['error']['message']
114
+ else
115
+ message = 'Unable to select error message from json returned by request responsible for error'
116
+ end # if body.include?
117
+ else
118
+ message = 'Unable to understand the content type of response returned by request responsible for error'
119
+ end # if body.is_a? String
120
+
121
+ message
122
+ end # def get_message
123
+
124
+
125
+ # Function:
126
+ # get_value()
127
+ #
128
+ # obj -
129
+ # key -
130
+ #
131
+ def get_value(obj, key)
132
+
133
+ if obj.include? key
134
+ return obj[key]
135
+ end
136
+
137
+ nil
138
+ end
139
+
140
+ end # class ErrorHandler
141
+ end # module BlockScore
@@ -0,0 +1,18 @@
1
+ require_relative './blockscore_error'
2
+ module BlockScore
3
+ class InternalServerError < BlockscoreError
4
+
5
+ @@http_status = 500
6
+
7
+ def initialize(message=nil, json_body=nil, error_type=nil)
8
+
9
+ super(message, json_body, @@http_status, error_type)
10
+
11
+ @message = message
12
+ end
13
+
14
+ def to_s
15
+ "Status: #{@@http_status}, Message: #{@message}"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ require_relative './blockscore_error'
2
+ module BlockScore
3
+ class NotFoundError < BlockscoreError
4
+
5
+ @@http_status = 404
6
+
7
+ def initialize(message=nil, json_body=nil, error_type=nil)
8
+ super(message, json_body, @@http_status, error_type)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require_relative './blockscore_error'
2
+ module BlockScore
3
+ class ParameterError < BlockscoreError
4
+
5
+ @@http_status = 400
6
+
7
+ def initialize(message=nil, json_body=nil, error_type=nil)
8
+
9
+ super(message, json_body, @@http_status, error_type)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ require_relative './blockscore_error'
2
+ module BlockScore
3
+ class ValidationError < BlockscoreError
4
+
5
+ attr_reader :http_status
6
+ attr_reader :error_code
7
+ attr_reader :param
8
+
9
+ @@http_status = 400
10
+
11
+ def initialize(message=nil, json_body=nil,
12
+ error_type=nil, param=nil, error_code=nil)
13
+
14
+ super(message, json_body, @@http_status, error_type)
15
+
16
+ @error_code = error_code
17
+ @param = param
18
+
19
+ end
20
+
21
+ def to_s
22
+ s = "Status: #{@@http_status}, Type: #{@error_type}, Param: #{@param}, "
23
+ s += "Code: #{@error_code}, Message: #{@message}"
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ Dir[File.dirname(__FILE__) + '/error/*.rb'].each do |file|
2
+ require file
3
+ end
@@ -0,0 +1,57 @@
1
+ module BlockScore
2
+ class QuestionSet
3
+
4
+ def initialize(client)
5
+ @client = client
6
+ end
7
+
8
+ def create(verification_id, options = {})
9
+ body = (options.include? :body) ? options[:body] : {}
10
+ body[:verification_id] = verification_id
11
+
12
+ response = @client.post '/questions', body
13
+ end
14
+
15
+ #
16
+ # '/questions/score' POST
17
+ #
18
+ # verification_id -
19
+ # question_set_id -
20
+ # answers -
21
+ def score(verification_id, question_set_id, answers)
22
+
23
+ body = {
24
+ verification_id: verification_id,
25
+ question_set_id: question_set_id,
26
+ answers: answers
27
+ }
28
+
29
+ response = @client.post "/questions/score", body
30
+ end
31
+
32
+ #
33
+ # /questions/:id POST
34
+ #
35
+ # question_set_id -
36
+ # verification_id -
37
+ def retrieve(question_set_id, verification_id)
38
+ body = Hash.new
39
+ body[:verification_id] = verification_id
40
+
41
+ response = @client.post "/questions/#{question_set_id.to_s}", body
42
+ end
43
+
44
+ #
45
+ # '/questions' GET
46
+ #
47
+ def all(count = nil, offset = nil, options = {})
48
+
49
+ body = (options.include? :body) ? options[:body] : {}
50
+
51
+ body[:count] = count
52
+ body[:offset] = offset
53
+
54
+ @client.get '/questions', body
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,46 @@
1
+ module BlockScore
2
+ class Verification
3
+
4
+ def initialize(client)
5
+
6
+ @client = client
7
+ end
8
+
9
+ #
10
+ # /verifications POST
11
+ #
12
+ # type -
13
+ # date_of_birth -
14
+ # identification -
15
+ # name -
16
+ # address -
17
+ def create(options = {})
18
+ response = @client.post '/verifications', options
19
+ end
20
+
21
+ #
22
+ # /verifications/:id GET
23
+ #
24
+ # id -
25
+ def retrieve(id, options = {})
26
+
27
+ body = (options.include? :query) ? options[:body] : {}
28
+ body[:verification_id] = id
29
+
30
+ response = @client.get "/verifications/#{id.to_s}", body
31
+ end
32
+
33
+ #
34
+ # '/verifications' GET
35
+ #
36
+ def all(count = nil, offset = nil, options = {})
37
+
38
+ body = (options.include? :body) ? options[:body] : {}
39
+
40
+ body[:count] = count
41
+ body[:offset] = offset
42
+
43
+ @client.get '/verifications', body
44
+ end
45
+ end
46
+ end
@@ -1,30 +1,47 @@
1
- require 'helper'
1
+ require_relative './helper'
2
2
 
3
3
  class TestBlockScore < Test::Unit::TestCase
4
4
  context "a verification" do
5
5
  setup do
6
- @blockscore = BlockScore::Client.new("sk_test_74d0a2e9649c8eed8bbef051666e1aa2", version = 2)
6
+ # If you'd like to run the test suite, fill in your API key,
7
+ # a verification ID and a question set ID below.
8
+ @client = BlockScore::Client.new("Your API key", version = 2)
9
+
10
+ @verification_id = "Your verification ID"
11
+ @question_set_id = "Your question set ID"
7
12
  end
8
13
 
9
14
  should "return a list of verifications" do
10
- assert_equal 200, @blockscore.get_verifications.code
15
+ response = @client.verification.all
16
+ assert_equal 200, response.code
17
+ end
18
+
19
+ should "return count = 2 verifications" do
20
+ response = @client.verification.all(count = 2)
21
+ assert_equal 200, response.code
22
+ end
23
+
24
+ should "return count=2 offset=2 verifications" do
25
+ response = @client.verification.all(count = 2, offset = 2)
26
+ assert_equal 200, response.code
11
27
  end
12
28
 
13
29
  should "return a single verification" do
14
- assert_equal 200, @blockscore.get_verification("53099a636274639ebb0e0000").code
30
+ response = @client.verification.retrieve(@verification_id)
31
+ assert_equal 200, response.code
15
32
  end
16
33
 
17
34
  should "return create a verification" do
18
- @json_representation = {
35
+ verification_params = {
19
36
  type: "us_citizen",
20
- date_of_birth: "1993-08-23",
37
+ date_of_birth: "1975-01-01",
21
38
  identification: {
22
39
  ssn: "0000"
23
40
  },
24
41
  name: {
25
- first: "Alain",
26
- middle: nil,
27
- last: "Meier"
42
+ first: "John",
43
+ middle: "P",
44
+ last: "Doe"
28
45
  },
29
46
  address: {
30
47
  street1: "1 Infinite Loop",
@@ -36,26 +53,38 @@ class TestBlockScore < Test::Unit::TestCase
36
53
  }
37
54
  }
38
55
 
39
- assert_equal 201, @blockscore.create_verification(@json_representation).code
56
+ response = @client.verification.create(verification_params)
57
+
58
+ assert_equal 201, response.code
40
59
  end
41
60
 
42
61
  should "return create a question set" do
43
- @json_representation = {
44
- verification_id: "53099a636274639ebb0e0000"
45
- }
62
+ response = @client.question_set.create(@verification_id)
63
+ assert_equal 201, response.code
64
+ end
46
65
 
47
- assert_equal 201, @blockscore.create_question_set(@json_representation).code
66
+ should "return a single question set" do
67
+ response = @client.question_set.retrieve(@question_set_id, @verification_id)
68
+ assert_equal 201, response.code
48
69
  end
49
70
 
50
- # should "return a single question set" do
51
- # assert_equal 200, @blockscore.get_question_set("53099c5f6274639ebb7e0000").code
52
- # end
71
+ should "return a list of question sets" do
72
+ response = @client.question_set.all
73
+ assert_equal 200, response.code
74
+ end
75
+
76
+ should "return count = 2 question sets" do
77
+ response = @client.question_set.all(count = 2)
78
+ assert_equal 200, response.code
79
+ end
80
+
81
+ should "return count = 2 offset = 2 question sets" do
82
+ response = @client.question_set.all(count = 2, offset = 2)
83
+ assert_equal 200, response.code
84
+ end
53
85
 
54
86
  should "return a score for the question set" do
55
- @json_representation = {
56
- verification_id: "53099a636274639ebb0e0000",
57
- question_set_id: "53099c5f6274639ebb7e0000",
58
- answers: [
87
+ @answers = [
59
88
  {
60
89
  question_id: 1,
61
90
  answer_id: 1
@@ -77,9 +106,14 @@ class TestBlockScore < Test::Unit::TestCase
77
106
  answer_id: 1
78
107
  }
79
108
  ]
80
- }
81
109
 
82
- assert_equal 201, @blockscore.score_question_set(@json_representation).code
110
+ response = @client.question_set.score(
111
+ @verification_id,
112
+ @question_set_id,
113
+ @answers
114
+ )
115
+
116
+ assert_equal 201, response.code
83
117
  end
84
118
  end
85
119
  end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blockscore
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alain Meier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-23 00:00:00.000000000 Z
11
+ date: 2014-06-15 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: 0.13.0
19
+ version: 0.13.1
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: 0.13.0
26
+ version: 0.13.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: shoulda
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.12'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.12'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.0.1
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.0.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: A ruby client library for the BlockScore API.
@@ -102,7 +102,7 @@ extra_rdoc_files:
102
102
  - LICENSE.txt
103
103
  - README.md
104
104
  files:
105
- - .document
105
+ - ".document"
106
106
  - Gemfile
107
107
  - Gemfile.lock
108
108
  - LICENSE.txt
@@ -114,6 +114,16 @@ files:
114
114
  - lib/blockscore-cert.crt
115
115
  - lib/blockscore.rb
116
116
  - lib/blockscore/client.rb
117
+ - lib/blockscore/error/authorization_error.rb
118
+ - lib/blockscore/error/blockscore_error.rb
119
+ - lib/blockscore/error/error_handler.rb
120
+ - lib/blockscore/error/internal_server_error.rb
121
+ - lib/blockscore/error/not_found_error.rb
122
+ - lib/blockscore/error/parameter_error.rb
123
+ - lib/blockscore/error/validation_error.rb
124
+ - lib/blockscore/errors.rb
125
+ - lib/blockscore/question_set.rb
126
+ - lib/blockscore/verification.rb
117
127
  - test/helper.rb
118
128
  - test/test_blockscore.rb
119
129
  homepage: http://github.com/blockscore/blockscore-ruby
@@ -126,17 +136,17 @@ require_paths:
126
136
  - lib
127
137
  required_ruby_version: !ruby/object:Gem::Requirement
128
138
  requirements:
129
- - - '>='
139
+ - - ">="
130
140
  - !ruby/object:Gem::Version
131
141
  version: '0'
132
142
  required_rubygems_version: !ruby/object:Gem::Requirement
133
143
  requirements:
134
- - - '>='
144
+ - - ">="
135
145
  - !ruby/object:Gem::Version
136
146
  version: '0'
137
147
  requirements: []
138
148
  rubyforge_project:
139
- rubygems_version: 2.1.11
149
+ rubygems_version: 2.2.2
140
150
  signing_key:
141
151
  specification_version: 4
142
152
  summary: A ruby client library for the BlockScore API.