Files
MyGoNavi/internal/importjob/validation.go
Syngnat 390a249105 feat(data-import): 重构大文件导入与安全任务运行时
- SQL、CSV、JSON 与 XLSX 改为资源受限的流式解析,并支持压缩、编码和方言预检

- 增加遇错停止/继续策略、持久任务、错误行导出、源文件身份与安全取消

- 为数据库驱动补齐上下文事务和写入结果未知语义,避免失败重放与脏会话复用
2026-08-08 20:51:23 +08:00

25 lines
723 B
Go

package importjob
import (
"errors"
"strings"
)
var ErrResumeUnsafe = errors.New("import job cannot be resumed safely")
func ValidateResume(job Job, sourceIdentityToken, targetFingerprint, optionsHash string) error {
if job.Status != StatusInterrupted || !job.Resumable || !job.Checkpoint.Safe || job.OutcomeUnknown {
return ErrResumeUnsafe
}
if strings.TrimSpace(sourceIdentityToken) == "" || sourceIdentityToken != job.SourceIdentityToken {
return ErrResumeUnsafe
}
if strings.TrimSpace(targetFingerprint) == "" || targetFingerprint != job.TargetFingerprint {
return ErrResumeUnsafe
}
if strings.TrimSpace(optionsHash) == "" || optionsHash != job.OptionsHash {
return ErrResumeUnsafe
}
return nil
}