refactor: remove dbtx package

This commit is contained in:
2026-06-20 19:14:36 +02:00
committed by Milas Holsting
parent 584754c0ca
commit 6f6d09e24b
3 changed files with 39 additions and 9 deletions

View File

@@ -3,8 +3,8 @@ package playback
import ( import (
"context" "context"
"database/sql" "database/sql"
"errors"
"mal/internal/db" "mal/internal/db"
"mal/internal/dbtx"
"mal/internal/domain" "mal/internal/domain"
) )
@@ -18,9 +18,24 @@ func NewPlaybackRepository(sqlDB *sql.DB, queries *db.Queries) domain.PlaybackRe
} }
func (r *playbackRepository) InTx(ctx context.Context, fn func(ctx context.Context, repo domain.PlaybackRepository) error) error { func (r *playbackRepository) InTx(ctx context.Context, fn func(ctx context.Context, repo domain.PlaybackRepository) error) error {
return dbtx.Run(ctx, r.sqlDB, domain.PlaybackRepository(r), func(tx *sql.Tx) domain.PlaybackRepository { if r.sqlDB == nil {
return &playbackRepository{sqlDB: nil, queries: r.queries.WithTx(tx)} return fn(ctx, r)
}, fn) }
tx, err := r.sqlDB.BeginTx(ctx, nil)
if err != nil {
return err
}
txRepo := &playbackRepository{sqlDB: nil, queries: r.queries.WithTx(tx)}
if err := fn(ctx, txRepo); err != nil {
if rollbackErr := tx.Rollback(); rollbackErr != nil {
return errors.Join(err, rollbackErr)
}
return err
}
return tx.Commit()
} }
func (r *playbackRepository) UpsertAnime(ctx context.Context, params db.UpsertAnimeParams) (db.Anime, error) { func (r *playbackRepository) UpsertAnime(ctx context.Context, params db.UpsertAnimeParams) (db.Anime, error) {

View File

@@ -1,4 +1,4 @@
package dbtx package internal
import ( import (
"context" "context"

View File

@@ -3,8 +3,8 @@ package watchlist
import ( import (
"context" "context"
"database/sql" "database/sql"
"errors"
"mal/internal/db" "mal/internal/db"
"mal/internal/dbtx"
"mal/internal/domain" "mal/internal/domain"
) )
@@ -18,9 +18,24 @@ func NewWatchlistRepository(sqlDB *sql.DB, queries *db.Queries) domain.Watchlist
} }
func (r *watchlistRepository) InTx(ctx context.Context, fn func(ctx context.Context, repo domain.WatchlistRepository) error) error { func (r *watchlistRepository) InTx(ctx context.Context, fn func(ctx context.Context, repo domain.WatchlistRepository) error) error {
return dbtx.Run(ctx, r.sqlDB, domain.WatchlistRepository(r), func(tx *sql.Tx) domain.WatchlistRepository { if r.sqlDB == nil {
return &watchlistRepository{sqlDB: nil, queries: r.queries.WithTx(tx)} return fn(ctx, r)
}, fn) }
tx, err := r.sqlDB.BeginTx(ctx, nil)
if err != nil {
return err
}
txRepo := &watchlistRepository{sqlDB: nil, queries: r.queries.WithTx(tx)}
if err := fn(ctx, txRepo); err != nil {
if rollbackErr := tx.Rollback(); rollbackErr != nil {
return errors.Join(err, rollbackErr)
}
return err
}
return tx.Commit()
} }
func (r *watchlistRepository) UpsertAnime(ctx context.Context, arg db.UpsertAnimeParams) (db.Anime, error) { func (r *watchlistRepository) UpsertAnime(ctx context.Context, arg db.UpsertAnimeParams) (db.Anime, error) {