mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			875 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			875 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package shared
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/iwind/TeaGo/maps"
 | 
						|
	"net/http"
 | 
						|
)
 | 
						|
 | 
						|
// 请求调用
 | 
						|
type RequestCall struct {
 | 
						|
	Formatter         func(source string) string
 | 
						|
	Request           *http.Request
 | 
						|
	ResponseCallbacks []func(resp http.ResponseWriter)
 | 
						|
	Options           maps.Map
 | 
						|
}
 | 
						|
 | 
						|
// 获取新对象
 | 
						|
func NewRequestCall() *RequestCall {
 | 
						|
	return &RequestCall{
 | 
						|
		Options: maps.Map{},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// 重置
 | 
						|
func (this *RequestCall) Reset() {
 | 
						|
	this.Formatter = nil
 | 
						|
	this.Request = nil
 | 
						|
	this.ResponseCallbacks = nil
 | 
						|
	this.Options = maps.Map{}
 | 
						|
}
 | 
						|
 | 
						|
// 添加响应回调
 | 
						|
func (this *RequestCall) AddResponseCall(callback func(resp http.ResponseWriter)) {
 | 
						|
	this.ResponseCallbacks = append(this.ResponseCallbacks, callback)
 | 
						|
}
 | 
						|
 | 
						|
// 执行响应回调
 | 
						|
func (this *RequestCall) CallResponseCallbacks(resp http.ResponseWriter) {
 | 
						|
	for _, callback := range this.ResponseCallbacks {
 | 
						|
		callback(resp)
 | 
						|
	}
 | 
						|
}
 |