@@ -28,45 +28,58 @@ func NewBackupHandler(backupService service.BackupService) *BackupHandler {
2828}
2929
3030func (b * BackupHandler ) GetWorkDirBackup (ctx * gin.Context ) (interface {}, error ) {
31- filename , err := util .ParamString (ctx , "filename" )
31+ filename , err := util .MustGetQueryString (ctx , "filename" )
3232 if err != nil {
3333 return nil , err
3434 }
3535 return b .BackupService .GetBackup (ctx , filepath .Join (config .BackupDir , filename ), service .WholeSite )
3636}
3737
3838func (b * BackupHandler ) GetDataBackup (ctx * gin.Context ) (interface {}, error ) {
39- filename , err := util .ParamString (ctx , "filename" )
39+ filename , err := util .MustGetQueryString (ctx , "filename" )
4040 if err != nil {
4141 return nil , err
4242 }
4343 return b .BackupService .GetBackup (ctx , filepath .Join (config .DataExportDir , filename ), service .JsonData )
4444}
4545
4646func (b * BackupHandler ) GetMarkDownBackup (ctx * gin.Context ) (interface {}, error ) {
47- filename , err := util .ParamString (ctx , "filename" )
47+ filename , err := util .MustGetQueryString (ctx , "filename" )
4848 if err != nil {
4949 return nil , err
5050 }
5151 return b .BackupService .GetBackup (ctx , filepath .Join (config .BackupMarkdownDir , filename ), service .Markdown )
5252}
5353
5454func (b * BackupHandler ) BackupWholeSite (ctx * gin.Context ) (interface {}, error ) {
55- return b .BackupService .BackupWholeSite (ctx )
55+ toBackupItems := make ([]string , 0 )
56+ err := ctx .ShouldBindJSON (& toBackupItems )
57+ if err != nil {
58+ if e , ok := err .(validator.ValidationErrors ); ok {
59+ return nil , xerr .WithStatus (e , xerr .StatusBadRequest ).WithMsg (trans .Translate (e ))
60+ }
61+ return nil , xerr .WithStatus (err , xerr .StatusBadRequest )
62+ }
63+
64+ return b .BackupService .BackupWholeSite (ctx , toBackupItems )
5665}
5766
5867func (b * BackupHandler ) ListBackups (ctx * gin.Context ) (interface {}, error ) {
5968 return b .BackupService .ListFiles (ctx , config .BackupDir , service .WholeSite )
6069}
6170
71+ func (b * BackupHandler ) ListToBackupItems (ctx * gin.Context ) (interface {}, error ) {
72+ return b .BackupService .ListToBackupItems (ctx )
73+ }
74+
6275func (b * BackupHandler ) HandleWorkDir (ctx * gin.Context ) {
6376 path := ctx .Request .URL .Path
6477 if path == "/api/admin/backups/work-dir/fetch" {
6578 wrapHandler (b .GetWorkDirBackup )(ctx )
6679 return
6780 }
68- if path == "/api/admin/backups/work-dir" || path == "/api/admin/backups/work-dir/" {
69- wrapHandler (b .ListBackups )(ctx )
81+ if path == "/api/admin/backups/work-dir/options " || path == "/api/admin/backups/work-dir/options /" {
82+ wrapHandler (b .ListToBackupItems )(ctx )
7083 return
7184 }
7285 b .DownloadBackups (ctx )
@@ -91,7 +104,7 @@ func (b *BackupHandler) DownloadBackups(ctx *gin.Context) {
91104}
92105
93106func (b * BackupHandler ) DeleteBackups (ctx * gin.Context ) (interface {}, error ) {
94- filename , err := util .ParamString (ctx , "filename" )
107+ filename , err := util .MustGetQueryString (ctx , "filename" )
95108 if err != nil {
96109 return nil , err
97110 }
@@ -169,7 +182,7 @@ func (b *BackupHandler) ListMarkdowns(ctx *gin.Context) (interface{}, error) {
169182}
170183
171184func (b * BackupHandler ) DeleteMarkdowns (ctx * gin.Context ) (interface {}, error ) {
172- filename , err := util .ParamString (ctx , "filename" )
185+ filename , err := util .MustGetQueryString (ctx , "filename" )
173186 if err != nil {
174187 return nil , err
175188 }
0 commit comments