This commit is contained in:
2026-08-21 00:09:32 +07:00
parent 7656100fe6
commit a2cadf6eca
20 changed files with 320 additions and 94 deletions
+13 -10
View File
@@ -31,10 +31,11 @@ type scenariosRepository interface {
}
type ScenarioService struct {
scenariosRepo scenariosRepository
cleaner cleaner.ICleaner
fileStorage file_storage.IFileStorage
domain string
scenariosRepo scenariosRepository
cleaner cleaner.ICleaner
fileStorage file_storage.IFileStorage
scenarioArchive scenario_archive.IScenarioArchive
domain string
}
func NewScenarioService(
@@ -42,12 +43,14 @@ func NewScenarioService(
cleaner cleaner.ICleaner,
domain string,
fileStorage file_storage.IFileStorage,
scenarioArchive scenario_archive.IScenarioArchive,
) *ScenarioService {
return &ScenarioService{
scenariosRepo: scenariosRepo,
cleaner: cleaner,
fileStorage: fileStorage,
domain: domain,
scenariosRepo: scenariosRepo,
cleaner: cleaner,
fileStorage: fileStorage,
scenarioArchive: scenarioArchive,
domain: domain,
}
}
@@ -294,7 +297,7 @@ func (s *ScenarioService) DownloadArchive(
if err != nil {
return nil, "", err
}
data, err := scenario_archive.Pack(
data, err := s.scenarioArchive.Pack(
ctx,
scenario,
s.domain,
@@ -320,7 +323,7 @@ func (s *ScenarioService) UploadArchive(
data []byte,
authorId int,
) (int, error) {
bundle, err := scenario_archive.Unpack(data)
bundle, err := s.scenarioArchive.Unpack(data)
if err != nil {
return 0, err
}
@@ -226,7 +226,7 @@ func newTestService(repo *fakeScenariosRepo, storage *fakeStorage) *ScenarioServ
if storage == nil {
storage = newFakeStorage()
}
return NewScenarioService(repo, nil, testDomain, storage)
return NewScenarioService(repo, nil, testDomain, storage, scenario_archive.NewScenarioArchive())
}
// seedScenario кладёт в repo сценарий с историей и изображениями в storage.
@@ -455,7 +455,7 @@ func TestDownloadArchive(t *testing.T) {
t.Errorf("name = %q", name)
}
bundle, err := scenario_archive.Unpack(data)
bundle, err := scenario_archive.NewScenarioArchive().Unpack(data)
if err != nil {
t.Fatalf("Unpack: %v", err)
}