github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/resourceserver/versionserver/enable_version.go (about) 1 package versionserver 2 3 import ( 4 "net/http" 5 "strconv" 6 7 "code.cloudfoundry.org/lager" 8 "github.com/pf-qiu/concourse/v6/atc/db" 9 ) 10 11 func (s *Server) EnableResourceVersion(pipeline db.Pipeline) http.Handler { 12 logger := s.logger.Session("enable-resource-version") 13 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 14 resourceName := r.FormValue(":resource_name") 15 resource, found, err := pipeline.Resource(resourceName) 16 if err != nil { 17 logger.Error("failed-to-get-resource", err) 18 w.WriteHeader(http.StatusInternalServerError) 19 return 20 } 21 if !found { 22 logger.Debug("resource-not-found", lager.Data{"resource": resourceName}) 23 w.WriteHeader(http.StatusNotFound) 24 return 25 } 26 27 resourceConfigVersionID, err := strconv.Atoi(r.FormValue(":resource_config_version_id")) 28 if err != nil { 29 w.WriteHeader(http.StatusBadRequest) 30 return 31 } 32 33 err = resource.EnableVersion(resourceConfigVersionID) 34 if err != nil { 35 logger.Error("failed-to-enable-resource-version", err) 36 w.WriteHeader(http.StatusInternalServerError) 37 return 38 } 39 40 w.WriteHeader(http.StatusOK) 41 }) 42 }