class Aws::Plugins::S3UrlEncodedKeys::Handler

def call(context)

def call(context)
  if context.params.key?(:encoding_type)
    @handler.call(context) # user managed
  else
    manage_keys(context)
  end
end

def decode(member, struct)

def decode(member, struct)
  if struct[member]
    struct[member] = CGI.unescape(struct[member])
  end
end

def decode_list_multipart_uploads_keys(data)

def decode_list_multipart_uploads_keys(data)
  decode(:key_marker, data)
  decode(:next_key_marker, data)
  decode(:prefix, data)
  decode(:delimiter, data)
  data.uploads.each { |o| decode(:key, o) } if data.uploads
  data.common_prefixes.each { |o| decode(:prefix, o) } if data.common_prefixes
end

def decode_list_object_versions_keys(data)

def decode_list_object_versions_keys(data)
  decode(:key_marker, data)
  decode(:next_key_marker, data)
  decode(:prefix, data)
  decode(:delimiter, data)
  data.versions.each { |o| decode(:key, o) } if data.versions
  data.delete_markers.each { |o| decode(:key, o) } if data.delete_markers
  data.common_prefixes.each { |o| decode(:prefix, o) } if data.common_prefixes
end

def decode_list_objects_keys(data)

def decode_list_objects_keys(data)
  decode(:marker, data)
  decode(:next_marker, data)
  decode(:prefix, data)
  decode(:delimiter, data)
  data.contents.each { |o| decode(:key, o) } if data.contents
  data.common_prefixes.each { |o| decode(:prefix, o) } if data.common_prefixes
end

def manage_keys(context)

def manage_keys(context)
  context.params[:encoding_type] = 'url'
  @handler.call(context).on_success do |resp|
    send("decode_#{resp.context.operation_name}_keys", resp.data)
  end
end