MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / Tasks

Method Tasks

service/admin/task.go:82–189  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

80)
81
82func (s *AdminListService) Tasks(c *gin.Context) (*ListTaskResponse, error) {
83 dep := dependency.FromContext(c)
84 taskClient := dep.TaskClient()
85 hasher := dep.HashIDEncoder()
86 var (
87 err error
88 userID int
89 correlationID *uuid.UUID
90 status []task.Status
91 taskType []string
92 )
93
94 if s.Conditions[taskTypeCondition] != "" {
95 taskType = []string{s.Conditions[taskTypeCondition]}
96 }
97
98 if s.Conditions[taskStatusCondition] != "" {
99 status = []task.Status{task.Status(s.Conditions[taskStatusCondition])}
100 }
101
102 if s.Conditions[taskCorrelationIDCondition] != "" {
103 cid, err := uuid.FromString(s.Conditions[taskCorrelationIDCondition])
104 if err != nil {
105 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid task correlation ID", err)
106 }
107 correlationID = &cid
108 }
109
110 if s.Conditions[taskUserIDCondition] != "" {
111 userID, err = strconv.Atoi(s.Conditions[taskUserIDCondition])
112 if err != nil {
113 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid task user ID", err)
114 }
115 }
116
117 ctx := context.WithValue(c, inventory.LoadTaskUser{}, true)
118 res, err := taskClient.List(ctx, &inventory.ListTaskArgs{
119 PaginationArgs: &inventory.PaginationArgs{
120 Page: s.Page - 1,
121 PageSize: s.PageSize,
122 OrderBy: s.OrderBy,
123 Order: inventory.OrderDirection(s.OrderDirection),
124 },
125 UserID: userID,
126 CorrelationID: correlationID,
127 Types: taskType,
128 Status: status,
129 })
130
131 if err != nil {
132 return nil, serializer.NewError(serializer.CodeDBError, "Failed to list tasks", err)
133 }
134
135 tasks := make([]queue.Task, 0, len(res.Tasks))
136 nodeMap := make(map[int]*ent.Node)
137 for _, t := range res.Tasks {
138 task, err := queue.NewTaskFromModel(t)
139 if err != nil {

Callers 1

AdminListTasksFunction · 0.80

Calls 13

FromContextFunction · 0.92
NewErrorFunction · 0.92
OrderDirectionTypeAlias · 0.92
NewTaskFromModelFunction · 0.92
EncodeUserIDFunction · 0.92
EncodeTaskIDFunction · 0.92
TaskClientMethod · 0.65
HashIDEncoderMethod · 0.65
StatusMethod · 0.65
ListMethod · 0.65
SummarizeMethod · 0.65
GetNodeByIdsMethod · 0.65

Tested by

no test coverage detected