github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/pipelineserver/rename.go (about) 1 package pipelineserver 2 3 import ( 4 "encoding/json" 5 "io/ioutil" 6 "net/http" 7 8 "github.com/pf-qiu/concourse/v6/atc" 9 "github.com/pf-qiu/concourse/v6/atc/db" 10 ) 11 12 func (s *Server) RenamePipeline(pipeline db.Pipeline) http.Handler { 13 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 14 logger := s.logger.Session("rename-pipeline") 15 16 data, err := ioutil.ReadAll(r.Body) 17 if err != nil { 18 logger.Error("failed-to-read-body", err) 19 w.WriteHeader(http.StatusInternalServerError) 20 return 21 } 22 23 var rename atc.RenameRequest 24 err = json.Unmarshal(data, &rename) 25 if err != nil { 26 logger.Error("failed-to-unmarshal-body", err) 27 w.WriteHeader(http.StatusInternalServerError) 28 return 29 } 30 31 var warnings []atc.ConfigWarning 32 warning := atc.ValidateIdentifier(rename.NewName, "pipeline") 33 if warning != nil { 34 warnings = append(warnings, *warning) 35 } 36 37 err = pipeline.Rename(rename.NewName) 38 if err != nil { 39 logger.Error("failed-to-update-name", err) 40 w.WriteHeader(http.StatusInternalServerError) 41 return 42 } 43 44 w.Header().Set("Content-Type", "application/json") 45 err = json.NewEncoder(w).Encode(atc.SaveConfigResponse{Warnings: warnings}) 46 if err != nil { 47 s.logger.Error("failed-to-encode-response", err) 48 w.WriteHeader(http.StatusInternalServerError) 49 } 50 }) 51 }