MCPcopy Create free account
hub / github.com/tbphp/gpt-load / GetGroupConfigOptions

Method GetGroupConfigOptions

internal/services/group_service.go:800–849  ·  view source on GitHub ↗

GetGroupConfigOptions returns metadata describing available overrides.

()

Source from the content-addressed store, hash-verified

798
799// GetGroupConfigOptions returns metadata describing available overrides.
800func (s *GroupService) GetGroupConfigOptions() ([]ConfigOption, error) {
801 defaultSettings := utils.DefaultSystemSettings()
802 settingDefinitions := utils.GenerateSettingsMetadata(&defaultSettings)
803 defMap := make(map[string]models.SystemSettingInfo)
804 for _, def := range settingDefinitions {
805 defMap[def.Key] = def
806 }
807
808 currentSettings := s.settingsManager.GetSettings()
809 currentSettingsValue := reflect.ValueOf(currentSettings)
810 currentSettingsType := currentSettingsValue.Type()
811 jsonToFieldMap := make(map[string]string)
812 for i := 0; i < currentSettingsType.NumField(); i++ {
813 field := currentSettingsType.Field(i)
814 jsonTag := strings.Split(field.Tag.Get("json"), ",")[0]
815 if jsonTag != "" {
816 jsonToFieldMap[jsonTag] = field.Name
817 }
818 }
819
820 groupConfigType := reflect.TypeOf(models.GroupConfig{})
821 var options []ConfigOption
822 for i := 0; i < groupConfigType.NumField(); i++ {
823 field := groupConfigType.Field(i)
824 jsonTag := field.Tag.Get("json")
825 key := strings.Split(jsonTag, ",")[0]
826 if key == "" || key == "-" {
827 continue
828 }
829
830 definition, ok := defMap[key]
831 if !ok {
832 continue
833 }
834
835 var defaultValue any
836 if fieldName, ok := jsonToFieldMap[key]; ok {
837 defaultValue = currentSettingsValue.FieldByName(fieldName).Interface()
838 }
839
840 options = append(options, ConfigOption{
841 Key: key,
842 Name: definition.Name,
843 Description: definition.Description,
844 DefaultValue: defaultValue,
845 })
846 }
847
848 return options, nil
849}
850
851// validateAndCleanConfig verifies GroupConfig overrides.
852func (s *GroupService) validateAndCleanConfig(configMap map[string]any) (map[string]any, error) {

Callers

nothing calls this directly

Calls 4

DefaultSystemSettingsFunction · 0.92
GenerateSettingsMetadataFunction · 0.92
GetMethod · 0.65
GetSettingsMethod · 0.45

Tested by

no test coverage detected