func unmarshalEncodeType()

in oss/api_op_bucket.go [259:401]


func unmarshalEncodeType(result any, output *OperationOutput) error {
	switch r := result.(type) {
	case *ListObjectsResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			fields := []**string{&r.Prefix, &r.Marker, &r.Delimiter, &r.NextMarker}
			var s string
			var err error
			for _, pp := range fields {
				if pp != nil && *pp != nil {
					if s, err = url.QueryUnescape(**pp); err != nil {
						return err
					}
					*pp = Ptr(s)
				}
			}
			for i := 0; i < len(r.Contents); i++ {
				if *r.Contents[i].Key, err = url.QueryUnescape(*r.Contents[i].Key); err != nil {
					return err
				}
			}
			for i := 0; i < len(r.CommonPrefixes); i++ {
				if *r.CommonPrefixes[i].Prefix, err = url.QueryUnescape(*r.CommonPrefixes[i].Prefix); err != nil {
					return err
				}
			}
		}
	case *ListObjectsV2Result:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			fields := []**string{&r.Prefix, &r.StartAfter, &r.Delimiter, &r.ContinuationToken, &r.NextContinuationToken}
			var s string
			var err error
			for _, pp := range fields {
				if pp != nil && *pp != nil {
					if s, err = url.QueryUnescape(**pp); err != nil {
						return err
					}
					*pp = Ptr(s)
				}
			}
			for i := 0; i < len(r.Contents); i++ {
				if *r.Contents[i].Key, err = url.QueryUnescape(*r.Contents[i].Key); err != nil {
					return err
				}
			}
			for i := 0; i < len(r.CommonPrefixes); i++ {
				if *r.CommonPrefixes[i].Prefix, err = url.QueryUnescape(*r.CommonPrefixes[i].Prefix); err != nil {
					return err
				}
			}
		}
	case *DeleteMultipleObjectsResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			var err error
			for i := 0; i < len(r.DeletedObjects); i++ {
				if *r.DeletedObjects[i].Key, err = url.QueryUnescape(*r.DeletedObjects[i].Key); err != nil {
					return err
				}
			}
		}
	case *InitiateMultipartUploadResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			var err error
			if *r.Key, err = url.QueryUnescape(*r.Key); err != nil {
				return err
			}
		}
	case *CompleteMultipartUploadResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			var err error
			if *r.Key, err = url.QueryUnescape(*r.Key); err != nil {
				return err
			}
		}
	case *ListMultipartUploadsResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			fields := []**string{&r.KeyMarker, &r.NextKeyMarker, &r.Prefix, &r.Delimiter}
			var s string
			var err error
			for _, pp := range fields {
				if pp != nil && *pp != nil {
					if s, err = url.QueryUnescape(**pp); err != nil {
						return err
					}
					*pp = Ptr(s)
				}
			}
			for i := 0; i < len(r.Uploads); i++ {
				if *r.Uploads[i].Key, err = url.QueryUnescape(*r.Uploads[i].Key); err != nil {
					return err
				}
			}
		}
	case *ListPartsResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			fields := []**string{&r.Key}
			var s string
			var err error
			for _, pp := range fields {
				if pp != nil && *pp != nil {
					if s, err = url.QueryUnescape(**pp); err != nil {
						return err
					}
					*pp = Ptr(s)
				}
			}
		}
	case *ListObjectVersionsResult:
		if r.EncodingType != nil && strings.EqualFold(*r.EncodingType, "url") {
			fields := []**string{&r.Prefix, &r.KeyMarker, &r.Delimiter, &r.NextKeyMarker}
			var s string
			var err error
			for _, pp := range fields {
				if pp != nil && *pp != nil {
					if s, err = url.QueryUnescape(**pp); err != nil {
						return err
					}
					*pp = Ptr(s)
				}
			}
			for i := 0; i < len(r.ObjectVersions); i++ {
				if *r.ObjectVersions[i].Key, err = url.QueryUnescape(*r.ObjectVersions[i].Key); err != nil {
					return err
				}
			}
			for i := 0; i < len(r.ObjectDeleteMarkers); i++ {
				if *r.ObjectDeleteMarkers[i].Key, err = url.QueryUnescape(*r.ObjectDeleteMarkers[i].Key); err != nil {
					return err
				}
			}
			for i := 0; i < len(r.ObjectVersionsDeleteMarkers); i++ {
				if *r.ObjectVersionsDeleteMarkers[i].Key, err = url.QueryUnescape(*r.ObjectVersionsDeleteMarkers[i].Key); err != nil {
					return err
				}
			}
			for i := 0; i < len(r.CommonPrefixes); i++ {
				if *r.CommonPrefixes[i].Prefix, err = url.QueryUnescape(*r.CommonPrefixes[i].Prefix); err != nil {
					return err
				}
			}
		}
	}
	return nil
}