save: unsaved changes (loader.go + types.go)
This commit is contained in:
@@ -229,6 +229,15 @@ func ConvertParams(params []types.ParamSpec) []types.Param {
|
|||||||
if p.RefSvcID != nil {
|
if p.RefSvcID != nil {
|
||||||
ref = *p.RefSvcID
|
ref = *p.RefSvcID
|
||||||
}
|
}
|
||||||
|
isNested := len(p.SubParams) > 0
|
||||||
|
// Рекурсивно конвертируем SubParams для map-fixed/array-map-fixed.
|
||||||
|
subParams := make([]types.Param, 0, len(p.SubParams))
|
||||||
|
for _, sp := range p.SubParams {
|
||||||
|
sub := ConvertParams([]types.ParamSpec{sp})
|
||||||
|
if len(sub) > 0 {
|
||||||
|
subParams = append(subParams, sub[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
out = append(out, types.Param{
|
out = append(out, types.Param{
|
||||||
ID: p.ID,
|
ID: p.ID,
|
||||||
Code: p.Code,
|
Code: p.Code,
|
||||||
@@ -240,14 +249,19 @@ func ConvertParams(params []types.ParamSpec) []types.Param {
|
|||||||
Man: strings.TrimSpace(p.Man),
|
Man: strings.TrimSpace(p.Man),
|
||||||
Sensitive: p.IsSensitive,
|
Sensitive: p.IsSensitive,
|
||||||
IsJson: strings.EqualFold(strings.TrimSpace(p.DataType), "json"),
|
IsJson: strings.EqualFold(strings.TrimSpace(p.DataType), "json"),
|
||||||
|
IsNested: isNested,
|
||||||
|
SubParams: subParams,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
// NormalizeParamType нормализует строку data_type → bool | int64 | string.
|
// NormalizeParamType нормализует строку data_type → bool | int64 | string | map-fixed | array-map-fixed.
|
||||||
func NormalizeParamType(value string) string {
|
func NormalizeParamType(value string) string {
|
||||||
v := strings.ToLower(strings.TrimSpace(value))
|
v := strings.ToLower(strings.TrimSpace(value))
|
||||||
|
if v == "map-fixed" || v == "array-map-fixed" {
|
||||||
|
return v
|
||||||
|
}
|
||||||
if strings.Contains(v, "bool") {
|
if strings.Contains(v, "bool") {
|
||||||
return "bool"
|
return "bool"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,10 @@ type Param struct {
|
|||||||
// При IsJson=true в схему добавляется JsonNormalize план-модификатор,
|
// При IsJson=true в схему добавляется JsonNormalize план-модификатор,
|
||||||
// чтобы план и API-ответ (компактный JSON) всегда совпадали.
|
// чтобы план и API-ответ (компактный JSON) всегда совпадали.
|
||||||
IsJson bool
|
IsJson bool
|
||||||
|
// IsNested — параметр типа map-fixed/array-map-fixed с подполями.
|
||||||
|
IsNested bool
|
||||||
|
// SubParams — подполя для map-fixed/array-map-fixed параметров.
|
||||||
|
SubParams []Param
|
||||||
}
|
}
|
||||||
|
|
||||||
// GenResource — ресурс инстанса (nubes_{service}).
|
// GenResource — ресурс инстанса (nubes_{service}).
|
||||||
|
|||||||
Reference in New Issue
Block a user