Sha256: 74b4544231ea49dac243a975ab8d68454d483e0d26d4b920b36c82eba02f47c9
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module MarketoApi class Middleware::RaiseError < Faraday::Middleware def on_complete(env) @env = env case env[:status] when 300 raise Faraday::Error::ClientError.new("300: The external ID provided matches " \ "more than one record", response_values) when 401 raise MarketoApi::UnauthorizedError, message when 404 raise Faraday::Error::ResourceNotFound, message when 413 raise Faraday::Error::ClientError.new("413: Request Entity Too Large", response_values) when 400...600 raise Faraday::Error::ClientError.new(message, response_values) when 602..603 raise MarketoApi::UnauthorizedError, message end end def message "#{body['errorCode']}: #{body['message']}" end def body @body = (@env[:body].is_a?(Array) ? @env[:body].first : @env[:body]) case @body when Hash @body else { 'errorCode' => '(error code missing)', 'message' => @body } end end def response_values { :status => @env[:status], :headers => @env[:response_headers], :body => @env[:body] } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
marketo_api-0.3.0.pre.alpha | lib/marketo_api/middleware/raise_error.rb |