Add task attachments to export

This commit is contained in:
kolaente 2021-08-27 17:41:24 +02:00
parent 1804e4cca0
commit 95c771a858
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 36 additions and 1 deletions

View File

@ -25,6 +25,7 @@ import (
"code.vikunja.io/api/pkg/user"
"encoding/json"
"fmt"
"io"
"os"
"strconv"
"time"
@ -131,5 +132,39 @@ func exportListsAndTasks(s *xorm.Session, u *user.User, wr *zip.Writer) (err err
}
func exportTaskAttachments(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
return nil
lists, _, _, err := getRawListsForUser(
s,
&listOptions{
user: u,
page: -1,
},
)
if err != nil {
return err
}
tasks, _, _, err := getRawTasksForLists(s, lists, u, &taskOptions{page: -1})
if err != nil {
return err
}
taskIDs := []int64{}
for _, t := range tasks {
taskIDs = append(taskIDs, t.ID)
}
tas, err := getTaskAttachmentsByTaskIDs(s, taskIDs)
if err != nil {
return err
}
files := make(map[int64]io.ReadCloser)
for _, ta := range tas {
if err := ta.File.LoadFileByID(); err != nil {
return err
}
files[ta.FileID] = ta.File.File
}
return dump.WriteFilesToZip(files, wr)
}