Class: Evil::Client::Operation::Response
- Inherits:
-
Object
- Object
- Evil::Client::Operation::Response
- Extended by:
- Dry::Initializer::Mixin
- Defined in:
- lib/evil/client/operation/response.rb
Overview
Processes rack responses using an operation’s schema
Instance Method Summary collapse
-
#handle(response) ⇒ Object
Processes rack responses returned by [Dry::Cluent::Connection].
Instance Method Details
#handle(response) ⇒ Object
Processes rack responses returned by [Dry::Cluent::Connection]
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/evil/client/operation/response.rb', line 19 def handle(response) status, _, body = response body = body.any? ? body.join("\n") : nil handlers(status).each do |handler| data = handler[:coercer][body] rescue next raise ResponseError.new(schema, status, data) if handler[:raise] return data end raise UnexpectedResponseError.new(schema, status, body) end |