(db *gorm.DB, config *Config)
| 21 | } |
| 22 | |
| 23 | func 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 |
no test coverage detected