fix(export): don't crash when an exported file does not exist
Related to https://github.com/go-vikunja/vikunja/issues/110
This commit is contained in:
parent
25a03d1789
commit
7edb53ca12
@ -19,8 +19,10 @@ package models
|
|||||||
import (
|
import (
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"io/fs"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
@ -219,15 +221,20 @@ func exportTaskAttachments(s *xorm.Session, wr *zip.Writer, taskIDs []int64) (er
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fs := make(map[int64]io.ReadCloser)
|
attachmentFiles := make(map[int64]io.ReadCloser)
|
||||||
for _, ta := range tas {
|
for _, ta := range tas {
|
||||||
if err := ta.File.LoadFileByID(); err != nil {
|
err = ta.File.LoadFileByID()
|
||||||
|
if err != nil {
|
||||||
|
var pathError *fs.PathError
|
||||||
|
if errors.As(err, &pathError) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fs[ta.FileID] = ta.File.File
|
attachmentFiles[ta.FileID] = ta.File.File
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.WriteFilesToZip(fs, wr)
|
return utils.WriteFilesToZip(attachmentFiles, wr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
|
func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
|
||||||
@ -256,7 +263,7 @@ func exportProjectBackgrounds(s *xorm.Session, u *user.User, wr *zip.Writer) (er
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fs := make(map[int64]io.ReadCloser)
|
backgroundFiles := make(map[int64]io.ReadCloser)
|
||||||
for _, l := range projects {
|
for _, l := range projects {
|
||||||
if l.BackgroundFileID == 0 {
|
if l.BackgroundFileID == 0 {
|
||||||
continue
|
continue
|
||||||
@ -267,13 +274,17 @@ func exportProjectBackgrounds(s *xorm.Session, u *user.User, wr *zip.Writer) (er
|
|||||||
}
|
}
|
||||||
err = bgFile.LoadFileByID()
|
err = bgFile.LoadFileByID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
var pathError *fs.PathError
|
||||||
|
if errors.As(err, &pathError) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fs[l.BackgroundFileID] = bgFile.File
|
backgroundFiles[l.BackgroundFileID] = bgFile.File
|
||||||
}
|
}
|
||||||
|
|
||||||
return utils.WriteFilesToZip(fs, wr)
|
return utils.WriteFilesToZip(backgroundFiles, wr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterOldExportCleanupCron() {
|
func RegisterOldExportCleanupCron() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user