Handel printable error messages from server

This commit is contained in:
Owen
2026-09-17 09:23:56 -04:00
parent 3548792c11
commit f6a4be0137
+24
View File
@@ -34,6 +34,13 @@ const (
fmtErrParsingTargetData = "Error parsing target data: %v"
)
// NewtErrorData represents a warning/error message sent down from the server,
// e.g. when it was unable to complete part of the site's registration.
type NewtErrorData struct {
Code string `json:"code"`
Message string `json:"message"`
}
func (n *Newt) registerHandlers(ctx context.Context) {
//TODO: MOVE MORE OF THESE HANDLERS TO STANDALONE FUNCTIONS IN THE DATA.GO AND CONNECT.GO FILES
@@ -41,6 +48,23 @@ func (n *Newt) registerHandlers(ctx context.Context) {
n.handleConnect(ctx, msg)
})
n.client.RegisterHandler("newt/error", func(msg websocket.WSMessage) {
var errorData NewtErrorData
jsonData, err := json.Marshal(msg.Data)
if err != nil {
logger.Error(fmtErrMarshaling, err)
return
}
if err := json.Unmarshal(jsonData, &errorData); err != nil {
logger.Error("Error unmarshaling newt error data: %v", err)
return
}
logger.Warn("Site warning (code: %s): %s", errorData.Code, errorData.Message)
})
n.client.RegisterHandler("newt/wg/reconnect", func(msg websocket.WSMessage) {
logger.Info("Received reconnect message")
if n.wgData.PublicKey != "" {