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  }