From bb58d07706610bcbbfc445c924a19981ece5f720 Mon Sep 17 00:00:00 2001 From: filifa Date: Sat, 20 Jul 2024 15:08:53 -0500 Subject: [PATCH] add helper function --- cmd/subscribe.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/cmd/subscribe.go b/cmd/subscribe.go index 3ed8e86..77c3c06 100644 --- a/cmd/subscribe.go +++ b/cmd/subscribe.go @@ -63,6 +63,19 @@ func newWebsocket(gamePk string) (*statsapi.GamedayWebsocket, <-chan error, erro return &ws, ch, err } +func handleUnexpectedClose(ws *statsapi.GamedayWebsocket, feedResp []byte, gamePk string) error { + ws.Close() + + newWs, _, err := newWebsocket(gamePk) + if err != nil { + return err + } + *ws = *newWs + + feedResp, err = statsapi.RequestFeed(gamePk) + return err +} + func subscribe(cmd *cobra.Command, args []string) { pkStr := strconv.Itoa(gamePk) ws, _, err := newWebsocket(pkStr) @@ -90,19 +103,11 @@ func subscribe(cmd *cobra.Command, args []string) { err = ws.ReadJSON(&p) if websocket.IsUnexpectedCloseError(err, statsapi.GameFinalCode, statsapi.GameUnavailableCode) { log.Println(err) - ws.Close() - - ws, _, err = newWebsocket(pkStr) + err = handleUnexpectedClose(ws, feedResp, pkStr) if err != nil { log.Fatal(err) } defer ws.Close() - - feedResp, err = statsapi.RequestFeed(pkStr) - if err != nil { - log.Fatal(err) - } - continue } else if err != nil { log.Fatal(err)