Sha256: b83374a6f95bf2e8a9fb9faad36958979c17e0cd329bfdd97ac066c1656e0e2e
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
module Axel module Payload class Errors < Base root_node :error attribute :messages, default: [] attribute :status, default: 200, read: :private SUCCESS_CODES = [200, 201, 202, 204] def initialize(params = {}) super @suppress_response_codes = !!@attributes[:suppress_response_codes] end def exception RemoteError.new(self) unless success? end def success? SUCCESS_CODES.include?(status_code.to_i) && messages.empty? end def messages=(messages) @attributes[:messages] = [messages].flatten.compact end def status=(status) @attributes[:status] = status end def header_status suppress_response_codes? ? 200 : status_code end def <<(message) @attributes[:messages] << message end def display drop? ? {} : { status: status_code, messages: messages } end def display? !SUCCESS_CODES.include?(status_code.to_i) || messages.present? end def new_error(status, *messages) self.status = status if status self.messages = self.messages + messages end def status_code status ? Rack::Utils.status_code(status) : 200 end private def suppress_response_codes? @suppress_response_codes end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
axel-0.0.1 | app/models/axel/payload/errors.rb |