diff --git a/pkg/integrations/list_test.go b/pkg/integrations/list_test.go index 9caf5292e..0109218b3 100644 --- a/pkg/integrations/list_test.go +++ b/pkg/integrations/list_test.go @@ -61,7 +61,7 @@ func TestList(t *testing.T) { assert.NotContains(t, rec.Body.String(), `"title":"Test2"`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1,"username":"user1",`) assert.NotContains(t, rec.Body.String(), `"owner":{"id":2,"username":"user2",`) - assert.Contains(t, rec.Body.String(), `"tasks":[{"id":1,"text":"task #1",`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Nonexisting", func(t *testing.T) { _, err := testHandler.testReadOneWithUser(nil, map[string]string{"list": "9999"}) @@ -338,7 +338,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":""`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Normal with description", func(t *testing.T) { rec, err := testHandler.testCreateWithUser(nil, map[string]string{"namespace": "1"}, `{"title":"Lorem","description":"Lorem Ipsum"}`) @@ -346,7 +346,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":"Lorem Ipsum"`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Nonexisting Namespace", func(t *testing.T) { _, err := testHandler.testCreateWithUser(nil, map[string]string{"namespace": "999999"}, `{"title":"Lorem"}`) @@ -388,7 +388,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":""`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Shared Via NamespaceTeam admin", func(t *testing.T) { rec, err := testHandler.testCreateWithUser(nil, map[string]string{"namespace": "9"}, `{"title":"Lorem"}`) @@ -396,7 +396,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":""`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Shared Via NamespaceUser readonly", func(t *testing.T) { @@ -410,7 +410,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":""`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) t.Run("Shared Via NamespaceUser admin", func(t *testing.T) { rec, err := testHandler.testCreateWithUser(nil, map[string]string{"namespace": "12"}, `{"title":"Lorem"}`) @@ -418,7 +418,7 @@ func TestList(t *testing.T) { assert.Contains(t, rec.Body.String(), `"title":"Lorem"`) assert.Contains(t, rec.Body.String(), `"description":""`) assert.Contains(t, rec.Body.String(), `"owner":{"id":1`) - assert.Contains(t, rec.Body.String(), `"tasks":null`) + assert.NotContains(t, rec.Body.String(), `"tasks":`) }) }) }) diff --git a/pkg/models/list.go b/pkg/models/list.go index e09324f0e..5e4b8a1a8 100644 --- a/pkg/models/list.go +++ b/pkg/models/list.go @@ -35,7 +35,8 @@ type List struct { // The user who created this list. Owner *User `xorm:"-" json:"owner" valid:"-"` // An array of tasks which belong to the list. - Tasks []*Task `xorm:"-" json:"tasks"` + // Deprecated: you should use the dedicated task list endpoint because it has support for pagination and filtering + Tasks []*Task `xorm:"-" json:"-"` // A unix timestamp when this list was created. You cannot change this value. Created int64 `xorm:"created not null" json:"created"` @@ -122,12 +123,6 @@ func (l *List) ReadAll(a web.Auth, search string, page int, perPage int) (result // @Failure 500 {object} models.Message "Internal error" // @Router /lists/{id} [get] func (l *List) ReadOne() (err error) { - // Get list tasks - l.Tasks, err = GetTasksByListID(l.ID) - if err != nil { - return err - } - // Get list owner l.Owner, err = GetUserByID(l.OwnerID) return @@ -240,13 +235,6 @@ func AddListDetails(lists []*List) (err error) { ownerIDs = append(ownerIDs, l.OwnerID) } - // Get all tasks - ts := []*Task{} - err = x.In("list_id", listIDs).Find(&ts) - if err != nil { - return - } - // Get all list owners owners := []*User{} err = x.In("id", ownerIDs).Find(&owners) @@ -263,13 +251,6 @@ func AddListDetails(lists []*List) (err error) { break } } - - // Tasks - for _, task := range ts { - if task.ListID == list.ID { - lists[in].Tasks = append(lists[in].Tasks, task) - } - } } return