优化结构

This commit is contained in:
Yvan
2026-08-28 11:10:57 +08:00
parent 5b17f47141
commit 676fa4d952
10 changed files with 91 additions and 80 deletions
@@ -38,7 +38,7 @@ func (s *IntegrationConfigService) List(ctx context.Context, kind string) ([]*dt
enabled = config.Enabled
delete(byProvider, definition.Provider)
}
result = append(result, &dto.IntegrationConfigResponse{Kind: definition.Kind, Provider: definition.Provider, Name: definition.Name, Description: definition.Description, Enabled: enabled, Configured: configured, Config: values, Fields: definition.Fields})
result = append(result, &dto.IntegrationConfigResponse{Kind: definition.Kind, Provider: definition.Provider, Name: definition.Name, Description: definition.Description, Enabled: enabled, Configured: configured, Config: values, Fields: integrationFieldsDTO(definition.Fields)})
}
for _, config := range configs {
if _, exists := byProvider[config.Provider]; !exists {
@@ -59,7 +59,7 @@ func (s *IntegrationConfigService) Find(ctx context.Context, kind, provider stri
if found {
response.Name = definition.Name
response.Description = definition.Description
response.Fields = definition.Fields
response.Fields = integrationFieldsDTO(definition.Fields)
response.Config = mergeConfigJSON(definition.Defaults, config.Values)
}
return response, nil
@@ -90,3 +90,21 @@ func mergeConfigJSON(defaults map[string]any, raw json.RawMessage) json.RawMessa
encoded, _ := json.Marshal(values)
return encoded
}
func integrationFieldsDTO(fields []integrationbiz.IntegrationConfigField) []dto.IntegrationConfigField {
if fields == nil {
return nil
}
out := make([]dto.IntegrationConfigField, 0, len(fields))
for _, field := range fields {
item := dto.IntegrationConfigField{Key: field.Key, Label: field.Label, Type: field.Type, Required: field.Required, Secret: field.Secret, Placeholder: field.Placeholder, Description: field.Description}
if field.Options != nil {
item.Options = make([]dto.IntegrationConfigOption, 0, len(field.Options))
for _, option := range field.Options {
item.Options = append(item.Options, dto.IntegrationConfigOption{Label: option.Label, Value: option.Value})
}
}
out = append(out, item)
}
return out
}