diff --git a/features/trace/trace.go b/features/trace/trace.go index 58a4e8ed..05651bbd 100644 --- a/features/trace/trace.go +++ b/features/trace/trace.go @@ -409,5 +409,13 @@ func ParseRawMsg2Html(w http.ResponseWriter, r *http.Request) { services.ResponseInternalServerError500ProcessError(w, err) return } - services.ResponseStatusOK204NoContent(w) + traceData.DecMsg = pathFile + _, err = dborm.XormUpdateTraceData(id, traceData) + if err != nil { + log.Errorf("Faile to XormUpdateTraceData:", err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + + services.ResponseHtmlContent(w, http.StatusOK, pathFile) } diff --git a/lib/dborm/dborm.go b/lib/dborm/dborm.go index ee0987d6..809e9bc4 100644 --- a/lib/dborm/dborm.go +++ b/lib/dborm/dborm.go @@ -1756,6 +1756,18 @@ func XormGetTraceData(id int) (*TraceData, error) { return result, nil } +func XormUpdateTraceData(id int, data *TraceData) (int64, error) { + affected, err := xEngine.Table("trace_data"). + Where("id=?", id). + Update(data) + if err != nil { + log.Error("Failed to update table trace_data:", err) + return 0, err + } + + return affected, nil +} + func XormGetTraceRawMsg(id int) (int64, []byte, error) { var rawMsg []byte var timestamp int64 diff --git a/lib/services/services.go b/lib/services/services.go index a4a25203..076cfab2 100644 --- a/lib/services/services.go +++ b/lib/services/services.go @@ -458,7 +458,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err // response 414-4 uri too long ? (optional) // todo ... ? if bytes.Count([]byte(r.RequestURI), nil) > config.GetUriMaxLenFromConfig() { - err = errors.New("Request Uri too long") + err = errors.New("request Uri too long") log.Errorf("Request Uri too long: bytes=%d, MaxLen=%d", bytes.Count([]byte(r.RequestURI), nil), config.GetUriMaxLenFromConfig()) ResponseRequestURITooLong414UriTooLong(w) return token, err @@ -479,7 +479,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err // 401-1 response if config.GetYamlConfig().Auth.Token && IsLocalhost(r.RemoteAddr) == false { token, ret = oauth.IsCarriedToken(r) - if ret == false { + if !ret { err = errors.New("accessToken is not carried") log.Error(err) ResponseUnauthorized401AccessTokenNotCarried(w) @@ -508,7 +508,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err vars := mux.Vars(r) apiVer := vars["apiVersion"] if apiVer != global.ApiVersionV1 { - err = errors.New("Uri is invalid") + err = errors.New("uri is invalid") log.Error(err) ResponseNotFound404UriNotExist(w, r) return token, err @@ -527,7 +527,7 @@ func CheckExtValidRequest(w http.ResponseWriter, r *http.Request) (string, error // 401-1 response if config.GetYamlConfig().Auth.Token { token, ret = oauth.IsCarriedToken(r) - if ret == false { + if !ret { err = errors.New("accessToken is not carried") log.Error(err) ResponseUnauthorized401AccessTokenNotCarried(w) @@ -939,7 +939,6 @@ func ResponseUploadFile(w http.ResponseWriter, code int, params map[string]strin w.Header().Set("Content-Type", writer.FormDataContentType()) w.WriteHeader(code) w.Write(body.Bytes()) - return } func ResponseFile(w http.ResponseWriter, code int, filePath string) { @@ -953,8 +952,6 @@ func ResponseFile(w http.ResponseWriter, code int, filePath string) { w.Header().Set("Content-Type", "application/octet-stream") w.WriteHeader(code) w.Write(fileBytes) - - return } func ResponseFileWithNameAndMD5(w http.ResponseWriter, code int, fileName, path, md5Sum string) { @@ -973,8 +970,20 @@ func ResponseFileWithNameAndMD5(w http.ResponseWriter, code int, fileName, path, w.Header().Set("MD5-Sum", md5Sum) w.WriteHeader(code) w.Write(fileBytes) +} - return +func ResponseHtmlContent(w http.ResponseWriter, code int, filePath string) { + htmlContent, err := os.ReadFile(filePath) + if err != nil { + log.Error("Failed to ReadFile:", err) + ResponseInternalServerError500ProcessError(w, err) + return + } + + SetCommonResponseHeader(w) + w.Header().Set("Content-Type", "text/html") + w.WriteHeader(code) + w.Write(htmlContent) } // RouterItem 路由项