minato_error_handler 0.1.8 → 0.1.10

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: 4a07367a746cc5ebea72d2a72425cfa1a3550a5de5e3a4265d26bc238cf790a0
4
- data.tar.gz: 744094a22ed4c7e9c2ec70fbf04f483804d255e5aa85e815f2856b50f87e2622
3
+ metadata.gz: c214f4830122c7f5c0dac0d9b7b3db76f2de586239fe6927522909d8cd9f4244
4
+ data.tar.gz: 6f481d9359d7c6ca16cbf62846f3948b9e3578ae306306658e60e058d39d53d5
5
5
  SHA512:
6
- metadata.gz: fcb25794fbb5624f6b1979111d61b9e2f0c44caaa10628fb75c49f916f07ea071aa9a53e53733d5df5430710eb4b024caa7620a8273aedd67a4828d9c423b9c8
7
- data.tar.gz: 0f44cd18e6a17c8f207262918ea2f7b2187aea3fe8c3320c9eba737abd7fdc75a8c018a0c3f471f2b68aed59525ce34d8d212c58eb2c90108503c2337679e455
6
+ metadata.gz: c5bd565386320bf8afb798c4c3bba7381b4ceb2726c90a7f1efed07bdeac5ba0cf9cdd123ede3c3d5bcf234c57ed4a764c5def67516a8ca14101d7cb5addc04a
7
+ data.tar.gz: de65b6ce5c4be0555811d0d194a83b643f899fc15e5507debde3b8fafc8b357dc8d568329f114ffb1025504695b8daac1fc2ea04421bc142d619fefabdbfdca1
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "ghcr.io/stuartleeks/dev-container-features/shell-history:0": {},
17
17
  "ghcr.io/guiyomh/features/vim:0": {},
18
- "ghcr.io/devcontainers/features/git:1": {}
18
+ "ghcr.io/devcontainers/features/git:1.1.0": {}
19
19
  },
20
20
  "customizations": {
21
21
  "vscode": {
@@ -5,7 +5,8 @@ module MinatoErrorHandler
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do |base|
8
- rescue_from StandardError, with: :handle
8
+ rescue_from StandardError, "JWT::VerificationError", "JWT::DecodeError", "Pundit::NotAuthorizedError",
9
+ with: :handle
9
10
 
10
11
  base.extend ClassMethods
11
12
  end
@@ -34,12 +35,8 @@ module MinatoErrorHandler
34
35
  error.is_a?(MinatoErrorHandler::Errors::MinatoError)
35
36
  end
36
37
 
37
- def error_class
38
- self.class.default_error_class || MinatoErrorHandler::Errors::InternalError
39
- end
40
-
41
38
  def build_minato_error(error)
42
- minato_error = error_class.new
39
+ minato_error = error_class(error).new
43
40
  minato_error.caused_by = error.full_message
44
41
  minato_error.backtrace = error.backtrace
45
42
  minato_error.http_request ||= request
@@ -47,8 +44,20 @@ module MinatoErrorHandler
47
44
  minato_error
48
45
  end
49
46
 
47
+ def error_class(error)
48
+ case error.class.to_s
49
+ when "JWT::DecodeError", "JWT::VerificationError"
50
+ MinatoErrorHandler::Errors::NotAuthenticatedError
51
+ when "Pundit::NotAuthorizedError"
52
+ MinatoErrorHandler::Errors::NotAuthorizedError
53
+ else
54
+ self.class.default_error_class || MinatoErrorHandler::Errors::InternalError
55
+ end
56
+ end
57
+
50
58
  def report_error(error)
51
- Rails.logger.error(error.as_json)
59
+ logger = ActiveSupport::TaggedLogging.new(Rails.logger)
60
+ logger.tagged(error.unique_identifier.to_s).error(error.as_json)
52
61
  end
53
62
 
54
63
  def render_error(error)
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MinatoErrorHandler
4
+ module Errors
5
+ class NotAuthenticatedError < InternalError
6
+ def message
7
+ "not authenticated"
8
+ end
9
+
10
+ def status_code
11
+ 401
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MinatoErrorHandler
4
+ module Errors
5
+ class NotAuthorizedError < InternalError
6
+ def message
7
+ "you are not allowed to perform this action"
8
+ end
9
+
10
+ def status_code
11
+ 403
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MinatoErrorHandler
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.10"
5
5
  end
@@ -5,4 +5,6 @@ require "minato_error_handler/version"
5
5
  require "minato_error_handler/errors/minato_error"
6
6
  require "minato_error_handler/errors/external_error"
7
7
  require "minato_error_handler/errors/internal_error"
8
+ require "minato_error_handler/errors/not_authenticated_error"
9
+ require "minato_error_handler/errors/not_authorized_error"
8
10
  require "minato_error_handler/error_handler"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minato_error_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ferreri
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-24 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -46,6 +46,8 @@ files:
46
46
  - lib/minato_error_handler/errors/external_error.rb
47
47
  - lib/minato_error_handler/errors/internal_error.rb
48
48
  - lib/minato_error_handler/errors/minato_error.rb
49
+ - lib/minato_error_handler/errors/not_authenticated_error.rb
50
+ - lib/minato_error_handler/errors/not_authorized_error.rb
49
51
  - lib/minato_error_handler/railtie.rb
50
52
  - lib/minato_error_handler/version.rb
51
53
  - minato_error_handler.gemspec