mirror of
https://github.com/jwetzell/showbridge-go.git
synced 2026-08-21 14:09:00 +00:00
add error return to database module
This commit is contained in:
@@ -22,5 +22,5 @@ type KeyValueModule interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DatabaseModule interface {
|
type DatabaseModule interface {
|
||||||
Database() *sql.DB
|
Database() (*sql.DB, error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,9 @@ func (t *DbSqlite) Stop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *DbSqlite) Database() *sql.DB {
|
func (t *DbSqlite) Database() (*sql.DB, error) {
|
||||||
return t.db
|
if t.db == nil {
|
||||||
|
return nil, fmt.Errorf("database not initialized")
|
||||||
|
}
|
||||||
|
return t.db, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,14 +41,19 @@ func (dq *DbQuery) Process(ctx context.Context, wrappedPayload common.WrappedPay
|
|||||||
dq.module = dbModule
|
dq.module = dbModule
|
||||||
}
|
}
|
||||||
|
|
||||||
db := dq.module.Database()
|
db, err := dq.module.Database()
|
||||||
|
if err != nil {
|
||||||
|
wrappedPayload.End = true
|
||||||
|
return wrappedPayload, fmt.Errorf("db.query error getting database from module: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
if db == nil {
|
if db == nil {
|
||||||
wrappedPayload.End = true
|
wrappedPayload.End = true
|
||||||
return wrappedPayload, fmt.Errorf("db.query module with id %s returned nil database", dq.ModuleId)
|
return wrappedPayload, fmt.Errorf("db.query module with id %s returned nil database", dq.ModuleId)
|
||||||
}
|
}
|
||||||
|
|
||||||
var queryBuffer bytes.Buffer
|
var queryBuffer bytes.Buffer
|
||||||
err := dq.Query.Execute(&queryBuffer, wrappedPayload)
|
err = dq.Query.Execute(&queryBuffer, wrappedPayload)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
wrappedPayload.End = true
|
wrappedPayload.End = true
|
||||||
|
|||||||
+10
-4
@@ -79,11 +79,14 @@ func (m *TestDBModule) Start(ctx context.Context, router common.RouteIO) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TestDBModule) Database() *sql.DB {
|
func (m *TestDBModule) Database() (*sql.DB, error) {
|
||||||
if m.db == nil {
|
if m.db == nil {
|
||||||
db, _ := sql.Open("sqlite", ":memory:")
|
db, err := sql.Open("sqlite", ":memory:")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
db.Exec(`
|
_, err = db.Exec(`
|
||||||
CREATE TABLE test (
|
CREATE TABLE test (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
value TEXT
|
value TEXT
|
||||||
@@ -91,9 +94,12 @@ func (m *TestDBModule) Database() *sql.DB {
|
|||||||
INSERT INTO test (id, value) VALUES (1, 'test-1'), (2, 'test-2');
|
INSERT INTO test (id, value) VALUES (1, 'test-1'), (2, 'test-2');
|
||||||
|
|
||||||
`)
|
`)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
m.db = db
|
m.db = db
|
||||||
}
|
}
|
||||||
return m.db
|
return m.db, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TestDBModule) Stop() {}
|
func (m *TestDBModule) Stop() {}
|
||||||
|
|||||||
Reference in New Issue
Block a user