func marshalMetaRequest()

in oss/api_op_select_object.go [110:156]


func marshalMetaRequest(request any, input *OperationInput) error {
	var builder strings.Builder
	var process string
	switch r := request.(*CreateSelectObjectMetaRequest).MetaRequest.(type) {
	case *JsonMetaRequest:
		process = "json/meta"
		builder.WriteString("<JsonMetaRequest>")
		if r.InputSerialization != nil {
			bs, err := xml.Marshal(r.InputSerialization)
			if err != nil {
				return err
			}
			builder.WriteString(string(bs))
		}
		if r.OverwriteIfExists != nil {
			builder.WriteString("<OverwriteIfExists>")
			builder.WriteString(strconv.FormatBool(*r.OverwriteIfExists))
			builder.WriteString("</OverwriteIfExists>")
		}
		builder.WriteString("</JsonMetaRequest>")
	case *CsvMetaRequest:
		r.encodeBase64()
		process = "csv/meta"
		builder.WriteString("<CsvMetaRequest>")
		if r.InputSerialization != nil {
			bs, err := xml.Marshal(r.InputSerialization)
			if err != nil {
				return err
			}
			builder.WriteString(string(bs))
		}
		if r.OverwriteIfExists != nil {
			builder.WriteString("<OverwriteIfExists>")
			builder.WriteString(strconv.FormatBool(*r.OverwriteIfExists))
			builder.WriteString("</OverwriteIfExists>")
		}
		builder.WriteString("</CsvMetaRequest>")
	default:
		return NewErrParamInvalid("MetaRequest")
	}
	input.Body = strings.NewReader(builder.String())
	if input.Parameters == nil {
		input.Parameters = map[string]string{}
	}
	input.Parameters["x-oss-process"] = process
	return nil
}