Module: GraphitiErrors
- Defined in:
- lib/graphiti_errors.rb,
lib/graphiti_errors/version.rb,
lib/graphiti_errors/exception_handler.rb,
lib/graphiti_errors/validation/serializer.rb,
lib/graphiti_errors/invalid_request/serializer.rb,
lib/graphiti_errors/invalid_request/exception_handler.rb
Defined Under Namespace
Modules: ClassMethods, InvalidRequest, Serializers, Validation
Classes: ExceptionHandler
Constant Summary
collapse
- VERSION =
"1.1.1"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.disable! ⇒ Object
29
30
31
|
# File 'lib/graphiti_errors.rb', line 29
def self.disable!
@enabled = false
end
|
.disabled? ⇒ Boolean
37
38
39
|
# File 'lib/graphiti_errors.rb', line 37
def self.disabled?
@enabled == false
end
|
.enable! ⇒ Object
33
34
35
|
# File 'lib/graphiti_errors.rb', line 33
def self.enable!
@enabled = true
end
|
.included(klass) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/graphiti_errors.rb', line 10
def self.included(klass)
klass.class_eval do
class << self
attr_accessor :_errorable_registry
end
def self.inherited(subklass)
subklass._errorable_registry = _errorable_registry.dup
end
end
klass._errorable_registry = {}
klass.extend ClassMethods
if defined?(Graphiti::Errors::InvalidRequest)
klass.register_exception Graphiti::Errors::InvalidRequest,
handler: GraphitiErrors::InvalidRequest::ExceptionHandler
end
end
|
.logger ⇒ Object
41
42
43
|
# File 'lib/graphiti_errors.rb', line 41
def self.logger
@logger ||= defined?(Rails) ? Rails.logger : Logger.new($stdout)
end
|
.logger=(logger) ⇒ Object
45
46
47
|
# File 'lib/graphiti_errors.rb', line 45
def self.logger=(logger)
@logger = logger
end
|
Instance Method Details
#default_exception_handler ⇒ Object
61
62
63
|
# File 'lib/graphiti_errors.rb', line 61
def default_exception_handler
self.class.default_exception_handler
end
|
#handle_exception(e, show_raw_error: false) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/graphiti_errors.rb', line 49
def handle_exception(e, show_raw_error: false)
raise e if GraphitiErrors.disabled?
exception_klass = self.class._errorable_registry[e.class] || default_exception_handler.new
exception_klass.show_raw_error = show_raw_error
exception_klass.log(e)
json = exception_klass.error_payload(e)
status = exception_klass.status_code(e)
render json: json, status: status
end
|
#registered_exception?(e) ⇒ Boolean
65
66
67
|
# File 'lib/graphiti_errors.rb', line 65
def registered_exception?(e)
self.class._errorable_registry.key?(e.class)
end
|