github.com/haalcala/mattermost-server-change-repo/v5@v5.33.2/app/job.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package app 5 6 import ( 7 "errors" 8 "net/http" 9 10 "github.com/mattermost/mattermost-server/v5/model" 11 "github.com/mattermost/mattermost-server/v5/store" 12 ) 13 14 func (a *App) GetJob(id string) (*model.Job, *model.AppError) { 15 job, err := a.Srv().Store.Job().Get(id) 16 if err != nil { 17 var nfErr *store.ErrNotFound 18 switch { 19 case errors.As(err, &nfErr): 20 return nil, model.NewAppError("GetJob", "app.job.get.app_error", nil, nfErr.Error(), http.StatusNotFound) 21 default: 22 return nil, model.NewAppError("GetJob", "app.job.get.app_error", nil, err.Error(), http.StatusInternalServerError) 23 } 24 } 25 26 return job, nil 27 } 28 29 func (a *App) GetJobsPage(page int, perPage int) ([]*model.Job, *model.AppError) { 30 return a.GetJobs(page*perPage, perPage) 31 } 32 33 func (a *App) GetJobs(offset int, limit int) ([]*model.Job, *model.AppError) { 34 jobs, err := a.Srv().Store.Job().GetAllPage(offset, limit) 35 if err != nil { 36 return nil, model.NewAppError("GetJobs", "app.job.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) 37 } 38 39 return jobs, nil 40 } 41 42 func (a *App) GetJobsByTypePage(jobType string, page int, perPage int) ([]*model.Job, *model.AppError) { 43 return a.GetJobsByType(jobType, page*perPage, perPage) 44 } 45 46 func (a *App) GetJobsByType(jobType string, offset int, limit int) ([]*model.Job, *model.AppError) { 47 jobs, err := a.Srv().Store.Job().GetAllByTypePage(jobType, offset, limit) 48 if err != nil { 49 return nil, model.NewAppError("GetJobsByType", "app.job.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) 50 } 51 52 return jobs, nil 53 } 54 55 func (a *App) CreateJob(job *model.Job) (*model.Job, *model.AppError) { 56 return a.Srv().Jobs.CreateJob(job.Type, job.Data) 57 } 58 59 func (a *App) CancelJob(jobId string) *model.AppError { 60 return a.Srv().Jobs.RequestCancellation(jobId) 61 }