minato_error_handler 0.1.2.pre.6 → 0.1.2.pre.7

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: 7035563235faf487222e2a1855529723e471792d6c240d0d330c9c154d588486
4
- data.tar.gz: db60393aee3af5c2e98f1f41b425cbc8a4af4714b1605b5adf28eb847e6bec2a
3
+ metadata.gz: 690480f951a625faac7e8216033c3af2ca73b660607756117c89b5d116acc90c
4
+ data.tar.gz: 20acab0751cc3466319bd6325fc188e534a24b093feb75df030df4976c2f0154
5
5
  SHA512:
6
- metadata.gz: cd80168c81486fe42c3e4a2aa8b33947f07b8eb73afba84be1aba07958db97b17b676e2e5078448e1b39d56c6c6fd1aa2477e44dbf687f36cdecd583eeed799e
7
- data.tar.gz: f010f34b1391d4ba48436546bd1bcc8064f8310e52676769f4daf3721ff7b7436b7db257943215ebfa209737b4bbaf49db48f4a1b4b0d49b1638b285b1441a8f
6
+ metadata.gz: 420c00d8f05f4e70b853fe903d8cddedb1c0b1e0b1e1f849271c3e09778c6cd17ec89c8adf7196d5460896efa8b885dc90b38c464e2ea97927c67e7fd94a1bc1
7
+ data.tar.gz: 7f650d030f10585d2535912589096c10ad60dccd85eef940cd1b99e79c1a136f455a01f290435ad80b252ed447f17afe70412c056a8db4fad20b9f187ea1043c
@@ -19,17 +19,31 @@ module MinatoErrorHandler
19
19
  end
20
20
 
21
21
  def parse_error(error)
22
- if error.is_a?(MinatoErrorHandler::Errors::MinatoError)
23
- error.http_request = request if error.http_request.nil?
24
- return error
25
- end
22
+ return parse_minato_error(error) if minato_error?(error)
23
+
24
+ build_minato_error(error)
25
+ end
26
+
27
+ def parse_minato_error(error)
28
+ error.http_request ||= request
29
+ error.http_response ||= response
30
+ error
31
+ end
32
+
33
+ def minato_error?(error)
34
+ error.is_a?(MinatoErrorHandler::Errors::MinatoError)
35
+ end
26
36
 
27
- error_class = self.class.default_error_class || MinatoErrorHandler::Errors::UnknowError
37
+ def error_class
38
+ self.class.default_error_class || MinatoErrorHandler::Errors::UnknowError
39
+ end
28
40
 
41
+ def build_minato_error(error)
29
42
  minato_error = error_class.new
30
43
  minato_error.caused_by = error.full_message
31
44
  minato_error.backtrace = error.backtrace
32
- minato_error.http_request = request
45
+ minato_error.http_request ||= request
46
+ minato_error.http_response ||= response
33
47
  minato_error
34
48
  end
35
49
 
@@ -7,7 +7,7 @@ module MinatoErrorHandler
7
7
  module Errors
8
8
  class MinatoError < StandardError
9
9
  attr_accessor :details, :caused_by
10
- attr_reader :http_request
10
+ attr_reader :http_request, :http_response
11
11
 
12
12
  def message
13
13
  raise_method_not_implemented_error __method__
@@ -49,6 +49,14 @@ module MinatoErrorHandler
49
49
  remote: req.remote_ip, scheme: req.scheme }
50
50
  end
51
51
 
52
+ def http_response=(res)
53
+ return if res.nil?
54
+
55
+ @http_response = { headers: parse_http_response_headers(res.headers),
56
+ status: res.status,
57
+ text_status: res.status_message }
58
+ end
59
+
52
60
  def stack_trace
53
61
  backtrace
54
62
  end
@@ -56,11 +64,11 @@ module MinatoErrorHandler
56
64
  private
57
65
 
58
66
  def serializable_methods_to_log
59
- %i[caused_by code details message http_request status_code unique_identfier stack_trace]
67
+ %i[caused_by code details message http_request http_response status_code unique_identfier stack_trace]
60
68
  end
61
69
 
62
70
  def serializable_methods_to_response
63
- methods_to_exclude = %i[http_request stack_trace]
71
+ methods_to_exclude = %i[http_request http_response stack_trace]
64
72
  serializable_methods_to_log.reject { |m| methods_to_exclude.include? m }
65
73
  end
66
74
 
@@ -78,6 +86,10 @@ module MinatoErrorHandler
78
86
  selected_headers
79
87
  end
80
88
 
89
+ def parse_http_response_headers(headers)
90
+ headers.transform_keys(&:downcase)
91
+ end
92
+
81
93
  def raise_method_not_implemented_error(method_name)
82
94
  raise "You must define \"#{method_name}\" in your concrete class."
83
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MinatoErrorHandler
4
- VERSION = "0.1.2-6"
4
+ VERSION = "0.1.2-7"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minato_error_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.6
4
+ version: 0.1.2.pre.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ferreri