Unverified Commit 9c4ba0ec authored by Nugine's avatar Nugine
Browse files

codegen: ops: fix router

parent be14027f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -744,7 +744,10 @@ fn required_headers<'a>(op: &Operation, rust_types: &'a RustTypes) -> Vec<&'a st

    let mut ans: Vec<&'a str> = default();
    for field in &ty.fields {
        let is_required = field.option_type.not() && field.default_value.is_none();
        let is_list = matches!(rust_types[field.type_.as_str()], rust::Type::List(_));

        let is_required = field.is_required || (field.option_type.not() && field.default_value.is_none() && is_list.not());

        if is_required && field.position == "header" {
            let header = field.http_header.as_deref().unwrap();
            ans.push(header);
+4 −7
Original line number Diff line number Diff line
@@ -5776,9 +5776,6 @@ pub fn resolve_route(
                    if qs.has("metrics") {
                        return Ok((&GetBucketMetricsConfiguration as &'static dyn super::Operation, false));
                    }
                    if qs.has("versions") {
                        return Ok((&ListObjectVersions as &'static dyn super::Operation, false));
                    }
                    if qs.has("accelerate") {
                        return Ok((&GetBucketAccelerateConfiguration as &'static dyn super::Operation, false));
                    }
@@ -5848,14 +5845,14 @@ pub fn resolve_route(
                    if qs.has("uploads") {
                        return Ok((&ListMultipartUploads as &'static dyn super::Operation, false));
                    }
                    if qs.has("versions") {
                        return Ok((&ListObjectVersions as &'static dyn super::Operation, false));
                    }
                    if super::check_query_pattern(qs, "list-type", "2") {
                        return Ok((&ListObjectsV2 as &'static dyn super::Operation, false));
                    }
                }
                if req.headers.contains_key("x-amz-optional-object-attributes") {
                    return Ok((&ListObjects as &'static dyn super::Operation, false));
                }
                Err(super::unknown_operation())
                Ok((&ListObjects as &'static dyn super::Operation, false))
            }
            S3Path::Object { .. } => {
                if let Some(qs) = qs {