MCPcopy Create free account
hub / github.com/compozy/agh / parsePutSettingsProviderRequest

Function parsePutSettingsProviderRequest

internal/api/core/settings.go:875–917  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

873}
874
875func parsePutSettingsProviderRequest(c *gin.Context) (settingspkg.CollectionItemPutRequest, error) {
876 var body contract.PutSettingsProviderRequest
877 if err := c.ShouldBindJSON(&body); err != nil {
878 return settingspkg.CollectionItemPutRequest{}, NewSettingsValidationError(
879 fmt.Errorf("decode provider settings request: %w", err),
880 )
881 }
882 if providerSettingsPayloadEmpty(body.Settings) && len(body.Secrets) == 0 {
883 return settingspkg.CollectionItemPutRequest{}, NewSettingsValidationError(
884 errors.New("provider.settings is required"),
885 )
886 }
887 req, err := parseSettingsCollectionRequest(c, settingspkg.CollectionProviders)
888 if err != nil {
889 return settingspkg.CollectionItemPutRequest{}, err
890 }
891 name, err := requiredSettingsPathValue(c.Param("name"), "name")
892 if err != nil {
893 return settingspkg.CollectionItemPutRequest{}, err
894 }
895 settings := settingspkg.ProviderSettings{
896 Command: strings.TrimSpace(body.Settings.Command),
897 DisplayName: strings.TrimSpace(body.Settings.DisplayName),
898 Models: providerModelsFromPayload(body.Settings.Models),
899 ModelsSet: body.Settings.Models != nil,
900 Harness: aghconfig.ProviderHarness(strings.TrimSpace(body.Settings.Harness)),
901 RuntimeProvider: strings.TrimSpace(body.Settings.RuntimeProvider),
902 Transport: strings.TrimSpace(body.Settings.Transport),
903 BaseURL: strings.TrimSpace(body.Settings.BaseURL),
904 AuthMode: aghconfig.ProviderAuthMode(strings.TrimSpace(body.Settings.AuthMode)),
905 EnvPolicy: aghconfig.ProviderEnvPolicy(strings.TrimSpace(body.Settings.EnvPolicy)),
906 HomePolicy: aghconfig.ProviderHomePolicy(strings.TrimSpace(body.Settings.HomePolicy)),
907 AuthStatusCmd: strings.TrimSpace(body.Settings.AuthStatusCmd),
908 AuthLoginCmd: strings.TrimSpace(body.Settings.AuthLoginCmd),
909 CredentialSlots: providerCredentialSlotsFromPayload(body.Settings.CredentialSlots),
910 }
911 return settingspkg.CollectionItemPutRequest{
912 CollectionRequest: req,
913 Name: name,
914 Provider: &settings,
915 ProviderSecrets: providerSecretWritesFromPayload(body.Secrets),
916 }, nil
917}
918
919func providerSettingsPayloadEmpty(payload contract.SettingsProviderSettingsPayload) bool {
920 return strings.TrimSpace(payload.Command) == "" &&

Callers 1

PutSettingsProviderMethod · 0.85

Tested by

no test coverage detected