MCPcopy Index your code
hub / github.com/Shopify/toxiproxy / ProxyUpdate

Method ProxyUpdate

api.go:296–331  ·  view source on GitHub ↗
(response http.ResponseWriter, request *http.Request)

Source from the content-addressed store, hash-verified

294}
295
296func (server *ApiServer) ProxyUpdate(response http.ResponseWriter, request *http.Request) {
297 log := zerolog.Ctx(request.Context())
298 if request.Method == "POST" {
299 log.Warn().Msg("ProxyUpdate: HTTP method POST is depercated. Use HTTP PATCH instead.")
300 }
301
302 vars := mux.Vars(request)
303
304 proxy, err := server.Collection.Get(vars["proxy"])
305 if server.apiError(response, err) {
306 return
307 }
308
309 // Default fields are the same as existing proxy
310 input := Proxy{Listen: proxy.Listen, Upstream: proxy.Upstream, Enabled: proxy.Enabled}
311 err = json.NewDecoder(request.Body).Decode(&input)
312 if server.apiError(response, joinError(err, ErrBadRequestBody)) {
313 return
314 }
315
316 err = proxy.Update(&input)
317 if server.apiError(response, err) {
318 return
319 }
320
321 data, err := json.Marshal(proxyWithToxics(proxy))
322 if server.apiError(response, err) {
323 return
324 }
325
326 response.Header().Set("Content-Type", "application/json")
327 _, err = response.Write(data)
328 if err != nil {
329 log.Warn().Err(err).Msg("ProxyUpdate: Failed to write response to client")
330 }
331}
332
333func (server *ApiServer) ProxyDelete(response http.ResponseWriter, request *http.Request) {
334 vars := mux.Vars(request)

Callers

nothing calls this directly

Calls 6

apiErrorMethod · 0.95
joinErrorFunction · 0.85
proxyWithToxicsFunction · 0.85
GetMethod · 0.80
UpdateMethod · 0.80
WriteMethod · 0.80

Tested by

no test coverage detected