| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package entity
- import (
- "git.sxidc.com/go-framework/baize/domain"
- "git.sxidc.com/go-framework/baize/infrastructure"
- "git.sxidc.com/go-framework/baize/infrastructure/database"
- )
- type Callbacks[O any] struct {
- BeforeDBOperate func(e domain.Entity, i *infrastructure.Infrastructure, dbExecutor database.Executor) error
- AfterDBOperate func(e domain.Entity, i *infrastructure.Infrastructure, dbExecutor database.Executor) error
- OnSuccessReturn func(e domain.Entity, i *infrastructure.Infrastructure, output O) (O, error)
- OnErrorReturn func(e domain.Entity, err error, i *infrastructure.Infrastructure, defaultErrOutput O) (O, error)
- }
- func callbackBeforeDBOperate[O any](callbacks *Callbacks[O], e domain.Entity, i *infrastructure.Infrastructure, dbExecutor database.Executor) error {
- if callbacks == nil {
- return nil
- }
- if callbacks.BeforeDBOperate == nil {
- return callbacks.BeforeDBOperate(e, i, dbExecutor)
- }
- return nil
- }
- func callbackAfterDBOperate[O any](callbacks *Callbacks[O], e domain.Entity, i *infrastructure.Infrastructure, dbExecutor database.Executor) error {
- if callbacks == nil {
- return nil
- }
- if callbacks.AfterDBOperate == nil {
- return callbacks.AfterDBOperate(e, i, dbExecutor)
- }
- return nil
- }
- func callbackOnSuccessReturn[O any](callbacks *Callbacks[O], e domain.Entity, i *infrastructure.Infrastructure, output O) (O, error) {
- if callbacks == nil {
- return output, nil
- }
- if callbacks.OnSuccessReturn == nil {
- return callbacks.OnSuccessReturn(e, i, output)
- }
- return output, nil
- }
- func callbackOnErrorReturn[O any](callbacks *Callbacks[O], e domain.Entity, err error, i *infrastructure.Infrastructure, defaultErrOutput O) (O, error) {
- if callbacks == nil {
- return defaultErrOutput, err
- }
- if callbacks.OnErrorReturn == nil {
- return callbacks.OnErrorReturn(e, err, i, defaultErrOutput)
- }
- return defaultErrOutput, err
- }
|