human_error 1.5.0 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/human_error/error_code_directory.rb +1 -0
- data/lib/human_error/errors.rb +1 -0
- data/lib/human_error/errors/crud_errors/association_error.rb +33 -0
- data/lib/human_error/errors/crud_errors/resource_persistence_error.rb +0 -4
- data/lib/human_error/knowledgebase_id_directory.rb +1 -0
- data/lib/human_error/version.rb +1 -1
- data/spec/lib/human_error/errors/crud_errors/association_error_spec.rb +48 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 233105511c18274a9f7d45688aa2f653e2752d6b
|
4
|
+
data.tar.gz: 754c7919eee3ed9ed509d0ee6352fcca69c8e8d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d41c765a7c3ddeb2970e6c4cf50bedaad4370bcb19f13a28160800dcb5cd2540a90013bc1284af0b8108e04ebf3b499e7bf2057ab4598f9934abfb56ad4a29a5
|
7
|
+
data.tar.gz: 82eca3b690cdec516671458e72fa2a9dc8ce35c99b5de39be1d49e4a41ea1c56a70d16667f3c34d504181a67dd52bb2e81a70044028ca553996c51daab78402b
|
@@ -14,6 +14,7 @@ class ErrorCodeDirectory
|
|
14
14
|
'HumanError::Errors::ResourcePersistenceError' => 1006,
|
15
15
|
'Apill::Errors::InvalidApiRequestError' => 1007,
|
16
16
|
'HumanError::Errors::DuplicateAuthenticationError' => 1008,
|
17
|
+
'HumanError::Errors::AssociationError' => 1009,
|
17
18
|
}
|
18
19
|
end
|
19
20
|
end
|
data/lib/human_error/errors.rb
CHANGED
@@ -6,3 +6,4 @@ require 'human_error/errors/authentication_errors/duplicate_authentication_error
|
|
6
6
|
require 'human_error/errors/crud_error'
|
7
7
|
require 'human_error/errors/crud_errors/resource_not_found_error'
|
8
8
|
require 'human_error/errors/crud_errors/resource_persistence_error'
|
9
|
+
require 'human_error/errors/crud_errors/association_error'
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'human_error/errors/crud_error'
|
2
|
+
require 'human_error/errors/request_error'
|
3
|
+
|
4
|
+
class HumanError
|
5
|
+
module Errors
|
6
|
+
class AssociationError < RequestError
|
7
|
+
include CrudError
|
8
|
+
|
9
|
+
attr_accessor :association_name,
|
10
|
+
:association_id,
|
11
|
+
:attributes
|
12
|
+
|
13
|
+
def http_status
|
14
|
+
422
|
15
|
+
end
|
16
|
+
|
17
|
+
def developer_message
|
18
|
+
"The #{association_name} that you attempted to associate with the #{resource_name} was not valid."
|
19
|
+
end
|
20
|
+
|
21
|
+
def developer_details
|
22
|
+
{
|
23
|
+
resource_name => attributes,
|
24
|
+
"#{association_name} id" => association_id
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def friendly_message
|
29
|
+
"Sorry! There was a problem when we tried to set the #{association_name} on that #{resource_name}."
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -14,6 +14,7 @@ class KnowledgebaseIdDirectory
|
|
14
14
|
'HumanError::Errors::ResourcePersistenceError' => '1234567890',
|
15
15
|
'Apill::Errors::InvalidApiRequestError' => '1234567890',
|
16
16
|
'HumanError::Errors::DuplicateAuthenticationError' => '1234567890',
|
17
|
+
'HumanError::Errors::AssociationError' => '1234567890',
|
17
18
|
}
|
18
19
|
end
|
19
20
|
end
|
data/lib/human_error/version.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rspectacular'
|
2
|
+
require 'human_error/errors/crud_errors/association_error'
|
3
|
+
|
4
|
+
class HumanError
|
5
|
+
module Errors
|
6
|
+
describe AssociationError do
|
7
|
+
let(:error) { AssociationError.new }
|
8
|
+
|
9
|
+
it 'has a status of 422' do
|
10
|
+
expect(error.http_status).to eql 422
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'has a code of 1009' do
|
14
|
+
expect(error.code).to eql 1009
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'has a knowledgebase article ID of 1234567890' do
|
18
|
+
expect(error.knowledgebase_article_id).to eql '1234567890'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'includes the resource name and action in the developer message' do
|
22
|
+
error = AssociationError.new association_name: 'black leather trenchcoat',
|
23
|
+
resource_name: 'Neo'
|
24
|
+
|
25
|
+
expect(error.developer_message).to eql "The black leather trenchcoat that you attempted to associate with the Neo was not valid."
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'includes the resource name and action in the developer details' do
|
29
|
+
error = AssociationError.new association_name: 'black leather trenchcoat',
|
30
|
+
resource_name: 'Neo',
|
31
|
+
attributes: 'what is the matrix',
|
32
|
+
association_id: '123'
|
33
|
+
|
34
|
+
expect(error.developer_details).to eql(
|
35
|
+
'Neo' => 'what is the matrix',
|
36
|
+
'black leather trenchcoat id' => '123',
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'includes the resource name and action in the friendly message' do
|
41
|
+
error = AssociationError.new association_name: 'black leather trenchcoat',
|
42
|
+
resource_name: 'Neo'
|
43
|
+
|
44
|
+
expect(error.friendly_message).to eql "Sorry! There was a problem when we tried to set the black leather trenchcoat on that Neo."
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: human_error
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jfelchner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- lib/human_error/errors/authentication_errors/invalid_token_error.rb
|
72
72
|
- lib/human_error/errors/authentication_errors/invalid_username_or_password_error.rb
|
73
73
|
- lib/human_error/errors/crud_error.rb
|
74
|
+
- lib/human_error/errors/crud_errors/association_error.rb
|
74
75
|
- lib/human_error/errors/crud_errors/resource_not_found_error.rb
|
75
76
|
- lib/human_error/errors/crud_errors/resource_persistence_error.rb
|
76
77
|
- lib/human_error/errors/request_error.rb
|
@@ -82,6 +83,7 @@ files:
|
|
82
83
|
- spec/lib/human_error/errors/authentication_errors/duplicate_authentication_error_spec.rb
|
83
84
|
- spec/lib/human_error/errors/authentication_errors/invalid_token_error_spec.rb
|
84
85
|
- spec/lib/human_error/errors/authentication_errors/invalid_username_or_password_error_spec.rb
|
86
|
+
- spec/lib/human_error/errors/crud_errors/association_error_spec.rb
|
85
87
|
- spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb
|
86
88
|
- spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb
|
87
89
|
- spec/lib/human_error/errors/request_error_spec.rb
|
@@ -116,6 +118,7 @@ test_files:
|
|
116
118
|
- spec/lib/human_error/errors/authentication_errors/duplicate_authentication_error_spec.rb
|
117
119
|
- spec/lib/human_error/errors/authentication_errors/invalid_token_error_spec.rb
|
118
120
|
- spec/lib/human_error/errors/authentication_errors/invalid_username_or_password_error_spec.rb
|
121
|
+
- spec/lib/human_error/errors/crud_errors/association_error_spec.rb
|
119
122
|
- spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb
|
120
123
|
- spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb
|
121
124
|
- spec/lib/human_error/errors/request_error_spec.rb
|