(c *gin.Context)
| 80 | ) |
| 81 | |
| 82 | func (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 { |
no test coverage detected