github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/abstract/ownable/ownable.go (about) 1 package ownable 2 3 import ( 4 "github.com/jmoiron/sqlx" 5 "github.com/k0marov/go-socnet/core/abstract/ownable/service" 6 "github.com/k0marov/go-socnet/core/abstract/ownable/store/sql_db" 7 "github.com/k0marov/go-socnet/core/abstract/table_name" 8 "github.com/k0marov/go-socnet/core/general/core_err" 9 ) 10 11 type ( 12 OwnerGetter = service.OwnerGetter 13 ) 14 15 type ownable struct { 16 GetOwner OwnerGetter 17 } 18 19 func NewOwnable(db *sqlx.DB, tableName table_name.TableName) (ownable, error) { 20 // store 21 sqlDB, err := sql_db.NewSqlDB(db, tableName) 22 if err != nil { 23 return ownable{}, core_err.Rethrow("opening ownable sql db", err) 24 } 25 // service 26 getOwner := service.NewOwnerGetter(sqlDB.GetOwner) 27 return ownable{ 28 GetOwner: getOwner, 29 }, nil 30 }