Add exporting list background files

This commit is contained in:
kolaente 2021-08-29 19:31:53 +02:00
parent c74cdcbdc9
commit 1838e48e72
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 40 additions and 3 deletions

View File

@ -21,6 +21,7 @@ import (
"archive/zip"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/db"
"code.vikunja.io/api/pkg/files"
"code.vikunja.io/api/pkg/modules/dump"
"code.vikunja.io/api/pkg/user"
"encoding/json"
@ -68,6 +69,10 @@ func ExportUserData(u *user.User) (err error) {
return err
}
// Background files
err = exportListBackgrounds(s, u, dumpWriter)
if err != nil {
return err
}
// Pack it in a zip file and save it
@ -170,15 +175,15 @@ func exportTaskAttachments(s *xorm.Session, u *user.User, wr *zip.Writer) (err e
return err
}
files := make(map[int64]io.ReadCloser)
fs := make(map[int64]io.ReadCloser)
for _, ta := range tas {
if err := ta.File.LoadFileByID(); err != nil {
return err
}
files[ta.FileID] = ta.File.File
fs[ta.FileID] = ta.File.File
}
return dump.WriteFilesToZip(files, wr)
return dump.WriteFilesToZip(fs, wr)
}
func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
@ -194,3 +199,35 @@ func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err erro
return dump.WriteBytesToZip("filters.json", data, wr)
}
func exportListBackgrounds(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
lists, _, _, err := getRawListsForUser(
s,
&listOptions{
user: u,
page: -1,
},
)
if err != nil {
return err
}
fs := make(map[int64]io.ReadCloser)
for _, l := range lists {
if l.BackgroundFileID == 0 {
continue
}
bgFile := &files.File{
ID: l.BackgroundFileID,
}
err = bgFile.LoadFileByID()
if err != nil {
return
}
fs[l.BackgroundFileID] = bgFile.File
}
return dump.WriteFilesToZip(fs, wr)
}