FetchProviderModels @Title FetchProviderModels @Tag Provider API @Description fetch provider models @Param body body object.Provider true "The details of the provider" @Success 200 {array} string The Response object @router /fetch-provider-models [post]
()
| 206 | // @Success 200 {array} string The Response object |
| 207 | // @router /fetch-provider-models [post] |
| 208 | func (c *ApiController) FetchProviderModels() { |
| 209 | if !c.RequireAdmin() { |
| 210 | return |
| 211 | } |
| 212 | |
| 213 | var provider object.Provider |
| 214 | err := json.Unmarshal(c.Ctx.Input.RequestBody, &provider) |
| 215 | if err != nil { |
| 216 | c.ResponseError(err.Error()) |
| 217 | return |
| 218 | } |
| 219 | |
| 220 | if provider.ClientSecret == "***" || provider.ExternalApiKey == "***" { |
| 221 | dbProvider, err := object.GetProvider(fmt.Sprintf("%s/%s", provider.Owner, provider.Name)) |
| 222 | if err == nil && dbProvider != nil { |
| 223 | if provider.ClientSecret == "***" { |
| 224 | provider.ClientSecret = dbProvider.ClientSecret |
| 225 | } |
| 226 | if provider.ExternalApiKey == "***" { |
| 227 | provider.ExternalApiKey = dbProvider.ExternalApiKey |
| 228 | } |
| 229 | } |
| 230 | } |
| 231 | |
| 232 | secretKey := provider.ClientSecret |
| 233 | if secretKey == "" { |
| 234 | secretKey = provider.ExternalApiKey |
| 235 | } |
| 236 | |
| 237 | url := provider.ProviderUrl |
| 238 | |
| 239 | p, err := model.GetModelProvider(provider.Type, provider.SubType, provider.ClientId, secretKey, provider.UserKey, 0, 0, 0, 0, 0, url, provider.ApiVersion, provider.CompatibleProvider, 0, 0, "", false) |
| 240 | if err != nil { |
| 241 | c.ResponseError(err.Error()) |
| 242 | return |
| 243 | } |
| 244 | |
| 245 | if p == nil { |
| 246 | c.ResponseOk([]string{}) |
| 247 | return |
| 248 | } |
| 249 | |
| 250 | models, err := p.ListModels() |
| 251 | if err != nil { |
| 252 | c.ResponseError(err.Error()) |
| 253 | return |
| 254 | } |
| 255 | |
| 256 | c.ResponseOk(models) |
| 257 | } |
nothing calls this directly
no test coverage detected