diff --git a/pkg/models/tasks.go b/pkg/models/tasks.go index 130b8f2b52..2a66ccbb2c 100644 --- a/pkg/models/tasks.go +++ b/pkg/models/tasks.go @@ -1612,7 +1612,7 @@ func (t *Task) Delete(s *xorm.Session, a web.Auth) (err error) { // @Router /tasks/{ID} [get] func (t *Task) ReadOne(s *xorm.Session, a web.Auth) (err error) { - *t, err = GetTaskSimple(s, t) + *t, err = GetTaskByIDSimple(s, t.ID) if err != nil { return } diff --git a/pkg/routes/caldav/listStorageProvider.go b/pkg/routes/caldav/listStorageProvider.go index e2c5d3c8b7..9302ebf189 100644 --- a/pkg/routes/caldav/listStorageProvider.go +++ b/pkg/routes/caldav/listStorageProvider.go @@ -210,7 +210,7 @@ func (vcls *VikunjaCaldavListStorage) GetResource(rpath string) (*data.Resource, // save and override the updated unix date to not break any later etag checks updated := vcls.task.Updated - err := vcls.task.ReadOne(s, vcls.user) + tasks, err := models.GetTasksByUIDs(s, []string{vcls.task.UID}, vcls.user) if err != nil { _ = s.Rollback() if models.IsErrTaskDoesNotExist(err) { @@ -222,6 +222,11 @@ func (vcls *VikunjaCaldavListStorage) GetResource(rpath string) (*data.Resource, return nil, false, err } + if len(tasks) < 1 { + return nil, false, errs.ResourceNotFoundError + } + vcls.task = tasks[0] + if updated.Unix() > 0 { vcls.task.Updated = updated }