fix: move s3Uid resolve before early return when no refSvcId
This commit is contained in:
@@ -1187,7 +1187,8 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams
|
||||
}
|
||||
}
|
||||
if len(refById) == 0 {
|
||||
return params, nil
|
||||
// Даже без refSvcId — резолвим s3Uid внутри map-fixed (соглашение об именах).
|
||||
return c.resolveS3UidInAllMapFixed(params, opParams), nil
|
||||
}
|
||||
|
||||
resolved := make(map[int]string, len(params))
|
||||
@@ -1218,6 +1219,21 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams
|
||||
return resolved, nil
|
||||
}
|
||||
|
||||
// resolveS3UidInAllMapFixed проходит по всем параметрам и для map-fixed
|
||||
// резолвит s3Uid-подобные значения в UUID. Используется когда нет ни одного
|
||||
// параметра с refSvcId (ранний выход resolveRefSvcParamValues).
|
||||
func (c *UniversalClient) resolveS3UidInAllMapFixed(params map[int]string, opParams []universalCfsParam) map[int]string {
|
||||
result := make(map[int]string, len(params))
|
||||
for paramId, value := range params {
|
||||
if strings.TrimSpace(value) != "" && value != "{}" && strings.HasPrefix(strings.TrimSpace(value), "{") {
|
||||
result[paramId] = c.resolveS3UidInMapFixed(paramId, value, opParams)
|
||||
} else {
|
||||
result[paramId] = value
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// resolveS3UidInMapFixed парсит JSON map-fixed-параметра, находит ключи
|
||||
// по паттерну s3.*uid (case-insensitive) и резолвит значения-не-UUID
|
||||
// в UUID через S3 (сервис 12). Соглашение об именах: s3Uid, s3_uid, S3Uid → S3.
|
||||
|
||||
Reference in New Issue
Block a user