mirror of
https://git.sr.ht/~phw/scotty
synced 2025-06-05 04:58:33 +02:00
Pass context to import backends
This commit is contained in:
parent
26d9f5e840
commit
4a66e3d432
8 changed files with 71 additions and 42 deletions
|
@ -27,7 +27,7 @@ import (
|
|||
type ImportProcessor[T models.ListensResult | models.LovesResult] interface {
|
||||
ImportBackend() models.ImportBackend
|
||||
Process(ctx context.Context, wg *sync.WaitGroup, results chan T, out chan models.ImportResult, progress chan models.TransferProgress)
|
||||
Import(export T, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error)
|
||||
Import(ctx context.Context, export T, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error)
|
||||
}
|
||||
|
||||
type ListensImportProcessor struct {
|
||||
|
@ -42,7 +42,7 @@ func (p ListensImportProcessor) Process(ctx context.Context, wg *sync.WaitGroup,
|
|||
process(ctx, wg, p, results, out, progress)
|
||||
}
|
||||
|
||||
func (p ListensImportProcessor) Import(export models.ListensResult, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
func (p ListensImportProcessor) Import(ctx context.Context, export models.ListensResult, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
if export.Error != nil {
|
||||
return result, export.Error
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ func (p ListensImportProcessor) Import(export models.ListensResult, result model
|
|||
} else {
|
||||
result.TotalCount += len(export.Items)
|
||||
}
|
||||
importResult, err := p.Backend.ImportListens(export, result, progress)
|
||||
importResult, err := p.Backend.ImportListens(ctx, export, result, progress)
|
||||
if err != nil {
|
||||
return importResult, err
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ func (p LovesImportProcessor) Process(ctx context.Context, wg *sync.WaitGroup, r
|
|||
process(ctx, wg, p, results, out, progress)
|
||||
}
|
||||
|
||||
func (p LovesImportProcessor) Import(export models.LovesResult, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
func (p LovesImportProcessor) Import(ctx context.Context, export models.LovesResult, result models.ImportResult, out chan models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
if export.Error != nil {
|
||||
return result, export.Error
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ func (p LovesImportProcessor) Import(export models.LovesResult, result models.Im
|
|||
} else {
|
||||
result.TotalCount += len(export.Items)
|
||||
}
|
||||
importResult, err := p.Backend.ImportLoves(export, result, progress)
|
||||
importResult, err := p.Backend.ImportLoves(ctx, export, result, progress)
|
||||
if err != nil {
|
||||
return importResult, err
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ func process[R models.LovesResult | models.ListensResult, P ImportProcessor[R]](
|
|||
out <- handleError(result, ctx.Err(), progress)
|
||||
return
|
||||
default:
|
||||
importResult, err := processor.Import(exportResult, result, out, progress)
|
||||
importResult, err := processor.Import(ctx, exportResult, result, out, progress)
|
||||
result.Update(importResult)
|
||||
if err != nil {
|
||||
processor.ImportBackend().FinishImport()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue