feat: 升级hook处理逻辑
This commit is contained in:
@ -12,6 +12,7 @@ import (
|
||||
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
"git.zhangdeman.cn/zhangdeman/wrapper/op_ternary"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -127,22 +128,18 @@ func GetHttpHandleConfig() *HttpHandleConfig {
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
LogicAfterResponseKey = "__logic_after_response__"
|
||||
)
|
||||
|
||||
type LogicAfterResponse struct {
|
||||
SuccessHookFuncList []func() `json:"-"` // 请求最后需要执行的成功hook函数
|
||||
FailureHookFuncList []func() `json:"-"` // 请求最后需要执行的失败hook函数
|
||||
Lock *sync.RWMutex `json:"-"` // 逻辑锁
|
||||
SuccessHookFuncList []func(ctx *gin.Context) `json:"-"` // 请求最后需要执行的成功hook函数
|
||||
FailureHookFuncList []func(ctx *gin.Context) `json:"-"` // 请求最后需要执行的失败hook函数
|
||||
Lock *sync.RWMutex `json:"-"` // 逻辑锁
|
||||
}
|
||||
|
||||
func (logic *LogicAfterResponse) AddSuccessHook(f func()) {
|
||||
func (logic *LogicAfterResponse) AddSuccessHook(f func(ctx *gin.Context)) {
|
||||
logic.Lock.Lock()
|
||||
defer logic.Lock.Unlock()
|
||||
logic.SuccessHookFuncList = append(logic.SuccessHookFuncList, f)
|
||||
}
|
||||
func (logic *LogicAfterResponse) AddFailureHook(f func()) {
|
||||
func (logic *LogicAfterResponse) AddFailureHook(f func(ctx *gin.Context)) {
|
||||
logic.Lock.Lock()
|
||||
defer logic.Lock.Unlock()
|
||||
logic.FailureHookFuncList = append(logic.FailureHookFuncList, f)
|
||||
|
||||
Reference in New Issue
Block a user