class Userbin::Request::Middleware::JSONParser
Public Instance Methods
on_complete(env)
click to toggle source
# File lib/userbin/request.rb, line 120 def on_complete(env) response = if env[:body].nil? || env[:body].empty? {} else begin MultiJson.load(env[:body], :symbolize_keys => true) rescue MultiJson::LoadError raise Userbin::ApiError, 'Invalid response from Userbin API' end end case env[:status] when 200..299 # OK when 400 raise Userbin::BadRequestError, response[:message] when 401 raise Userbin::UnauthorizedError, response[:message] when 403 raise Userbin::ForbiddenError, response[:message] when 404 raise Userbin::NotFoundError, response[:message] when 419 # session token is invalid so clear it RequestStore.store[:userbin].session_token = nil raise Userbin::UserUnauthorizedError, response[:message] when 422 raise Userbin::InvalidParametersError, response[:message] else raise Userbin::ApiError, response[:message] end env[:body] = { data: response, metadata: [], errors: {} } end