Class: Yes::Core::Utils::ErrorNotifier
- Inherits:
-
Object
- Object
- Yes::Core::Utils::ErrorNotifier
- Defined in:
- lib/yes/core/utils/error_notifier.rb
Overview
Notifies about errors via a pluggable error reporter.
By default, errors are logged via Rails.logger. To integrate with an external error tracking service (e.g. Sentry), configure the error reporter:
Yes::Core.configure do |config|
config.error_reporter = ->(error, context:) { Sentry.capture_exception(error, extra: context) }
end
The error_reporter must respond to #call(error, context:).
Instance Method Summary collapse
- #decryption_error(error) ⇒ void
- #decryption_key_error(error) ⇒ void
- #event_handler_not_defined(message, event) ⇒ void
- #invalid_event_data(event) ⇒ void
- #missing_payload_store_client_error ⇒ void
- #notify(error, extra: nil) ⇒ void
- #payload_extraction_failed(error) ⇒ void
Instance Method Details
#decryption_error(error) ⇒ void
This method returns an undefined value.
50 51 52 53 |
# File 'lib/yes/core/utils/error_notifier.rb', line 50 def decryption_error(error) logger&.info("#{error.} data: #{error.extra}") (error., extra: error.extra) end |
#decryption_key_error(error) ⇒ void
This method returns an undefined value.
38 39 40 41 42 43 44 45 46 |
# File 'lib/yes/core/utils/error_notifier.rb', line 38 def decryption_key_error(error) data = { encryptor_response: error.encryptor_response, event: error.event } logger&.info("#{error.} data: #{data}") (error., extra: data) end |
#event_handler_not_defined(message, event) ⇒ void
This method returns an undefined value.
58 59 60 61 62 63 |
# File 'lib/yes/core/utils/error_notifier.rb', line 58 def event_handler_not_defined(, event) data = { event: event.to_json } logger&.info("#{} data: #{data}") (, extra: data) if ENV['CAPTURE_EVENTSOURCING_ERRORS'] == 'true' end |
#invalid_event_data(event) ⇒ void
This method returns an undefined value.
19 20 21 22 23 24 25 |
# File 'lib/yes/core/utils/error_notifier.rb', line 19 def invalid_event_data(event) msg = 'Event with invalid data found in stream' data = { event: event.to_json } logger&.info("#{msg} data: #{data}") (msg, extra: data) end |
#missing_payload_store_client_error ⇒ void
This method returns an undefined value.
66 67 68 69 70 71 |
# File 'lib/yes/core/utils/error_notifier.rb', line 66 def missing_payload_store_client_error msg = 'Missing PayloadStore Client. Please configure it.' logger&.info(msg) (msg) end |
#notify(error, extra: nil) ⇒ void
This method returns an undefined value.
76 77 78 |
# File 'lib/yes/core/utils/error_notifier.rb', line 76 def notify(error, extra: nil) error_reporter&.call(error, context: extra || {}) end |
#payload_extraction_failed(error) ⇒ void
This method returns an undefined value.
29 30 31 32 33 34 |
# File 'lib/yes/core/utils/error_notifier.rb', line 29 def payload_extraction_failed(error) msg = 'Large payload extraction failed' logger&.info("#{msg} data: #{error.extra}") (msg, extra: error.extra) end |