Inject DB into DataStore, instead of hardcode the dependency
This commit is contained in:
@@ -2,6 +2,7 @@ package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"reflect"
|
||||
|
||||
"github.com/astaxie/beego/orm"
|
||||
@@ -12,10 +13,11 @@ import (
|
||||
|
||||
type SQLStore struct {
|
||||
orm orm.Ormer
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func New() model.DataStore {
|
||||
return &SQLStore{}
|
||||
func New(db *sql.DB) model.DataStore {
|
||||
return &SQLStore{db: db}
|
||||
}
|
||||
|
||||
func (s *SQLStore) Album(ctx context.Context) model.AlbumRepository {
|
||||
@@ -100,7 +102,7 @@ func (s *SQLStore) Resource(ctx context.Context, m interface{}) model.ResourceRe
|
||||
}
|
||||
|
||||
func (s *SQLStore) WithTx(block func(tx model.DataStore) error) error {
|
||||
o, err := orm.NewOrmWithDB(db.Driver, "default", db.Db())
|
||||
o, err := orm.NewOrmWithDB(db.Driver, "default", s.db)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -177,7 +179,7 @@ func (s *SQLStore) GC(ctx context.Context, rootFolder string) error {
|
||||
|
||||
func (s *SQLStore) getOrmer() orm.Ormer {
|
||||
if s.orm == nil {
|
||||
o, err := orm.NewOrmWithDB(db.Driver, "default", db.Db())
|
||||
o, err := orm.NewOrmWithDB(db.Driver, "default", s.db)
|
||||
if err != nil {
|
||||
log.Error("Error obtaining new orm instance", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user