github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/resourceserver/versionserver/disable_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) DisableResourceVersion(pipeline db.Pipeline) http.Handler {
    12  	logger := s.logger.Session("disable-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.DisableVersion(resourceConfigVersionID)
    34  		if err != nil {
    35  			logger.Error("failed-to-disable-resource-version", err)
    36  			w.WriteHeader(http.StatusInternalServerError)
    37  			return
    38  		}
    39  
    40  		w.WriteHeader(http.StatusOK)
    41  	})
    42  }