class Aws::ErrorHandler
def build_error(context, code, message, data)
def build_error(context, code, message, data) errors_module = context.client.class.errors_module errors_module.error_class(code).new(context, message, data) end
def error(context)
def error(context) body = context.http_response.body_contents if body.empty? code, message, data = http_status_error(context) else code, message, data = extract_error(body, context) end build_error(context, code, message, data) end
def http_status_error(context)
def http_status_error(context) [http_status_error_code(context), '', EmptyStructure.new] end
def http_status_error_code(context)
def http_status_error_code(context) status_code = context.http_response.status_code { 302 => 'MovedTemporarily', 304 => 'NotModified', 400 => 'BadRequest', 403 => 'Forbidden', 404 => 'NotFound', 412 => 'PreconditionFailed', 413 => 'RequestEntityTooLarge', }[status_code] || "Http#{status_code}Error" end