From 089d2a5d03919d4aed9491bb5ee4a5da453f3be4 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 4 Jul 2024 13:28:31 +0200 Subject: [PATCH] feat(paginate-ws): Use a Struct to parse the subscribe message --- serve.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/serve.go b/serve.go index e82ddaa..96bf6df 100644 --- a/serve.go +++ b/serve.go @@ -44,6 +44,10 @@ type ServeMessageResponse struct { Message string `json:"message"` } +type ServerSubscribeMessage struct { + Name string `json:"name"` +} + func NewServe(config *Config, runner *Runner) *Serve { return &Serve{ config: config, @@ -254,23 +258,22 @@ func (serve *Serve) newRouter() *mux.Router { } // Parse the subscription message - var subscription map[string]string + var subscription ServerSubscribeMessage if err := json.Unmarshal(message, &subscription); err != nil { log.Println("Unmarshal:", err) continue } - if name, ok := subscription["name"]; ok { - serve.clientSubscriptions[conn] = name + serve.clientSubscriptions[conn] = subscription.Name - // Send initial state for the subscribed server - serverState := serve.GetServerLogs(name) + // Send initial state for the subscribed server + serverState := serve.GetServerLogs(subscription.Name) - // Only send logs if there are any - if len(serverState.Logs) > 0 { - serve.sendMessage(conn, serverState) - } + // Only send logs if there are any + if len(serverState.Logs) > 0 { + serve.sendMessage(conn, serverState) } + } }()