feat: 升级hook处理逻辑

This commit is contained in:
2025-11-01 17:16:11 +08:00
parent 954f6fef8a
commit d4052bcc4f
8 changed files with 95 additions and 42 deletions

View File

@ -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)