Sha256: b6bc5a3aac5b6f2b9cc3270b521773ac2c147eda9f8d3a9b7842800bf49409d0
Contents?: true
Size: 901 Bytes
Versions: 3
Compression:
Stored size: 901 Bytes
Contents
module Aws module Json class ErrorHandler < Xml::ErrorHandler # @param [Seahorse::Client::RequestContext] context # @return [Seahorse::Client::Response] def call(context) @handler.call(context).on(300..599) do |response| response.error = error(context) response.data = nil end end private def extract_error(context) json = MultiJson.load(context.http_response.body_contents) error_code = json['code'] || json['__type'] error_code ||= context.http_response.headers['x-amzn-errortype'] error_code = error_code.split('#').last if error_code == 'RequestEntityTooLarge' error_message = 'Request body must be less than 1 MB' else error_message = json['message'] || json['Message'] end [error_code, error_message] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aws-sdk-core-2.0.33 | lib/aws-sdk-core/json/error_handler.rb |
aws-sdk-core-2.0.32 | lib/aws-sdk-core/json/error_handler.rb |
aws-sdk-core-2.0.31 | lib/aws-sdk-core/json/error_handler.rb |