// title: remove team from pool // path: /pools/{name}/team // method: DELETE // responses: // 200: Pool updated // 401: Unauthorized // 400: Invalid data // 404: Pool not found func removeTeamToPoolHandler(w http.ResponseWriter, r *http.Request, t auth.Token) (err error) { r.ParseForm() allowed := permission.Check(t, permission.PermPoolUpdateTeamRemove) if !allowed { return permission.ErrUnauthorized } poolName := r.URL.Query().Get(":name") evt, err := event.New(&event.Opts{ Target: event.Target{Type: event.TargetTypePool, Value: poolName}, Kind: permission.PermPoolUpdateTeamRemove, Owner: t, CustomData: event.FormToCustomData(r.Form), Allowed: event.Allowed(permission.PermPoolReadEvents, permission.Context(permission.CtxPool, poolName)), }) if err != nil { return err } defer func() { evt.Done(err) }() if teams, ok := r.URL.Query()["team"]; ok { err := provision.RemoveTeamsFromPool(poolName, teams) if err == provision.ErrPoolNotFound { return &terrors.HTTP{Code: http.StatusNotFound, Message: err.Error()} } return err } return &terrors.HTTP{ Code: http.StatusBadRequest, Message: "You must provide the team", } }
func removeTeamToPoolHandler(w http.ResponseWriter, r *http.Request, t auth.Token) error { b, err := ioutil.ReadAll(r.Body) if err != nil { return err } var params teamsToPoolParams err = json.Unmarshal(b, ¶ms) if err != nil { return err } return provision.RemoveTeamsFromPool(params.Pool, params.Teams) }
func removeTeamToPoolHandler(w http.ResponseWriter, r *http.Request, t auth.Token) error { allowed := permission.Check(t, permission.PermPoolUpdate) if !allowed { return permission.ErrUnauthorized } b, err := ioutil.ReadAll(r.Body) if err != nil { return err } var params teamsToPoolParams err = json.Unmarshal(b, ¶ms) if err != nil { return err } pool := r.URL.Query().Get(":name") return provision.RemoveTeamsFromPool(pool, params.Teams) }