From 9950e7d6ab56b9f0297d2edf2e484d916f2760f0 Mon Sep 17 00:00:00 2001 From: r0n1n7an Date: Thu, 21 Nov 2024 17:17:14 +0800 Subject: [PATCH] fix bad return format of /racs/getfaillist api --- APIServer.go | 18 ++++++++++++++++-- racs/racs.go | 12 ++---------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/APIServer.go b/APIServer.go index 0bd909c..6b2a578 100644 --- a/APIServer.go +++ b/APIServer.go @@ -581,10 +581,24 @@ func handleRacsGetFailList(w http.ResponseWriter, r *http.Request) { rst := racs.GetFailList(cfg, logger, addr, uri) rpl := strings.NewReplacer( "map[string]string", "", - "map[int]map[string]string", "", + "map[string]interface {}", "", + "[]{", "[", + "}},", "}],", ) + + if rst["List"] != nil { + jsonData, err := json.MarshalIndent(rst, "", "\t") + if err != nil { + rst["Result"] = "NG" + rst["ErrMsg"] = "racs.HandleGetFailList: " + err.Error() + logger.Printf("[ERR] %s; %s; %s\r\n", addr, uri, rst["ErrMsg"]) + } + w.WriteHeader(http.StatusInternalServerError) + fmt.Fprintf(w, "%v", rpl.Replace(string(jsonData))) + return + } w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, "%v", rpl.Replace(fmt.Sprintf("%s", rst))) + fmt.Fprintf(w, "%v", rpl.Replace(fmt.Sprintf("%#v", rst))) } func parseReqParams(r *http.Request) (map[string]string, error) { diff --git a/racs/racs.go b/racs/racs.go index a8ea85a..bb9e5a9 100644 --- a/racs/racs.go +++ b/racs/racs.go @@ -3,7 +3,6 @@ package racs import ( "APIServer/cnf" "database/sql" - "encoding/json" "fmt" "log" @@ -106,7 +105,7 @@ func (r *RACS) Outbound(cfg cnf.Cfg, logger *log.Logger, addr string, uri string return rst } -func (r *RACS) GetFailList(cfg cnf.Cfg, logger *log.Logger, addr string, uri string) interface{} { +func (r *RACS) GetFailList(cfg cnf.Cfg, logger *log.Logger, addr string, uri string) map[string]interface{} { rst := map[string]interface{}{"Result": "OK", "ErrMsg": ""} dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", cfg.MySQL.User, @@ -160,12 +159,5 @@ func (r *RACS) GetFailList(cfg cnf.Cfg, logger *log.Logger, addr string, uri str list = append(list, row) } rst["List"] = list - jsonData, err := json.Marshal(rst) - if err != nil { - rst["Result"] = "NG" - rst["ErrMsg"] = "racs.GetFailList: " + err.Error() - logger.Printf("[ERR] %s; %s; %s\r\n", addr, uri, rst["ErrMsg"]) - return rst - } - return jsonData + return rst }