// Copyright 2016 The Gogs Authors. All rights reserved. // Copyright 2018 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package repo import ( "net/http" "time" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/cloudbrain" "code.gitea.io/gitea/modules/context" ) // cloudbrain get job task by jobid func GetCloudbrainTask(ctx *context.APIContext) { // swagger:operation GET /repos/{owner}/{repo}/cloudbrain/{jobid} cloudbrain jobTask // --- // summary: Get a single task // produces: // - application/json // parameters: // - name: owner // in: path // description: owner of the repo // type: string // required: true // - name: repo // in: path // description: name of the repo // type: string // required: true // - name: jobid // in: path // description: id of cloudbrain jobid // type: string // required: true // responses: // "200": // "$ref": "#/responses/Label" var ( err error ) jobID := ctx.Params(":jobid") repoID := ctx.Repo.Repository.ID _, err = models.GetRepoCloudBrainByJobID(repoID, jobID) if err != nil { ctx.NotFound(err) return } jobResult, err := cloudbrain.GetJob(jobID) if err != nil { ctx.NotFound(err) return } result, err := models.ConvertToJobResultPayload(jobResult.Payload) if err != nil { ctx.NotFound(err) return } ctx.JSON(http.StatusOK, map[string]interface{}{ "JobID": result.Config.JobID, "JobStatus": result.JobStatus.State, "SubState": result.JobStatus.SubState, "CreatedTime": time.Unix(result.JobStatus.CreatedTime/1000, 0).Format("2006-01-02 15:04:05"), "CompletedTime": time.Unix(result.JobStatus.CompletedTime/1000, 0).Format("2006-01-02 15:04:05"), }) }