1
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-04-18 00:47:48 -04:00
gitea/models/bots/task_list.go
2022-11-25 17:48:43 +08:00

38 lines
970 B
Go

// Copyright 2022 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package bots
import (
"code.gitea.io/gitea/models/db"
user_model "code.gitea.io/gitea/models/user"
)
type TaskList []*Task
// GetUserIDs returns a slice of user's id
func (tasks TaskList) GetUserIDs() []int64 {
userIDsMap := make(map[int64]struct{})
for _, task := range tasks {
userIDsMap[task.TriggerUserID] = struct{}{}
}
userIDs := make([]int64, 0, len(userIDsMap))
for userID := range userIDsMap {
userIDs = append(userIDs, userID)
}
return userIDs
}
func (tasks TaskList) LoadTriggerUser() error {
userIDs := tasks.GetUserIDs()
users := make(map[int64]*user_model.User, len(userIDs))
if err := db.GetEngine(db.DefaultContext).In("id", userIDs).Find(&users); err != nil {
return err
}
for _, task := range tasks {
task.TriggerUser = users[task.TriggerUserID]
}
return nil
}