mirror of
https://github.com/wonli/aqi.git
synced 2025-10-08 18:10:31 +08:00
add callback
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
package store
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
type callback func(db *gorm.DB)
|
||||
|
||||
func DB(configKey string) *MySQLStore {
|
||||
return &MySQLStore{configKey: configKey}
|
||||
}
|
||||
|
@@ -14,6 +14,9 @@ import (
|
||||
|
||||
type MySQLStore struct {
|
||||
configKey string
|
||||
|
||||
callback callback
|
||||
hasCallback bool
|
||||
}
|
||||
|
||||
func (m *MySQLStore) Config() *config.MySQL {
|
||||
@@ -26,6 +29,11 @@ func (m *MySQLStore) Config() *config.MySQL {
|
||||
return r
|
||||
}
|
||||
|
||||
func (m *MySQLStore) Callback(fn callback) {
|
||||
m.callback = fn
|
||||
m.hasCallback = true
|
||||
}
|
||||
|
||||
func (m *MySQLStore) Use() *gorm.DB {
|
||||
r := m.Config()
|
||||
if r == nil {
|
||||
@@ -49,6 +57,10 @@ func (m *MySQLStore) Use() *gorm.DB {
|
||||
return nil
|
||||
}
|
||||
|
||||
if m.hasCallback {
|
||||
m.callback(db)
|
||||
}
|
||||
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
logger.SugarLog.Error("Error pinging database", zap.String("error", err.Error()))
|
||||
|
@@ -14,6 +14,9 @@ import (
|
||||
|
||||
type SQLiteStore struct {
|
||||
configKey string
|
||||
|
||||
callback callback
|
||||
hasCallback bool
|
||||
}
|
||||
|
||||
func (m *SQLiteStore) Config() *config.Sqlite {
|
||||
@@ -26,6 +29,11 @@ func (m *SQLiteStore) Config() *config.Sqlite {
|
||||
return r
|
||||
}
|
||||
|
||||
func (m *SQLiteStore) Callback(fn callback) {
|
||||
m.callback = fn
|
||||
m.hasCallback = true
|
||||
}
|
||||
|
||||
func (m *SQLiteStore) Use() *gorm.DB {
|
||||
r := m.Config()
|
||||
if r == nil {
|
||||
@@ -45,6 +53,10 @@ func (m *SQLiteStore) Use() *gorm.DB {
|
||||
return nil
|
||||
}
|
||||
|
||||
if m.hasCallback {
|
||||
m.callback(db)
|
||||
}
|
||||
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
logger.SugarLog.Error("Ping SQLite error",
|
||||
|
@@ -13,6 +13,9 @@ import (
|
||||
|
||||
type SqlServerStore struct {
|
||||
configKey string
|
||||
|
||||
callback callback
|
||||
hasCallback bool
|
||||
}
|
||||
|
||||
func (m *SqlServerStore) Config() *config.SqlServer {
|
||||
@@ -25,6 +28,11 @@ func (m *SqlServerStore) Config() *config.SqlServer {
|
||||
return r
|
||||
}
|
||||
|
||||
func (m *SqlServerStore) Callback(fn callback) {
|
||||
m.callback = fn
|
||||
m.hasCallback = true
|
||||
}
|
||||
|
||||
func (m *SqlServerStore) Use() *gorm.DB {
|
||||
r := m.Config()
|
||||
if r == nil {
|
||||
@@ -44,6 +52,10 @@ func (m *SqlServerStore) Use() *gorm.DB {
|
||||
return nil
|
||||
}
|
||||
|
||||
if m.hasCallback {
|
||||
m.callback(db)
|
||||
}
|
||||
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
logger.SugarLog.Errorf("%s (ping)", err.Error())
|
||||
|
Reference in New Issue
Block a user