navidrome/persistence/dbx_builder.go

51 lines
1.1 KiB
Go

package persistence
import (
"github.com/navidrome/navidrome/db"
"github.com/pocketbase/dbx"
)
type dbxBuilder struct {
dbx.Builder
rdb dbx.Builder
}
func NewDBXBuilder(d db.DB) *dbxBuilder {
b := &dbxBuilder{}
b.Builder = dbx.NewFromDB(d.WriteDB(), db.Driver)
b.rdb = dbx.NewFromDB(d.ReadDB(), db.Driver)
return b
}
func (d *dbxBuilder) NewQuery(s string) *dbx.Query {
return d.rdb.NewQuery(s)
}
func (d *dbxBuilder) Select(s ...string) *dbx.SelectQuery {
return d.rdb.Select(s...)
}
func (d *dbxBuilder) GeneratePlaceholder(i int) string {
return d.rdb.GeneratePlaceholder(i)
}
func (d *dbxBuilder) Quote(s string) string {
return d.rdb.Quote(s)
}
func (d *dbxBuilder) QuoteSimpleTableName(s string) string {
return d.rdb.QuoteSimpleTableName(s)
}
func (d *dbxBuilder) QuoteSimpleColumnName(s string) string {
return d.rdb.QuoteSimpleColumnName(s)
}
func (d *dbxBuilder) QueryBuilder() dbx.QueryBuilder {
return d.rdb.QueryBuilder()
}
func (d *dbxBuilder) Transactional(f func(*dbx.Tx) error) (err error) {
return d.Builder.(*dbx.DB).Transactional(f)
}