circuit-api 0.0.17 → 0.0.18

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
  SHA256:
3
- metadata.gz: 4b6d0119111f8102ce77f7f647ce2e2cae2e99cd35b9ceac6caddf932a18677f
4
- data.tar.gz: eba2f93b43db5d385b82e7d977363d5e9b56f7d996cea75ab3c9c51bc6c88d56
3
+ metadata.gz: 8056c72f9a8086f8d564e353277a63aa87df7c3a79f6b21d4fe707cbb6e8fdfd
4
+ data.tar.gz: a441bdf32a0ef464a65624cda0d379465beaa2ccf8b3e4706c7cf12af42c6c45
5
5
  SHA512:
6
- metadata.gz: 7f86818766f5477878dd2a66426dec666be98f285b121783ceea1801d0caa3f9f25a08dea6b18831c6f8f6e1bc618ee4c23bbbc00bc7ab9139380a6b6edb800c
7
- data.tar.gz: 35fbe9b9f535319b520d7ed5e1946529ce40d205f9512308bff54d2b1a0a807264afdd588257e5379a9041195c581721394199c740d41f1ee5409a763b9974f4
6
+ metadata.gz: 39d107fbc0f528eb44a55e9a61c61a92d1954ba4e47130321a94f8bf891093c03e9faeb93da3b720450161f874a4ee3b0f886560726220dcb60ed8b9fdce9e61
7
+ data.tar.gz: be1b3588ee087f8861e20503376c6549193495e16f2a127854fe80d6e775a6041fe559c2f9ce38215f611349b65750e3d6a46f38998e470cf47eca6aa0b250e6
@@ -68,6 +68,13 @@ module CircuitApi
68
68
  #binding.pry
69
69
  CircuitApi::Resource.new('foo', attributes)
70
70
  end
71
+
72
+ def handle_validation_errors(bad_request_error)
73
+ errors = bad_request_error.json_message['validationErrors']
74
+ raise unless errors
75
+
76
+ raise CircuitApi::ValidationError.new(errors, bad_request_error.uri)
77
+ end
71
78
  end
72
79
  end
73
80
  end
@@ -14,6 +14,9 @@ module CircuitApi
14
14
 
15
15
  result = connection(path, params).post
16
16
  response_to_object(result)
17
+
18
+ rescue CircuitApi::BadRequest => e
19
+ handle_validation_errors(e)
17
20
  end
18
21
  end
19
22
  end
@@ -1,4 +1,5 @@
1
1
  module CircuitApi
2
+ # Network Errors
2
3
  class HttpError < StandardError
3
4
  attr_reader :error_code, :error_body, :uri
4
5
 
@@ -11,10 +12,28 @@ module CircuitApi
11
12
  def message
12
13
  "HTTP #{error_code} - URI: #{uri}.\n Error: #{error_body}"
13
14
  end
15
+
16
+ def json_message
17
+ JSON.parse(error_body)
18
+ end
14
19
  end
15
20
 
16
21
  class BadRequest < HttpError; end;
17
22
  class Unauthorized < HttpError; end;
18
23
  class InternalServerError < HttpError; end;
19
24
  class ServiceUnavailable < HttpError; end;
25
+
26
+ # Data errors
27
+ class ValidationError < StandardError
28
+ attr_reader :errors, :uri
29
+
30
+ def initialize(errors, uri)
31
+ @errors = errors
32
+ @uri = uri
33
+ end
34
+
35
+ def message
36
+ "URI: #{uri}.\n Errors: #{errors}"
37
+ end
38
+ end
20
39
  end
@@ -1,3 +1,3 @@
1
1
  module CircuitApi
2
- VERSION = '0.0.17'
2
+ VERSION = '0.0.18'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: circuit-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Pochet
@@ -39,47 +39,47 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pry
42
+ name: byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.10'
47
+ version: 11.1.3
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
- version: '0.10'
54
+ version: 11.1.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 3.10.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
- version: '0'
68
+ version: 3.10.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sinatra
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 2.1.0
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
- version: '0'
82
+ version: 2.1.0
83
83
  description: Wrapper of the Circuit Rest API
84
84
  email: vincent@elqano.com
85
85
  executables: []
@@ -103,7 +103,7 @@ files:
103
103
  - lib/circuit_api/utils/errors.rb
104
104
  - lib/circuit_api/utils/object.rb
105
105
  - lib/circuit_api/version.rb
106
- homepage:
106
+ homepage: https://github.com/Elqanoteam/circuit-rest-client
107
107
  licenses:
108
108
  - MIT
109
109
  metadata: {}
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
- rubygems_version: 3.1.4
125
+ rubygems_version: 3.0.3
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Circuit Rest API client