diff --git a/sql/db/service.go b/sql/db/service.go index 5ee84e5..23d66dd 100644 --- a/sql/db/service.go +++ b/sql/db/service.go @@ -1,50 +1,8 @@ package db -import ( - "database/sql" - - "github.com/agflow/tools/log" -) - -// Client is a wrapper of a sql.DB client -type Client struct { - DB *sql.DB -} - // Service is an interface of db.Service type Service interface { Select(interface{}, string, ...interface{}) error Close() error Exec(string, ...interface{}) error } - -// Select selects from `client` using the `query` and `args` and set the result on `dest` -func (c *Client) Select(dest interface{}, query string, args ...interface{}) error { - return Select(c.DB, dest, query, args...) -} - -// Exec executes from `client` using the `query` and `args` -func (c *Client) Exec(query string, args ...interface{}) error { - _, err := c.DB.Exec(query, args...) - return err -} - -// New return a new db.Client -func New(url string) (*Client, error) { - db, err := sql.Open("postgres", url) - return &Client{DB: db}, err -} - -// MustNew return a new db.Client without an error -func MustNew(url string) *Client { - dbSvc, err := New(url) - if err != nil { - log.Fatal(err) - } - return dbSvc -} - -// Close closes db connection from the client -func (c *Client) Close() error { - return c.DB.Close() -} diff --git a/sql/db/sql.go b/sql/db/sql.go new file mode 100644 index 0000000..7987703 --- /dev/null +++ b/sql/db/sql.go @@ -0,0 +1,43 @@ +package db + +import ( + "database/sql" + + "github.com/agflow/tools/log" +) + +// Client is a wrapper of a sql.DB client +type Client struct { + DB *sql.DB +} + +// Select selects from `client` using the `query` and `args` and set the result on `dest` +func (c *Client) Select(dest interface{}, query string, args ...interface{}) error { + return Select(c.DB, dest, query, args...) +} + +// Exec executes from `client` using the `query` and `args` +func (c *Client) Exec(query string, args ...interface{}) error { + _, err := c.DB.Exec(query, args...) + return err +} + +// New return a new db.Client +func New(url string) (*Client, error) { + db, err := sql.Open("postgres", url) + return &Client{DB: db}, err +} + +// MustNew return a new db.Client without an error +func MustNew(url string) *Client { + dbSvc, err := New(url) + if err != nil { + log.Fatal(err) + } + return dbSvc +} + +// Close closes db connection from the client +func (c *Client) Close() error { + return c.DB.Close() +} diff --git a/sql/query/reader.go b/sql/file/reader.go similarity index 97% rename from sql/query/reader.go rename to sql/file/reader.go index c1e68c5..e87960e 100644 --- a/sql/query/reader.go +++ b/sql/file/reader.go @@ -1,4 +1,4 @@ -package query +package file import ( "embed" @@ -68,6 +68,8 @@ func mustReadFiles(root string, queriesFS embed.FS, query interface{}) { // MustLoad loads queries // that are located in the default sql directory +// +// Deprecated: MustLoadSQLFiles offers more functionality func MustLoad(queriesFS embed.FS, query interface{}) { f, err := fs.ReadDir(queriesFS, ".") if err != nil {