class MyBitcasa::ResponseMiddleware

Public Instance Methods

process_response(env) click to toggle source
# File lib/my_bitcasa/response_middleware.rb, line 8
def process_response(env)
  # check status code
  case env[:status]
  when 200
    # 200 OK
  when 401
    # 401 Auhorization error
    raise AuthorizationError, "login required"
  else
    # other status
    raise ConnectionError, "response status code: #{env[:status]}"
  end

  # parse json
  case env[:body]
  when "OK"
    # OK string
  else
    # parse json
    begin
      env[:body] = JSON.parse(env[:body])
    rescue => e
      e2 =ResponseFormatError.new("#{e.class}: #{e.message}")
      e2.set_backtrace(e.backtrace)
      raise e2
    end
  end
end