MCPcopy
hub / github.com/go-gorm/gorm / RegisterDefaultCallbacks

Function RegisterDefaultCallbacks

callbacks/callbacks.go:23–84  ·  view source on GitHub ↗
(db *gorm.DB, config *Config)

Source from the content-addressed store, hash-verified

21}
22
23func RegisterDefaultCallbacks(db *gorm.DB, config *Config) {
24 enableTransaction := func(db *gorm.DB) bool {
25 return !db.SkipDefaultTransaction
26 }
27
28 if len(config.CreateClauses) == 0 {
29 config.CreateClauses = createClauses
30 }
31 if len(config.QueryClauses) == 0 {
32 config.QueryClauses = queryClauses
33 }
34 if len(config.DeleteClauses) == 0 {
35 config.DeleteClauses = deleteClauses
36 }
37 if len(config.UpdateClauses) == 0 {
38 config.UpdateClauses = updateClauses
39 }
40
41 createCallback := db.Callback().Create()
42 createCallback.Match(enableTransaction).Register("gorm:begin_transaction", BeginTransaction)
43 createCallback.Register("gorm:before_create", BeforeCreate)
44 createCallback.Register("gorm:save_before_associations", SaveBeforeAssociations(true))
45 createCallback.Register("gorm:create", Create(config))
46 createCallback.Register("gorm:save_after_associations", SaveAfterAssociations(true))
47 createCallback.Register("gorm:after_create", AfterCreate)
48 createCallback.Match(enableTransaction).Register("gorm:commit_or_rollback_transaction", CommitOrRollbackTransaction)
49 createCallback.Clauses = config.CreateClauses
50
51 queryCallback := db.Callback().Query()
52 queryCallback.Register("gorm:query", Query)
53 queryCallback.Register("gorm:preload", Preload)
54 queryCallback.Register("gorm:after_query", AfterQuery)
55 queryCallback.Clauses = config.QueryClauses
56
57 deleteCallback := db.Callback().Delete()
58 deleteCallback.Match(enableTransaction).Register("gorm:begin_transaction", BeginTransaction)
59 deleteCallback.Register("gorm:before_delete", BeforeDelete)
60 deleteCallback.Register("gorm:delete_before_associations", DeleteBeforeAssociations)
61 deleteCallback.Register("gorm:delete", Delete(config))
62 deleteCallback.Register("gorm:after_delete", AfterDelete)
63 deleteCallback.Match(enableTransaction).Register("gorm:commit_or_rollback_transaction", CommitOrRollbackTransaction)
64 deleteCallback.Clauses = config.DeleteClauses
65
66 updateCallback := db.Callback().Update()
67 updateCallback.Match(enableTransaction).Register("gorm:begin_transaction", BeginTransaction)
68 updateCallback.Register("gorm:setup_reflect_value", SetupUpdateReflectValue)
69 updateCallback.Register("gorm:before_update", BeforeUpdate)
70 updateCallback.Register("gorm:save_before_associations", SaveBeforeAssociations(false))
71 updateCallback.Register("gorm:update", Update(config))
72 updateCallback.Register("gorm:save_after_associations", SaveAfterAssociations(false))
73 updateCallback.Register("gorm:after_update", AfterUpdate)
74 updateCallback.Match(enableTransaction).Register("gorm:commit_or_rollback_transaction", CommitOrRollbackTransaction)
75 updateCallback.Clauses = config.UpdateClauses
76
77 rowCallback := db.Callback().Row()
78 rowCallback.Register("gorm:row", RowQuery)
79 rowCallback.Clauses = config.QueryClauses
80

Callers 1

InitializeMethod · 0.92

Calls 14

SaveBeforeAssociationsFunction · 0.85
CreateFunction · 0.85
SaveAfterAssociationsFunction · 0.85
CallbackMethod · 0.80
MatchMethod · 0.80
QueryMethod · 0.80
DeleteFunction · 0.70
UpdateFunction · 0.70
CreateMethod · 0.65
DeleteMethod · 0.65
UpdateMethod · 0.65
RowMethod · 0.65

Tested by

no test coverage detected