github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/jobserver/list_all.go (about)

     1  package jobserver
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  
     7  	"github.com/pf-qiu/concourse/v6/atc"
     8  	"github.com/pf-qiu/concourse/v6/atc/api/accessor"
     9  )
    10  
    11  func (s *Server) ListAllJobs(w http.ResponseWriter, r *http.Request) {
    12  	logger := s.logger.Session("list-all-jobs")
    13  
    14  	acc := accessor.GetAccessor(r)
    15  
    16  	var jobs []atc.JobSummary
    17  	var err error
    18  	if acc.IsAdmin() {
    19  		jobs, err = s.jobFactory.AllActiveJobs()
    20  	} else {
    21  		jobs, err = s.jobFactory.VisibleJobs(acc.TeamNames())
    22  	}
    23  
    24  	if err != nil {
    25  		logger.Error("failed-to-get-all-visible-jobs", err)
    26  		w.WriteHeader(http.StatusInternalServerError)
    27  		return
    28  	}
    29  
    30  	if jobs == nil {
    31  		jobs = []atc.JobSummary{}
    32  	}
    33  
    34  	w.Header().Set("Content-Type", "application/json")
    35  	err = json.NewEncoder(w).Encode(jobs)
    36  	if err != nil {
    37  		logger.Error("failed-to-encode-jobs", err)
    38  		w.WriteHeader(http.StatusInternalServerError)
    39  	}
    40  }