mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Job queueing (#1379)
This commit is contained in:
52
pkg/api/resolver_query_job.go
Normal file
52
pkg/api/resolver_query_job.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
|
||||
"github.com/stashapp/stash/pkg/job"
|
||||
"github.com/stashapp/stash/pkg/manager"
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
)
|
||||
|
||||
func (r *queryResolver) JobQueue(ctx context.Context) ([]*models.Job, error) {
|
||||
queue := manager.GetInstance().JobManager.GetQueue()
|
||||
|
||||
var ret []*models.Job
|
||||
for _, j := range queue {
|
||||
ret = append(ret, jobToJobModel(j))
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (r *queryResolver) FindJob(ctx context.Context, input models.FindJobInput) (*models.Job, error) {
|
||||
jobID, err := strconv.Atoi(input.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
j := manager.GetInstance().JobManager.GetJob(jobID)
|
||||
if j == nil {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return jobToJobModel(*j), nil
|
||||
}
|
||||
|
||||
func jobToJobModel(j job.Job) *models.Job {
|
||||
ret := &models.Job{
|
||||
ID: strconv.Itoa(j.ID),
|
||||
Status: models.JobStatus(j.Status),
|
||||
Description: j.Description,
|
||||
SubTasks: j.Details,
|
||||
StartTime: j.StartTime,
|
||||
EndTime: j.EndTime,
|
||||
AddTime: j.AddTime,
|
||||
}
|
||||
|
||||
if j.Progress != -1 {
|
||||
ret.Progress = &j.Progress
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
Reference in New Issue
Block a user