generated from VLADIMIR/template
fix
This commit is contained in:
@@ -91,7 +91,7 @@ func (s *ScenarioService) GetFullScenarioByID(
|
||||
) (*Scenario, error) {
|
||||
scenario, err := s.scenariosRepo.GetScenarioByID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, mapScenarioError(err)
|
||||
}
|
||||
return mapScenario(scenario, s.domain)
|
||||
}
|
||||
@@ -102,7 +102,7 @@ func (s *ScenarioService) GetScenarioByID(
|
||||
) (*Scenario, error) {
|
||||
scenario, err := s.scenariosRepo.GetScenarioByID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, mapScenarioError(err)
|
||||
}
|
||||
return MapScenarioLight(scenario, s.domain), nil
|
||||
}
|
||||
@@ -134,6 +134,12 @@ var ErrScenarioNotOwner = errors.New("Сценарий принадлежит д
|
||||
// ErrScenarioNotFound — сценарий не найден или уже удалён.
|
||||
var ErrScenarioNotFound = errors.New("Сценарий не найден")
|
||||
|
||||
// ErrInvalidArchive — архив не соответствует формату сценария.
|
||||
var ErrInvalidArchive = errors.New("Некорректный архив сценария")
|
||||
|
||||
// ErrInvalidScenarioData — данные истории сценария не проходят валидацию.
|
||||
var ErrInvalidScenarioData = errors.New("Некорректные данные сценария")
|
||||
|
||||
// MaxArchiveSize возвращает максимальный размер загружаемого архива.
|
||||
func MaxArchiveSize() int {
|
||||
return scenario_archive.MaxArchiveSize()
|
||||
@@ -150,10 +156,10 @@ func (s *ScenarioService) getScenarioForChange(
|
||||
) (*repos.Scenario, error) {
|
||||
scenario, err := s.scenariosRepo.GetScenarioByID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, mapScenarioError(err)
|
||||
}
|
||||
if scenario.IsDeleted {
|
||||
return nil, scenarios_repo.ErrScenarioNotFound
|
||||
return nil, ErrScenarioNotFound
|
||||
}
|
||||
if isAdmin {
|
||||
return scenario, nil
|
||||
@@ -164,6 +170,13 @@ func (s *ScenarioService) getScenarioForChange(
|
||||
return scenario, nil
|
||||
}
|
||||
|
||||
func mapScenarioError(err error) error {
|
||||
if errors.Is(err, scenarios_repo.ErrScenarioNotFound) {
|
||||
return ErrScenarioNotFound
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *ScenarioService) UpdateScenarioStatusByID(
|
||||
ctx context.Context,
|
||||
id int,
|
||||
@@ -455,7 +468,7 @@ func (s *ScenarioService) UploadArchive(
|
||||
) (int, error) {
|
||||
bundle, err := s.scenarioArchive.Unpack(data)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
return 0, fmt.Errorf("%w: %v", ErrInvalidArchive, err)
|
||||
}
|
||||
scenario := bundle.Scenario
|
||||
|
||||
@@ -482,7 +495,7 @@ func (s *ScenarioService) UploadArchive(
|
||||
}
|
||||
content, exists := bundle.Files[archiveRef]
|
||||
if !exists {
|
||||
return "", fmt.Errorf("изображение %q не найдено в архиве", archiveRef)
|
||||
return "", fmt.Errorf("%w: изображение %q не найдено в архиве", ErrInvalidArchive, archiveRef)
|
||||
}
|
||||
name, err := file_storage.NewName()
|
||||
if err != nil {
|
||||
@@ -535,7 +548,7 @@ func (s *ScenarioService) UploadArchive(
|
||||
}
|
||||
storyJSON, err := normalizeStory(scenario.Story)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
return 0, fmt.Errorf("%w: %v", ErrInvalidArchive, err)
|
||||
}
|
||||
|
||||
id, err := s.scenariosRepo.AddScenario(ctx, scenario.Name, authorID)
|
||||
@@ -571,7 +584,7 @@ func (s *ScenarioService) updateStory(ctx context.Context, id int, story *storyt
|
||||
}
|
||||
storyString, err := normalizeStory(story)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("%w: %v", ErrInvalidScenarioData, err)
|
||||
}
|
||||
|
||||
return s.scenariosRepo.UpdateStoryByScenarioID(ctx, id, storyString)
|
||||
|
||||
Reference in New Issue
Block a user