Class: Axel::Payload::Errors
- Inherits:
-
Base
- Object
- Base
- Axel::Payload::Errors
show all
- Defined in:
- app/models/axel/payload/errors.rb
Constant Summary
collapse
- SUCCESS_CODES =
[200, 201, 202, 204]
Instance Attribute Summary
Attributes inherited from Base
#attributes
Instance Method Summary
collapse
Methods inherited from Base
#[], #[]=, attribute, attribute_defaults, #drop!, #drop?, #reset!, root_node, #to_json, #to_xml
Constructor Details
#initialize(params = {}) ⇒ Errors
Returns a new instance of Errors.
9
10
11
12
|
# File 'app/models/axel/payload/errors.rb', line 9
def initialize(params = {})
super
@suppress_response_codes = !!@attributes[:suppress_response_codes]
end
|
Instance Method Details
#<<(message) ⇒ Object
34
35
36
|
# File 'app/models/axel/payload/errors.rb', line 34
def <<(message)
@attributes[:messages] << message
end
|
#display ⇒ Object
38
39
40
|
# File 'app/models/axel/payload/errors.rb', line 38
def display
drop? ? {} : { status: status_code, messages: messages }
end
|
#display? ⇒ Boolean
42
43
44
|
# File 'app/models/axel/payload/errors.rb', line 42
def display?
!SUCCESS_CODES.include?(status_code.to_i) || messages.present?
end
|
#exception ⇒ Object
14
15
16
|
# File 'app/models/axel/payload/errors.rb', line 14
def exception
RemoteError.new(self) unless success?
end
|
30
31
32
|
# File 'app/models/axel/payload/errors.rb', line 30
def
suppress_response_codes? ? 200 : status_code
end
|
#messages=(messages) ⇒ Object
22
23
24
|
# File 'app/models/axel/payload/errors.rb', line 22
def messages=(messages)
@attributes[:messages] = [messages].flatten.compact
end
|
#new_error(status, *messages) ⇒ Object
46
47
48
49
|
# File 'app/models/axel/payload/errors.rb', line 46
def new_error(status, *messages)
self.status = status if status
self.messages = self.messages + messages
end
|
#status=(status) ⇒ Object
26
27
28
|
# File 'app/models/axel/payload/errors.rb', line 26
def status=(status)
@attributes[:status] = status
end
|
#status_code ⇒ Object
51
52
53
|
# File 'app/models/axel/payload/errors.rb', line 51
def status_code
status ? Rack::Utils.status_code(status) : 200
end
|
#success? ⇒ Boolean
18
19
20
|
# File 'app/models/axel/payload/errors.rb', line 18
def success?
SUCCESS_CODES.include?(status_code.to_i) && messages.empty?
end
|