feat: upload audio, get a private Swedish transcript, discuss it (#33, ADR-033) #39
@@ -23,6 +23,8 @@ type wStore struct {
|
|||||||
completed map[string]domain.Transcription
|
completed map[string]domain.Transcription
|
||||||
failed map[string]domain.UploadErrorKind
|
failed map[string]domain.UploadErrorKind
|
||||||
startErr error
|
startErr error
|
||||||
|
saves [][]domain.ProgressStep
|
||||||
|
beats int
|
||||||
}
|
}
|
||||||
|
|
||||||
func newWStore() *wStore {
|
func newWStore() *wStore {
|
||||||
@@ -50,6 +52,35 @@ func (s *wStore) FailUpload(_ context.Context, _, id string, k domain.UploadErro
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *wStore) SaveProgress(_ context.Context, _, _ string, steps []domain.ProgressStep, _ time.Time) error {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
|
s.saves = append(s.saves, append([]domain.ProgressStep(nil), steps...))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *wStore) Heartbeat(context.Context, string, string) error {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
|
s.beats++
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *wStore) lastSteps() []domain.ProgressStep {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
|
if len(s.saves) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return s.saves[len(s.saves)-1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *wStore) beatCount() int {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
|
return s.beats
|
||||||
|
}
|
||||||
|
|
||||||
func (s *wStore) snapshot() (map[string]domain.Transcription, map[string]domain.UploadErrorKind) {
|
func (s *wStore) snapshot() (map[string]domain.Transcription, map[string]domain.UploadErrorKind) {
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
defer s.mu.Unlock()
|
defer s.mu.Unlock()
|
||||||
|
|||||||
Reference in New Issue
Block a user