diff --git a/backend/server/api/task/task.go b/backend/server/api/task/task.go index cd5a02f377b..f43e574a102 100644 --- a/backend/server/api/task/task.go +++ b/backend/server/api/task/task.go @@ -18,12 +18,13 @@ limitations under the License. package task import ( + "net/http" + "strconv" + "github.com/apache/incubator-devlake/core/errors" "github.com/apache/incubator-devlake/core/models" "github.com/apache/incubator-devlake/server/api/shared" "github.com/apache/incubator-devlake/server/services" - "net/http" - "strconv" "github.com/gin-gonic/gin" ) @@ -63,7 +64,7 @@ func GetTaskByPipeline(c *gin.Context) { shared.ApiOutputError(c, errors.BadInput.Wrap(err, "invalid pipeline ID format")) return } - tasks, err := services.GetTasksWithLastStatus(pipelineId, true) + tasks, err := services.GetTasksWithLastStatus(pipelineId, true, nil) if err != nil { shared.ApiOutputError(c, errors.Default.Wrap(err, "error getting tasks")) return diff --git a/backend/server/services/pipeline.go b/backend/server/services/pipeline.go index 70e0e504aa9..1783c942138 100644 --- a/backend/server/services/pipeline.go +++ b/backend/server/services/pipeline.go @@ -445,7 +445,7 @@ func RerunPipeline(pipelineId uint64, task *models.Task) (tasks []*models.Task, } failedTasks = append(failedTasks, task) } else { - tasks, err := GetTasksWithLastStatus(pipelineId, false) + tasks, err := GetTasksWithLastStatus(pipelineId, false, tx) if err != nil { return nil, errors.Default.Wrap(err, "error getting tasks") } diff --git a/backend/server/services/task.go b/backend/server/services/task.go index 9c4922e17be..885014fa37a 100644 --- a/backend/server/services/task.go +++ b/backend/server/services/task.go @@ -110,9 +110,12 @@ func GetTasks(query *TaskQuery) ([]*models.Task, int64, errors.Error) { // GetTasksWithLastStatus returns task list of the pipeline, only the most recently tasks would be returned // TODO: adopts GetLatestTasksOfPipeline -func GetTasksWithLastStatus(pipelineId uint64, shouldSanitize bool) ([]*models.Task, errors.Error) { +func GetTasksWithLastStatus(pipelineId uint64, shouldSanitize bool, tx dal.Dal) ([]*models.Task, errors.Error) { + if tx == nil { + tx = db + } var tasks []*models.Task - err := db.All(&tasks, dal.Where("pipeline_id = ?", pipelineId), dal.Orderby("id DESC")) + err := tx.All(&tasks, dal.Where("pipeline_id = ?", pipelineId), dal.Orderby("id DESC")) if err != nil { return nil, err }