MCPcopy
hub / github.com/spacecloud-io/space-cloud / HandleServiceRoutingRequest

Method HandleServiceRoutingRequest

runner/server/handle.go:358–393  ·  view source on GitHub ↗

HandleServiceRoutingRequest handles request to apply service routing rules

()

Source from the content-addressed store, hash-verified

356
357// HandleServiceRoutingRequest handles request to apply service routing rules
358func (s *Server) HandleServiceRoutingRequest() http.HandlerFunc {
359 type request struct {
360 Routes model.Routes `json:"routes"`
361 }
362 return func(w http.ResponseWriter, r *http.Request) {
363
364 defer utils.CloseTheCloser(r.Body)
365
366 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
367 defer cancel()
368
369 // Verify token
370 _, err := s.auth.VerifyToken(utils.GetToken(r))
371 if err != nil {
372 _ = helpers.Logger.LogError(helpers.GetRequestID(ctx), "Failed to set service routes", err, nil)
373 _ = helpers.Response.SendErrorResponse(ctx, w, http.StatusUnauthorized, err)
374 return
375 }
376
377 vars := mux.Vars(r)
378 projectID := vars["project"]
379 serviceID := vars["serviceId"]
380
381 req := new(request)
382 _ = json.NewDecoder(r.Body).Decode(req)
383
384 err = s.driver.ApplyServiceRoutes(ctx, projectID, serviceID, req.Routes)
385 if err != nil {
386 _ = helpers.Logger.LogError(helpers.GetRequestID(ctx), "Failed to apply service routing rules", err, nil)
387 _ = helpers.Response.SendErrorResponse(ctx, w, http.StatusInternalServerError, err)
388 return
389 }
390
391 _ = helpers.Response.SendOkayResponse(ctx, http.StatusOK, w)
392 }
393}
394
395// HandleGetServiceRoutingRequest handles request to get all service routing rules
396func (s *Server) HandleGetServiceRoutingRequest() http.HandlerFunc {

Callers 1

routesMethod · 0.95

Calls 2

VerifyTokenMethod · 0.80
ApplyServiceRoutesMethod · 0.65

Tested by

no test coverage detected