Replace all infra services with interfaces

This commit is contained in:
2025-08-13 09:20:45 +03:00
parent 3f31bd5ff2
commit f6b5e835a4
9 changed files with 260 additions and 85 deletions

23
main.go
View File

@@ -13,8 +13,8 @@ import (
"time"
"git.vakhrushev.me/av/transcriber/internal/adapter/ffmpeg"
"git.vakhrushev.me/av/transcriber/internal/adapter/s3"
"git.vakhrushev.me/av/transcriber/internal/adapter/sqlite"
"git.vakhrushev.me/av/transcriber/internal/adapter/yandex"
httpcontroller "git.vakhrushev.me/av/transcriber/internal/controller/http"
"git.vakhrushev.me/av/transcriber/internal/controller/worker"
"git.vakhrushev.me/av/transcriber/internal/service"
@@ -54,28 +54,35 @@ func main() {
log.Fatal("Failed to run migrations:", err)
}
// Создаем репозитории
fileRepo := sqlite.NewFileRepository(db, gq)
jobRepo := sqlite.NewTranscriptJobRepository(db, gq)
// Создаем адаптеры
converter := ffmpeg.NewFfmpegConverter()
// Создаем S3 сервис
s3Config := s3.S3Config{
recognizer, err := yandex.NewYandexAudioRecognizerService(yandex.YandexAudioRecognizerConfig{
Region: os.Getenv("AWS_REGION"),
AccessKey: os.Getenv("AWS_ACCESS_KEY_ID"),
SecretKey: os.Getenv("AWS_SECRET_ACCESS_KEY"),
BucketName: os.Getenv("S3_BUCKET_NAME"),
Endpoint: os.Getenv("S3_ENDPOINT"),
}
s3Service, err := s3.NewYandexS3Service(s3Config)
ApiKey: os.Getenv("YANDEX_CLOUD_API_KEY"),
FolderID: os.Getenv("YANDEX_CLOUD_FOLDER_ID"),
})
if err != nil {
log.Fatalf("failed to create S3 service: %v", err)
log.Fatalf("failed to create audio recognizer: %v", err)
}
defer recognizer.Close()
transcribeService := service.NewTranscribeService(jobRepo, fileRepo, converter, s3Service)
// Создаем сервисы
transcribeService := service.NewTranscribeService(jobRepo, fileRepo, converter, recognizer)
// Создаем воркеры
conversionWorker := worker.NewConversionWorker(transcribeService)
transcribeWorker := worker.NewTranscribeWorker(transcribeService)
checkWorker := worker.NewCheckWorker(transcribeService)