human_error 1.0.0 → 1.1.0

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: f2554d092cad72ca391ae12a0d685e65c7cd5f87
4
- data.tar.gz: 86be8d5d478e44f36bc91d4553da0c36cef75052
3
+ metadata.gz: c2a02b1eac36cbd434a65f917be7e4a2fcd46b15
4
+ data.tar.gz: a644e1253d0fd7707c8d2a96b9bc6309ac5f18b5
5
5
  SHA512:
6
- metadata.gz: 0260892f92309a5efe0b665fe615b685eb25dac08623eea49dbffd62bb47fdca762c567f7b6234eceac9268d8ac9a2869bfe27c2789ab287ee85726e3b88f489
7
- data.tar.gz: d44beaf3bd2c32dd1fa6c3f7d18eb111af1f0f0beb95dd1b69cd51de3bd0965601d1a90bf80c7a6b4f2bfef151aafd72f8e6f6f2911daf84e77428e3b631a9f4
6
+ metadata.gz: 7db25d17b98cbcb92a16e267fb847a6708d3140ab682148c8c27037884feb5fdcf1c95ad432481f7ee01cfa86b1d5d73e02ac5fd41f0eb3423849b1650dd1032
7
+ data.tar.gz: 42450a0be1844e0483c3157829ec0275ffcf7b650cbe52cb6f31e22501b6f99ba33d89b26a58b51ac15d89083fb31474ad849cdbaf3211514e7bc70ee0aec9eb
@@ -1,11 +1,14 @@
1
+ require 'json'
1
2
  require 'human_error/configuration'
2
3
  require 'human_error/error_code_directory'
4
+ require 'human_error/knowledgebase_id_directory'
3
5
 
4
6
  module HumanError
5
7
  module Error
6
8
  attr_accessor :api_version,
7
9
  :api_error_documentation_url,
8
10
  :knowledgebase_url,
11
+ :knowledgebase_article_id,
9
12
  :code
10
13
 
11
14
  def initialize(**args)
@@ -22,6 +25,18 @@ module Error
22
25
  @code || ErrorCodeDirectory.lookup(self.class.name)
23
26
  end
24
27
 
28
+ def knowledgebase_article_id
29
+ @knowledgebase_article_id || KnowledgebaseIdDirectory.lookup(self.class.name)
30
+ end
31
+
32
+ def customer_support_uri
33
+ "#{knowledgebase_url}/#{knowledgebase_article_id}"
34
+ end
35
+
36
+ def to_json
37
+ JSON.dump(as_json)
38
+ end
39
+
25
40
  def wrap(other)
26
41
  wrapped_error = new "#{other.class.name}: #{other.message}"
27
42
  wrapped_error.set_backtrace other.backtrace
@@ -12,6 +12,7 @@ class ErrorCodeDirectory
12
12
  'HumanError::Errors::InvalidUsernameOrPasswordError' => 1004,
13
13
  'HumanError::Errors::ResourceNotFoundError' => 1005,
14
14
  'HumanError::Errors::ResourcePersistenceError' => 1006,
15
+ 'Apill::Errors::InvalidApiRequestError' => 1007,
15
16
  }
16
17
  end
17
18
  end
@@ -18,10 +18,6 @@ class InvalidTokenError < RequestError
18
18
  401
19
19
  end
20
20
 
21
- def knowledgebase_article_id
22
- '1234567890'
23
- end
24
-
25
21
  def developer_message
26
22
  'The token you attempted to use for this request is invalid for this resource. Please double-check and try again.'
27
23
  end
@@ -18,10 +18,6 @@ class InvalidUsernameOrPasswordError < RequestError
18
18
  401
19
19
  end
20
20
 
21
- def knowledgebase_article_id
22
- '1234567890'
23
- end
24
-
25
21
  def developer_message
26
22
  'Either the username or password passed in or this request is invalid. Please double-check and try again.'
27
23
  end
@@ -10,10 +10,6 @@ class ResourceNotFoundError < RequestError
10
10
  404
11
11
  end
12
12
 
13
- def knowledgebase_article_id
14
- '1234567890'
15
- end
16
-
17
13
  def developer_message
18
14
  "The #{resource_name} you attempted to #{action} for this request is either not authorized for the authenticated user or does not exist."
19
15
  end
@@ -9,8 +9,7 @@ class RequestError < RuntimeError
9
9
  attr_accessor :http_status,
10
10
  :developer_message,
11
11
  :developer_details,
12
- :friendly_message,
13
- :knowledgebase_article_id
12
+ :friendly_message
14
13
 
15
14
  def as_json(options = {})
16
15
  {
@@ -34,10 +33,6 @@ class RequestError < RuntimeError
34
33
  "#{api_error_documentation_url}/#{code}?version=#{api_version}"
35
34
  end
36
35
 
37
- def customer_support_uri
38
- "#{knowledgebase_url}/#{knowledgebase_article_id}"
39
- end
40
-
41
36
  def base_message_key
42
37
  HumanError::Utilities::String.
43
38
  underscore(self.class.name).
@@ -0,0 +1,7 @@
1
+ require 'human_error/errors/request_error'
2
+ require 'human_error/errors/authentication_error'
3
+ require 'human_error/errors/authentication_errors/invalid_token_error'
4
+ require 'human_error/errors/authentication_errors/invalid_username_or_password_error'
5
+ require 'human_error/errors/crud_error'
6
+ require 'human_error/errors/crud_errors/resource_not_found_error'
7
+ require 'human_error/errors/crud_errors/resource_persistence_error'
@@ -0,0 +1,19 @@
1
+ module HumanError
2
+ class KnowledgebaseIdDirectory
3
+ def self.lookup(error_class)
4
+ directory[error_class]
5
+ end
6
+
7
+ private
8
+
9
+ def self.directory
10
+ {
11
+ 'HumanError::Errors::InvalidTokenError' => '1234567890',
12
+ 'HumanError::Errors::InvalidUsernameOrPasswordError' => '1234567890',
13
+ 'HumanError::Errors::ResourceNotFoundError' => '1234567890',
14
+ 'HumanError::Errors::ResourcePersistenceError' => '1234567890',
15
+ 'Apill::Errors::InvalidApiRequestError' => '1234567890',
16
+ }
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module HumanError
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: human_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
@@ -65,6 +65,7 @@ files:
65
65
  - lib/human_error/configuration.rb
66
66
  - lib/human_error/error.rb
67
67
  - lib/human_error/error_code_directory.rb
68
+ - lib/human_error/errors.rb
68
69
  - lib/human_error/errors/authentication_error.rb
69
70
  - lib/human_error/errors/authentication_errors/invalid_token_error.rb
70
71
  - lib/human_error/errors/authentication_errors/invalid_username_or_password_error.rb
@@ -72,6 +73,7 @@ files:
72
73
  - lib/human_error/errors/crud_errors/resource_not_found_error.rb
73
74
  - lib/human_error/errors/crud_errors/resource_persistence_error.rb
74
75
  - lib/human_error/errors/request_error.rb
76
+ - lib/human_error/knowledgebase_id_directory.rb
75
77
  - lib/human_error/utilities/string.rb
76
78
  - lib/human_error/version.rb
77
79
  - spec/lib/human_error/configuration_spec.rb