From 394970e4006f72f71c3e11ad59a7eb3d18e3b1e7 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Tue, 12 Aug 2025 11:09:51 +0300 Subject: [PATCH] Add job helpers --- internal/entity/job.go | 11 +++++++++++ internal/service/transcribe/transcribe.go | 9 +++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/internal/entity/job.go b/internal/entity/job.go index ada1e99..ef7de4a 100644 --- a/internal/entity/job.go +++ b/internal/entity/job.go @@ -40,3 +40,14 @@ func (j *TranscribeJob) MoveToStateAndDelay(state string, delay *time.Time) { j.DelayTime = delay j.UpdatedAt = time.Now() } + +func (j *TranscribeJob) Done(transcriptionText string) { + j.MoveToState(StateDone) + j.TranscriptionText = &transcriptionText +} + +func (j *TranscribeJob) Fail(errText string) { + j.MoveToState(StateFailed) + j.IsError = true + j.ErrorText = &errText +} diff --git a/internal/service/transcribe/transcribe.go b/internal/service/transcribe/transcribe.go index 9ce09b0..f6553f4 100644 --- a/internal/service/transcribe/transcribe.go +++ b/internal/service/transcribe/transcribe.go @@ -28,7 +28,7 @@ func NewTranscribeService(jobRepo repo.TranscriptJobRepository, fileRepo repo.Fi func (s *TranscribeService) CreateTranscribeJob(file io.Reader, fileName string) (*entity.TranscribeJob, error) { // Генерируем UUID для файла - fileId := uuid.New().String() + fileId := uuid.NewString() // Определяем расширение файла ext := filepath.Ext(fileName) @@ -247,10 +247,8 @@ func (s *TranscribeService) FindAndRunTranscribeCheckJob() error { } if opErr := operation.GetError(); opErr != nil { - job.IsError = true errorText := fmt.Sprintf("Operation failed: code %d, message: %s", opErr.Code, opErr.Message) - job.ErrorText = &errorText - job.MoveToState(entity.StateFailed) + job.Fail(errorText) err := s.jobRepo.Save(job) if err != nil { return err @@ -265,8 +263,7 @@ func (s *TranscribeService) FindAndRunTranscribeCheckJob() error { } // Обновляем задачу с результатом - job.TranscriptionText = &transcriptionText - job.MoveToState(entity.StateDone) + job.Done(transcriptionText) err = s.jobRepo.Save(job) if err != nil {