human_error 1.5.0 → 1.6.1
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 +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
|