mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Restructure data layer (#2532)
* Add new txn manager interface * Add txn management to sqlite * Rename get to getByID * Add contexts to repository methods * Update query builders * Add context to reader writer interfaces * Use repository in resolver * Tighten interfaces * Tighten interfaces in dlna * Tighten interfaces in match package * Tighten interfaces in scraper package * Tighten interfaces in scan code * Tighten interfaces on autotag package * Remove ReaderWriter usage * Merge database package into sqlite
This commit is contained in:
55
pkg/sqlite/tx.go
Normal file
55
pkg/sqlite/tx.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package sqlite
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
type dbi struct{}
|
||||
|
||||
func (*dbi) Get(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
|
||||
tx, err := getTx(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return tx.Get(dest, query, args...)
|
||||
}
|
||||
|
||||
func (*dbi) Select(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
|
||||
tx, err := getTx(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return tx.Select(dest, query, args...)
|
||||
}
|
||||
|
||||
func (*dbi) Queryx(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error) {
|
||||
tx, err := getTx(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return tx.Queryx(query, args...)
|
||||
}
|
||||
|
||||
func (*dbi) NamedExec(ctx context.Context, query string, arg interface{}) (sql.Result, error) {
|
||||
tx, err := getTx(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return tx.NamedExec(query, arg)
|
||||
}
|
||||
|
||||
func (*dbi) Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
|
||||
tx, err := getTx(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return tx.Exec(query, args...)
|
||||
}
|
||||
Reference in New Issue
Block a user