Refactor project structure
This commit is contained in:
@@ -5,9 +5,9 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/contract"
|
||||
"git.vakhrushev.me/av/transcriber/internal/entity"
|
||||
contracts "git.vakhrushev.me/av/transcriber/internal/repo"
|
||||
"github.com/doug-martin/goqu/v9"
|
||||
goqu "github.com/doug-martin/goqu/v9"
|
||||
)
|
||||
|
||||
type TranscriptJobRepository struct {
|
||||
@@ -162,7 +162,7 @@ func (repo *TranscriptJobRepository) FindAndAcquire(state, acquisitionId string,
|
||||
return nil, fmt.Errorf("failed check affected rows: %w", err)
|
||||
}
|
||||
if rowsAffected == 0 {
|
||||
e := contracts.JobNotFoundError{State: state, Message: "appropriate job not found"}
|
||||
e := contract.JobNotFoundError{State: state, Message: "appropriate job not found"}
|
||||
return nil, &e
|
||||
}
|
||||
if rowsAffected != 1 {
|
@@ -1,4 +1,4 @@
|
||||
package repo
|
||||
package contract
|
||||
|
||||
import (
|
||||
"fmt"
|
@@ -5,19 +5,19 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/repo"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/transcribe"
|
||||
"git.vakhrushev.me/av/transcriber/internal/contract"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
const baseStorageDir = "data/files"
|
||||
|
||||
type TranscribeHandler struct {
|
||||
jobRepo repo.TranscriptJobRepository
|
||||
trsService *transcribe.TranscribeService
|
||||
jobRepo contract.TranscriptJobRepository
|
||||
trsService *service.TranscribeService
|
||||
}
|
||||
|
||||
func NewTranscribeHandler(jobRepo repo.TranscriptJobRepository, trsService *transcribe.TranscribeService) *TranscribeHandler {
|
||||
func NewTranscribeHandler(jobRepo contract.TranscriptJobRepository, trsService *service.TranscribeService) *TranscribeHandler {
|
||||
return &TranscribeHandler{jobRepo: jobRepo, trsService: trsService}
|
||||
}
|
||||
|
||||
|
@@ -15,9 +15,9 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/adapter/sqlite"
|
||||
"git.vakhrushev.me/av/transcriber/internal/entity"
|
||||
"git.vakhrushev.me/av/transcriber/internal/repo/sqlite"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/transcribe"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service"
|
||||
"github.com/doug-martin/goqu/v9"
|
||||
_ "github.com/doug-martin/goqu/v9/dialect/sqlite3"
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -56,7 +56,7 @@ func setupTestRouter(t *testing.T) (*gin.Engine, *TranscribeHandler) {
|
||||
fileRepo := sqlite.NewFileRepository(db, gq)
|
||||
jobRepo := sqlite.NewTranscriptJobRepository(db, gq)
|
||||
|
||||
trsService := transcribe.NewTranscribeService(jobRepo, fileRepo)
|
||||
trsService := service.NewTranscribeService(jobRepo, fileRepo)
|
||||
|
||||
handler := NewTranscribeHandler(jobRepo, trsService)
|
||||
|
||||
|
@@ -5,7 +5,7 @@ import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/transcribe"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service"
|
||||
)
|
||||
|
||||
// Worker представляет базовый интерфейс для всех воркеров
|
||||
@@ -16,10 +16,10 @@ type Worker interface {
|
||||
|
||||
// ConversionWorker обрабатывает задачи конвертации
|
||||
type ConversionWorker struct {
|
||||
transcribeService *transcribe.TranscribeService
|
||||
transcribeService *service.TranscribeService
|
||||
}
|
||||
|
||||
func NewConversionWorker(transcribeService *transcribe.TranscribeService) *ConversionWorker {
|
||||
func NewConversionWorker(transcribeService *service.TranscribeService) *ConversionWorker {
|
||||
return &ConversionWorker{
|
||||
transcribeService: transcribeService,
|
||||
}
|
||||
@@ -57,10 +57,10 @@ func (w *ConversionWorker) Start(ctx context.Context) {
|
||||
|
||||
// TranscribeWorker обрабатывает задачи транскрипции
|
||||
type TranscribeWorker struct {
|
||||
transcribeService *transcribe.TranscribeService
|
||||
transcribeService *service.TranscribeService
|
||||
}
|
||||
|
||||
func NewTranscribeWorker(transcribeService *transcribe.TranscribeService) *TranscribeWorker {
|
||||
func NewTranscribeWorker(transcribeService *service.TranscribeService) *TranscribeWorker {
|
||||
return &TranscribeWorker{
|
||||
transcribeService: transcribeService,
|
||||
}
|
||||
@@ -98,10 +98,10 @@ func (w *TranscribeWorker) Start(ctx context.Context) {
|
||||
|
||||
// CheckWorker обрабатывает задачи проверки статуса распознавания
|
||||
type CheckWorker struct {
|
||||
transcribeService *transcribe.TranscribeService
|
||||
transcribeService *service.TranscribeService
|
||||
}
|
||||
|
||||
func NewCheckWorker(transcribeService *transcribe.TranscribeService) *CheckWorker {
|
||||
func NewCheckWorker(transcribeService *service.TranscribeService) *CheckWorker {
|
||||
return &CheckWorker{
|
||||
transcribeService: transcribeService,
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package transcribe
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/contract"
|
||||
"git.vakhrushev.me/av/transcriber/internal/entity"
|
||||
"git.vakhrushev.me/av/transcriber/internal/repo"
|
||||
"git.vakhrushev.me/av/transcriber/internal/repo/ffmpeg"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/s3"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/speechkit"
|
||||
@@ -19,11 +19,11 @@ import (
|
||||
const baseStorageDir = "data/files"
|
||||
|
||||
type TranscribeService struct {
|
||||
jobRepo repo.TranscriptJobRepository
|
||||
fileRepo repo.FileRepository
|
||||
jobRepo contract.TranscriptJobRepository
|
||||
fileRepo contract.FileRepository
|
||||
}
|
||||
|
||||
func NewTranscribeService(jobRepo repo.TranscriptJobRepository, fileRepo repo.FileRepository) *TranscribeService {
|
||||
func NewTranscribeService(jobRepo contract.TranscriptJobRepository, fileRepo contract.FileRepository) *TranscribeService {
|
||||
return &TranscribeService{jobRepo: jobRepo, fileRepo: fileRepo}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ func (s *TranscribeService) FindAndRunConversionJob() error {
|
||||
|
||||
job, err := s.jobRepo.FindAndAcquire(entity.StateCreated, acquisitionId, rottingTime)
|
||||
if err != nil {
|
||||
if _, ok := err.(*repo.JobNotFoundError); ok {
|
||||
if _, ok := err.(*contract.JobNotFoundError); ok {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
@@ -154,7 +154,7 @@ func (s *TranscribeService) FindAndRunTranscribeJob() error {
|
||||
|
||||
jobRecord, err := s.jobRepo.FindAndAcquire(entity.StateConverted, acquisitionId, rottingTime)
|
||||
if err != nil {
|
||||
if _, ok := err.(*repo.JobNotFoundError); ok {
|
||||
if _, ok := err.(*contract.JobNotFoundError); ok {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
@@ -222,7 +222,7 @@ func (s *TranscribeService) FindAndRunTranscribeCheckJob() error {
|
||||
|
||||
job, err := s.jobRepo.FindAndAcquire(entity.StateTranscribe, acquisitionId, rottingTime)
|
||||
if err != nil {
|
||||
if _, ok := err.(*repo.JobNotFoundError); ok {
|
||||
if _, ok := err.(*contract.JobNotFoundError); ok {
|
||||
return nil
|
||||
}
|
||||
return err
|
6
main.go
6
main.go
@@ -12,10 +12,10 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"git.vakhrushev.me/av/transcriber/internal/adapter/sqlite"
|
||||
httpcontroller "git.vakhrushev.me/av/transcriber/internal/controller/http"
|
||||
"git.vakhrushev.me/av/transcriber/internal/controller/worker"
|
||||
"git.vakhrushev.me/av/transcriber/internal/repo/sqlite"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service/transcribe"
|
||||
"git.vakhrushev.me/av/transcriber/internal/service"
|
||||
"github.com/doug-martin/goqu/v9"
|
||||
_ "github.com/doug-martin/goqu/v9/dialect/sqlite3"
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -55,7 +55,7 @@ func main() {
|
||||
fileRepo := sqlite.NewFileRepository(db, gq)
|
||||
jobRepo := sqlite.NewTranscriptJobRepository(db, gq)
|
||||
|
||||
transcribeService := transcribe.NewTranscribeService(jobRepo, fileRepo)
|
||||
transcribeService := service.NewTranscribeService(jobRepo, fileRepo)
|
||||
|
||||
// Создаем воркеры
|
||||
conversionWorker := worker.NewConversionWorker(transcribeService)
|
||||
|
Reference in New Issue
Block a user