-
Notifications
You must be signed in to change notification settings - Fork 27
/
callbacks.go
36 lines (27 loc) · 677 Bytes
/
callbacks.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package bigquery
import (
"github.com/go-gorm/bigquery/adaptor"
"gorm.io/gorm"
"gorm.io/gorm/callbacks"
)
func initializeCallbacks(db *gorm.DB) {
// register callbacks
callbacks.RegisterDefaultCallbacks(db, &callbacks.Config{
WithReturning: true,
})
c := &bigQueryCallbacks{db}
queryCallback := db.Callback().Query()
queryCallback.Replace("gorm:query", c.queryCallback)
}
type bigQueryCallbacks struct {
root *gorm.DB
}
func (c *bigQueryCallbacks) queryCallback(db *gorm.DB) {
if !db.DryRun {
db.Statement.Context = adaptor.SetSchemaAdaptor(db.Statement.Context, &bigQuerySchemaAdaptor{
db.Statement.Schema,
c.root,
})
}
callbacks.Query(db)
}