func (s *Server) ListJobs(pipelineDB db.PipelineDB) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { var jobs []atc.Job config, _, err := pipelineDB.GetConfig() if err != nil { w.WriteHeader(http.StatusInternalServerError) return } for _, job := range config.Jobs { finished, next, err := pipelineDB.GetJobFinishedAndNextBuild(job.Name) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } dbJob, err := pipelineDB.GetJob(job.Name) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } jobs = append(jobs, present.Job(dbJob, job, config.Groups, finished, next)) } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(jobs) }) }
func (s *Server) GetJob(pipelineDB db.PipelineDB) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { jobName := r.FormValue(":job_name") config, _, err := pipelineDB.GetConfig() if err != nil { w.WriteHeader(http.StatusInternalServerError) return } job, found := config.Jobs.Lookup(jobName) if !found { w.WriteHeader(http.StatusNotFound) return } finished, next, err := pipelineDB.GetJobFinishedAndNextBuild(jobName) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } dbJob, err := pipelineDB.GetJob(job.Name) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(present.Job(dbJob, job, config.Groups, finished, next)) }) }
func (s *Server) ListJobs(pipelineDB db.PipelineDB) http.Handler { logger := s.logger.Session("list-jobs") return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { var jobs []atc.Job dashboard, groups, err := pipelineDB.GetDashboard() if err != nil { logger.Error("failed-to-get-dashboard", err) w.WriteHeader(http.StatusInternalServerError) return } for _, job := range dashboard { jobs = append( jobs, present.Job(job.Job, job.JobConfig, groups, job.FinishedBuild, job.NextBuild), ) } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(jobs) }) }
func (s *Server) GetJob(pipelineDB db.PipelineDB) http.Handler { logger := s.logger.Session("get-job") return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { jobName := r.FormValue(":job_name") config, _, found, err := pipelineDB.GetConfig() if err != nil { logger.Error("could-not-get-pipeline-config", err) w.WriteHeader(http.StatusInternalServerError) return } if !found { w.WriteHeader(http.StatusNotFound) return } job, found := config.Jobs.Lookup(jobName) if !found { w.WriteHeader(http.StatusNotFound) return } finished, next, err := pipelineDB.GetJobFinishedAndNextBuild(jobName) if err != nil { logger.Error("could-not-get-job-finished-and-next-build", err) w.WriteHeader(http.StatusInternalServerError) return } dbJob, err := pipelineDB.GetJob(job.Name) if err != nil { logger.Error("could-not-get-job-finished", err) w.WriteHeader(http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(present.Job(dbJob, job, config.Groups, finished, next)) }) }