package service import ( "context" "mime/multipart" "github.com/go-sonic/sonic/model/dto" ) type BackupService interface { // GetBackup Get backup data by backup file name. GetBackup(ctx context.Context, filename string, backupType BackupType) (*dto.BackupDTO, error) // BackupWholeSite Zips work directory BackupWholeSite(ctx context.Context, toBackupItems []string) (*dto.BackupDTO, error) // ListFiles list all files under path ListFiles(ctx context.Context, path string, backupType BackupType) ([]*dto.BackupDTO, error) // GetBackupFilePath get filepath and check if the file exist GetBackupFilePath(ctx context.Context, path string, filename string) (string, error) // DeleteFile delete file DeleteFile(ctx context.Context, path string, filename string) error // ExportData export database data to json file ExportData(ctx context.Context) (*dto.BackupDTO, error) // ImportMarkdown import markdown file as post ImportMarkdown(ctx context.Context, fileHeader *multipart.FileHeader) error // ExportMarkdown export posts to markdown files ExportMarkdown(ctx context.Context, needFrontMatter bool) (*dto.BackupDTO, error) ListToBackupItems(ctx context.Context) ([]string, error) } type BackupType string const ( WholeSite BackupType = "/api/admin/backups/work-dir" JSONData BackupType = "/api/admin/backups/data" Markdown BackupType = "/api/admin/backups/markdown/export" )