mirror of
				https://github.com/ClusterCockpit/cc-backend
				synced 2025-11-04 09:35:07 +01:00 
			
		
		
		
	Add metadata to REST-API
This commit is contained in:
		@@ -38,6 +38,9 @@ paths:
 | 
			
		||||
        - name: items-per-page
 | 
			
		||||
          in: query
 | 
			
		||||
          schema: { type: integer }
 | 
			
		||||
        - name: with-metadata
 | 
			
		||||
          in: query
 | 
			
		||||
          schema: { type: boolean }
 | 
			
		||||
      responses:
 | 
			
		||||
        200:
 | 
			
		||||
          description: 'Array of jobs'
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								api/rest.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								api/rest.go
									
									
									
									
									
								
							@@ -108,6 +108,7 @@ type TagJobApiRequest []*struct {
 | 
			
		||||
 | 
			
		||||
// Return a list of jobs
 | 
			
		||||
func (api *RestApi) getJobs(rw http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	withMetadata := false
 | 
			
		||||
	filter := &model.JobFilter{}
 | 
			
		||||
	page := &model.PageRequest{ItemsPerPage: -1, Page: 1}
 | 
			
		||||
	order := &model.OrderByInput{Field: "startTime", Order: model.SortDirectionEnumDesc}
 | 
			
		||||
@@ -156,6 +157,8 @@ func (api *RestApi) getJobs(rw http.ResponseWriter, r *http.Request) {
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			page.ItemsPerPage = x
 | 
			
		||||
		case "with-metadata":
 | 
			
		||||
			withMetadata = true
 | 
			
		||||
		default:
 | 
			
		||||
			http.Error(rw, "invalid query parameter: "+key, http.StatusBadRequest)
 | 
			
		||||
			return
 | 
			
		||||
@@ -170,6 +173,13 @@ func (api *RestApi) getJobs(rw http.ResponseWriter, r *http.Request) {
 | 
			
		||||
 | 
			
		||||
	results := make([]*schema.JobMeta, 0, len(jobs))
 | 
			
		||||
	for _, job := range jobs {
 | 
			
		||||
		if withMetadata {
 | 
			
		||||
			if _, err := api.JobRepository.FetchMetadata(job); err != nil {
 | 
			
		||||
				http.Error(rw, err.Error(), http.StatusInternalServerError)
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		res := &schema.JobMeta{
 | 
			
		||||
			ID:        &job.ID,
 | 
			
		||||
			BaseJob:   job.BaseJob,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user