Class: LineChange::Connection::ResponseHandler

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/line_change/connection/response_handler.rb

Constant Summary collapse

ClientErrorStatuses =
(400...500).freeze
ServerErrorStatuses =
(500...600).freeze

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/line_change/connection/response_handler.rb', line 7

def on_complete(env)
  case env[:status]
  when 404
    raise LineChange::ResourceNotFound, response_values(env)
  when 405
    raise LineChange::MethodNotAllowed, response_values(env)
  when 415
    raise LineChange::UnsupportedMediaType, response_values(env)
  when 422
    raise LineChange::UnprocessableEntity, response_values(env)
  when ClientErrorStatuses
    raise LineChange::ClientError, response_values(env)
  when ServerErrorStatuses
    raise LineChange::ServerError, response_values(env)
  end
end

#response_values(env) ⇒ Object



24
25
26
# File 'lib/line_change/connection/response_handler.rb', line 24

def response_values(env)
  {status: env.status, headers: env.response_headers, body: env.body}
end