diff --git a/internal/http/request/backup.go b/internal/http/request/backup.go index 30df5f8f..daf3ce53 100644 --- a/internal/http/request/backup.go +++ b/internal/http/request/backup.go @@ -4,6 +4,7 @@ import "mime/multipart" type BackupList struct { Type string `uri:"type" form:"type" validate:"required|in:path,website,mysql,postgres,redis,panel"` + Paginate } type BackupCreate struct { diff --git a/internal/migration/v1.go b/internal/migration/v1.go index 682cc12b..e76b4d9f 100644 --- a/internal/migration/v1.go +++ b/internal/migration/v1.go @@ -59,4 +59,19 @@ func init() { return tx.Migrator().DropTable(&biz.Project{}) }, }) + Migrations = append(Migrations, &gormigrate.Migration{ + ID: "20260120-add-backup", + Migrate: func(tx *gorm.DB) error { + return tx.AutoMigrate( + &biz.Backup{}, + &biz.BackupAccount{}, + ) + }, + Rollback: func(tx *gorm.DB) error { + return tx.Migrator().DropTable( + &biz.Backup{}, + &biz.BackupAccount{}, + ) + }, + }) } diff --git a/internal/service/backup.go b/internal/service/backup.go index 3cc2194a..27e8dcbd 100644 --- a/internal/service/backup.go +++ b/internal/service/backup.go @@ -34,12 +34,15 @@ func (s *BackupService) List(w http.ResponseWriter, r *http.Request) { return } - list, _ := s.backupRepo.List(biz.BackupType(req.Type)) - paged, total := Paginate(r, list) + list, total, err := s.backupRepo.List(req.Page, req.Limit, biz.BackupType(req.Type)) + if err != nil { + Error(w, http.StatusInternalServerError, "%v", err) + return + } Success(w, chix.M{ "total": total, - "items": paged, + "items": list, }) }