mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-03 20:40:25 +08:00
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package shared
|
|
|
|
import (
|
|
"github.com/iwind/TeaGo/maps"
|
|
"net/http"
|
|
)
|
|
|
|
// RequestCall 请求调用
|
|
type RequestCall struct {
|
|
Formatter func(source string) string // 当前变量格式化函数
|
|
Request *http.Request // 当前请求
|
|
Domain string // 当前域名
|
|
|
|
ResponseCallbacks []func(resp http.ResponseWriter)
|
|
Options maps.Map
|
|
}
|
|
|
|
// NewRequestCall 获取新对象
|
|
func NewRequestCall() *RequestCall {
|
|
return &RequestCall{
|
|
Options: maps.Map{},
|
|
}
|
|
}
|
|
|
|
// Reset 重置
|
|
func (this *RequestCall) Reset() {
|
|
this.Formatter = nil
|
|
this.Request = nil
|
|
this.ResponseCallbacks = nil
|
|
this.Options = maps.Map{}
|
|
}
|
|
|
|
// AddResponseCall 添加响应回调
|
|
func (this *RequestCall) AddResponseCall(callback func(resp http.ResponseWriter)) {
|
|
this.ResponseCallbacks = append(this.ResponseCallbacks, callback)
|
|
}
|
|
|
|
// CallResponseCallbacks 执行响应回调
|
|
func (this *RequestCall) CallResponseCallbacks(resp http.ResponseWriter) {
|
|
for _, callback := range this.ResponseCallbacks {
|
|
callback(resp)
|
|
}
|
|
}
|