old_console/correlator/rules/debug_action.go
2024-11-02 14:12:45 +03:00

40 lines
1.1 KiB
Go

package rules
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/url"
"time"
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper"
"iwarma.ru/console/correlator/config"
)
// DumpNetwork Dump network request/response for debug purpose
func DumpNetwork(action string, url url.URL, request map[string]interface{}, response []byte, status int) {
data := make(map[string]interface{})
data["url"] = url
data["request"] = request
data["response"] = string(response)
data["status"] = status
dumpData, err := json.MarshalIndent(data, "", "\t")
if err != nil {
log.Errorf("Can't dump request: %v", err)
log.Debugf("Sending request: %v", request)
log.Debugf("Got response: %v", string(response))
}
fileName := fmt.Sprintf("%v/correlator_debug-%v_%v_action_%v.json", viper.GetString(config.DebugDumpPath), uuid.New(), action, time.Now().Unix())
err = ioutil.WriteFile(fileName, dumpData, 0644)
if err != nil {
log.Errorf("Can't dump request: %v", err)
log.Debugf("Sending request: %v", request)
log.Debugf("Got response: %v", string(response))
}
}