| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package entity_crud
- import (
- "git.sxidc.com/go-framework/baize/domain"
- "git.sxidc.com/go-framework/baize/infrastructure/database"
- )
- type Callbacks[O any] struct {
- BeforeDBOperate func(e domain.Entity, dbExecutor database.Executor) error
- OnReturn func(e domain.Entity, dbExecutor database.Executor, output O) (O, error)
- OnError func(e domain.Entity, err error, dbExecutor database.Executor, defaultErrOutput O) (O, error)
- }
- func callbackBeforeDBOperate[O any](callbacks *Callbacks[O], e domain.Entity, dbExecutor database.Executor) error {
- if callbacks == nil {
- return nil
- }
- if callbacks.BeforeDBOperate == nil {
- return callbacks.BeforeDBOperate(e, dbExecutor)
- }
- return nil
- }
- func callbackOnReturn[O any](callbacks *Callbacks[O], e domain.Entity, dbExecutor database.Executor, output O) (O, error) {
- if callbacks == nil {
- return output, nil
- }
- if callbacks.OnReturn == nil {
- return callbacks.OnReturn(e, dbExecutor, output)
- }
- return output, nil
- }
- func callbackOnError[O any](callbacks *Callbacks[O], e domain.Entity, err error, dbExecutor database.Executor, defaultErrOutput O) (O, error) {
- if callbacks == nil {
- return defaultErrOutput, err
- }
- if callbacks.OnError == nil {
- return callbacks.OnError(e, err, dbExecutor, defaultErrOutput)
- }
- return defaultErrOutput, err
- }
|