Dependency inversion for s3 service

This commit is contained in:
2025-08-12 15:05:46 +03:00
parent 03106830e5
commit 3f31bd5ff2
7 changed files with 138 additions and 100 deletions

View File

@@ -8,10 +8,9 @@ import (
"path/filepath"
"time"
"git.vakhrushev.me/av/transcriber/internal/adapter/speechkit"
"git.vakhrushev.me/av/transcriber/internal/contract"
"git.vakhrushev.me/av/transcriber/internal/entity"
"git.vakhrushev.me/av/transcriber/internal/service/s3"
"git.vakhrushev.me/av/transcriber/internal/service/speechkit"
"github.com/google/uuid"
)
@@ -21,13 +20,20 @@ type TranscribeService struct {
jobRepo contract.TranscriptJobRepository
fileRepo contract.FileRepository
converter contract.AudioFileConverter
s3Service contract.YandexS3Uploader
}
func NewTranscribeService(jobRepo contract.TranscriptJobRepository, fileRepo contract.FileRepository, converter contract.AudioFileConverter) *TranscribeService {
func NewTranscribeService(
jobRepo contract.TranscriptJobRepository,
fileRepo contract.FileRepository,
converter contract.AudioFileConverter,
s3Service contract.YandexS3Uploader,
) *TranscribeService {
return &TranscribeService{
jobRepo: jobRepo,
fileRepo: fileRepo,
converter: converter,
s3Service: s3Service,
}
}
@@ -173,14 +179,8 @@ func (s *TranscribeService) FindAndRunTranscribeJob() error {
destFileId := uuid.NewString()
destFileRecord := fileRecord.CopyWithStorage(destFileId, entity.StorageS3)
// Создаем S3 сервис
s3Service, err := s3.NewS3Service()
if err != nil {
return err
}
// Загружаем файл на S3
err = s3Service.UploadFile(filePath, destFileRecord.FileName)
err = s.s3Service.UploadFile(filePath, destFileRecord.FileName)
if err != nil {
return err
}
@@ -192,7 +192,7 @@ func (s *TranscribeService) FindAndRunTranscribeJob() error {
}
// Формируем S3 URI для файла
s3URI := s3Service.FileUrl(destFileRecord.FileName)
s3URI := s.s3Service.FileUrl(destFileRecord.FileName)
// Запускаем асинхронное распознавание
operationID, err := speechKitService.RecognizeFileFromS3(s3URI)