Updated task assignees to use better pagination
continuous-integration/drone/pr Build is failing Details

This commit is contained in:
kolaente 2019-10-23 17:13:36 +02:00
parent 2ead069260
commit 9203d6ae6a
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 15 additions and 6 deletions

View File

@ -226,18 +226,18 @@ func (t *Task) addNewAssigneeByID(newAssigneeID int64, list *List) (err error) {
// @Success 200 {array} models.User "The assignees"
// @Failure 500 {object} models.Message "Internal error"
// @Router /tasks/{taskID}/assignees [get]
func (la *TaskAssginee) ReadAll(search string, a web.Auth, page int) (interface{}, error) {
func (la *TaskAssginee) ReadAll(a web.Auth, search string, page int, perPage int) (result interface{}, resultCount int, numberOfTotalItems int64, err error) {
task, err := GetListSimplByTaskID(la.TaskID)
if err != nil {
return nil, err
return nil, 0, 0, err
}
can, err := task.CanRead(a)
if err != nil {
return nil, err
return nil, 0, 0, err
}
if !can {
return nil, ErrGenericForbidden{}
return nil, 0, 0, ErrGenericForbidden{}
}
var taskAssignees []*User
@ -245,9 +245,18 @@ func (la *TaskAssginee) ReadAll(search string, a web.Auth, page int) (interface{
Select("users.*").
Join("INNER", "users", "task_assignees.user_id = users.id").
Where("task_id = ? AND users.username LIKE ?", la.TaskID, "%"+search+"%").
Limit(getLimitFromPageIndex(page)).
Limit(getLimitFromPageIndex(page, perPage)).
Find(&taskAssignees)
return taskAssignees, err
if err != nil {
return nil, 0, 0, err
}
numberOfTotalItems, err = x.Table("task_assignees").
Select("users.*").
Join("INNER", "users", "task_assignees.user_id = users.id").
Where("task_id = ? AND users.username LIKE ?", la.TaskID, "%"+search+"%").
Count(&User{})
return taskAssignees, len(taskAssignees), numberOfTotalItems, err
}
// BulkAssignees is a helper struct used to update multiple assignees at once.