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