From 682123a9c98b55faaab4d0ea559dd791a166049e Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 24 Jan 2023 22:27:49 +0100 Subject: [PATCH] fix(migration): todoist pagination now avoids too many loops --- pkg/modules/migration/create_from_structure.go | 3 +++ pkg/modules/migration/todoist/todoist.go | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/modules/migration/create_from_structure.go b/pkg/modules/migration/create_from_structure.go index 1f33f53a9..59bc51f72 100644 --- a/pkg/modules/migration/create_from_structure.go +++ b/pkg/modules/migration/create_from_structure.go @@ -226,6 +226,9 @@ func insertFromStructure(s *xorm.Session, str []*models.NamespaceWithListsAndTas // If not, create one and save it for later var lb *models.Label var exists bool + if label == nil { + continue + } lb, exists = labels[label.Title+label.HexColor] if !exists { err = label.Create(s, user) diff --git a/pkg/modules/migration/todoist/todoist.go b/pkg/modules/migration/todoist/todoist.go index 9bece40ed..7719a9ef8 100644 --- a/pkg/modules/migration/todoist/todoist.go +++ b/pkg/modules/migration/todoist/todoist.go @@ -35,6 +35,8 @@ import ( "code.vikunja.io/api/pkg/utils" ) +const paginationLimit = 200 + // Migration is the todoist migration struct type Migration struct { Code string `json:"code"` @@ -554,7 +556,7 @@ func (m *Migration) Migrate(u *user.User) (err error) { doneItems := make(map[string]*doneItem) for { - resp, err = migration.DoPostWithHeaders("https://api.todoist.com/sync/v9/completed/get_all?limit=200&offset="+strconv.Itoa(offset), form, bearerHeader) + resp, err = migration.DoPostWithHeaders("https://api.todoist.com/sync/v9/completed/get_all?limit="+strconv.Itoa(paginationLimit)+"&offset="+strconv.Itoa(offset*paginationLimit), form, bearerHeader) if err != nil { return }