Example #1
0
File: job.go Project: rechen/vessel
// POST /jobs/:uuid
func UpdateJob(ctx *Context, form api.CreateJobOptions) {
	if ctx.HasError(form) {
		return
	}

	job := &models.Job{UUID: ctx.Params(":uuid")}
	if err := job.Retrieve(); err != nil {
		if models.IsErrJobNotExist(err) {
			ctx.Handle(404, err)
		} else {
			ctx.Handle(500, "Fail to retrieve job '%s': %v", job.UUID, err)
		}
		return
	}
	if form.Name != nil {
		job.Name = *form.Name
	}
	if form.Content != nil {
		data, err := base64.StdEncoding.DecodeString(job.Content)
		if err != nil {
			ctx.Handle(500, "Fail to decode content '%s': %v", job.UUID, err)
			return
		}
		job.Content = string(data)
	}

	if err := job.Save(); err != nil {
		ctx.Handle(500, "Fail to save job '%s': %v", job.UUID, err)
		return
	}

	ctx.AutoJSON(201, job)
}
Example #2
0
File: job.go Project: rechen/vessel
// GET /jobs/:uuid
func GetJob(ctx *Context) {
	job := &models.Job{UUID: ctx.Params(":uuid")}
	if err := job.Retrieve(); err != nil {
		if models.IsErrJobNotExist(err) {
			ctx.Handle(404, err)
		} else {
			ctx.Handle(500, "Fail to retrieve job '%s': %v", job.UUID, err)
		}
		return
	}

	job.Content = string(base64.StdEncoding.EncodeToString([]byte(job.Content)))

	ctx.AutoJSON(200, job)
}