Class: Userbin::Request::Middleware::JSONParser

Inherits:
Her::Middleware::DefaultParseJSON
  • Object
show all
Defined in:
lib/userbin/request.rb

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object

This method is triggered when the response has been received. It modifies the value of ‘env`.

Parameters:

  • env (Hash)

    The response environment



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/userbin/request.rb', line 80

def on_complete(env)
  env[:body] = '{}' if [204, 405].include?(env[:status])
  env[:body] = case env[:status]
  when 403
    raise Userbin::ForbiddenError.new(
      MultiJson.decode(env[:body])['message'])
  when 419
    raise Userbin::UserUnauthorizedError.new(
      MultiJson.decode(env[:body])['message'])
  when 400..599
    raise Userbin::Error.new(MultiJson.decode(env[:body])['message'])
  else
    parse(env[:body])
  end
end