add log filters for project group, project and item.
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -29,26 +29,39 @@ func (r *logRepository) Find(ctx context.Context, id string) (*models.Log, error
|
||||
|
||||
func (r *logRepository) List(ctx context.Context, filter models.LogFilter) ([]*models.Log, error) {
|
||||
sq := squirrel.Select("log.*").From("log").PlaceholderFormat(squirrel.Dollar)
|
||||
sq = sq.Where(squirrel.Eq{"user_id": filter.UserID})
|
||||
sq = sq.Where(squirrel.Eq{"log.user_id": filter.UserID})
|
||||
if len(filter.TaskIDs) > 0 {
|
||||
sq = sq.Where(squirrel.Eq{"task_id": filter.TaskIDs})
|
||||
sq = sq.Where(squirrel.Eq{"log.task_id": filter.TaskIDs})
|
||||
}
|
||||
if len(filter.ItemIDs) > 0 {
|
||||
sq = sq.Where(squirrel.Or{
|
||||
squirrel.Eq{"item_id": filter.ItemIDs},
|
||||
squirrel.Eq{"secondary_item_id": filter.ItemIDs},
|
||||
squirrel.Eq{"log.item_id": filter.ItemIDs},
|
||||
squirrel.Eq{"log.secondary_item_id": filter.ItemIDs},
|
||||
})
|
||||
}
|
||||
if filter.MinTime != nil {
|
||||
sq = sq.Where(squirrel.GtOrEq{
|
||||
"logged_time": *filter.MinTime,
|
||||
"log.logged_time": *filter.MinTime,
|
||||
})
|
||||
}
|
||||
if filter.MaxTime != nil {
|
||||
sq = sq.Where(squirrel.LtOrEq{
|
||||
"logged_time": *filter.MaxTime,
|
||||
"log.logged_time": *filter.MaxTime,
|
||||
})
|
||||
}
|
||||
if len(filter.ProjectIDs) > 0 || len(filter.ProjectGroupIDs) > 0 {
|
||||
sq = sq.InnerJoin("task AS t ON t.task_id = log.task_id")
|
||||
sq = sq.InnerJoin("project AS p ON p.project_id = t.project_id")
|
||||
|
||||
if len(filter.ProjectGroupIDs) > 0 {
|
||||
sq = sq.InnerJoin("project_group AS pg ON pg.project_group_id = p.project_group_id")
|
||||
sq = sq.Where(squirrel.Eq{"pg.project_group_id": filter.ProjectGroupIDs})
|
||||
}
|
||||
|
||||
if len(filter.ProjectIDs) > 0 {
|
||||
sq = sq.Where(squirrel.Eq{"p.project_id": filter.ProjectIDs})
|
||||
}
|
||||
}
|
||||
|
||||
sq = sq.OrderBy("logged_time")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user