Class: Aws::S3::Plugins::Http200Errors::Handler Private

Inherits:
Seahorse::Client::Handler
  • Object
show all
Defined in:
lib/aws-sdk-s3/plugins/http_200_errors.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Method Summary collapse

Instance Method Details

#call(context) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



14
15
16
17
18
19
20
21
22
# File 'lib/aws-sdk-s3/plugins/http_200_errors.rb', line 14

def call(context)
  @handler.call(context).on(200) do |response|
    if error = check_for_error(context)
      context.http_response.status_code = 500
      response.data = nil
      response.error = error
    end
  end
end

#check_for_error(context) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



24
25
26
27
28
29
30
31
# File 'lib/aws-sdk-s3/plugins/http_200_errors.rb', line 24

def check_for_error(context)
  xml = context.http_response.body_contents
  if xml.match(/<Error>/)
    error_code = xml.match(/<Code>(.+?)<\/Code>/)[1]
    error_message = xml.match(/<Message>(.+?)<\/Message>/)[1]
    S3::Errors.error_class(error_code).new(context, error_message)
  end
end