(w http.ResponseWriter, r *http.Request, name, action string)
| 180 | } |
| 181 | |
| 182 | func (s *Server) handleProviderAction(w http.ResponseWriter, r *http.Request, name, action string) { |
| 183 | if r.Method != http.MethodPost && action != "models" { |
| 184 | methodNotAllowed(w) |
| 185 | return |
| 186 | } |
| 187 | switch action { |
| 188 | case "enable": |
| 189 | provider, err := s.services.Providers.Enable(name) |
| 190 | writeResult(w, provider, err) |
| 191 | case "disable": |
| 192 | provider, err := s.services.Providers.Disable(name) |
| 193 | writeResult(w, provider, err) |
| 194 | case "rename": |
| 195 | var input struct { |
| 196 | NewName string `json:"newName"` |
| 197 | } |
| 198 | if err := decodeJSON(r, &input); err != nil { |
| 199 | writeError(w, http.StatusBadRequest, err.Error()) |
| 200 | return |
| 201 | } |
| 202 | provider, err := s.services.Providers.Rename(name, input.NewName) |
| 203 | writeResult(w, provider, err) |
| 204 | case "models": |
| 205 | if r.Method != http.MethodGet { |
| 206 | methodNotAllowed(w) |
| 207 | return |
| 208 | } |
| 209 | models, err := s.services.Providers.ResolveModels(name) |
| 210 | writeResult(w, models, err) |
| 211 | default: |
| 212 | writeError(w, http.StatusNotFound, "unknown provider action") |
| 213 | } |
| 214 | } |
| 215 | |
| 216 | func (s *Server) handleTools(w http.ResponseWriter, r *http.Request) { |
| 217 | if r.Method != http.MethodGet { |
no test coverage detected