package Models import ( "AnP/Utils" "net/http" "strconv" "strings" ) type RequestModel struct { Domain string Method string URL string Port int } func NewRequestModel(request *http.Request) RequestModel { DebugPrint(strings.ToLower(request.Method) + ":" + request.Host + request.RequestURI) var host []string = strings.Split(request.Host, ":") var port int64 = 80 if len(host) > 1 { var error error port, error = strconv.ParseInt(host[1], 10, 32) if error != nil { port = 80 } } return RequestModel{ Domain: host[0], Method: strings.ToLower(request.Method), URL: request.RequestURI, Port: int(port), } } func (_self RequestModel) ToJSON(header string) string { return Utils.JSONEncode(map[string]any{ header + "domain": _self.Domain, header + "method": _self.Method, header + "url": _self.URL, header + "port": _self.Port, }) } func (_self RequestModel) ToJSONItem(header string) map[string]string { return map[string]string{ header + "domain": _self.Domain, header + "method": _self.Method, header + "url": _self.URL, header + "port": strconv.FormatInt(int64(_self.Port), 10), } }