From 02c9dce1b31c9ef7369d3a9138a8a267034a27d7 Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 26 Mar 2023 08:46:31 -0600 Subject: [PATCH] split server --- src/device/input/parse/v01/server.go | 39 ++++++++++++++++++---------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/device/input/parse/v01/server.go b/src/device/input/parse/v01/server.go index 160f201..4b33893 100644 --- a/src/device/input/parse/v01/server.go +++ b/src/device/input/parse/v01/server.go @@ -21,6 +21,7 @@ func (v01 *V01) _listen() { s := &http.Server{ Addr: v01.cfg.Feedback.Addr, Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + r = r.WithContext(v01.ctx) if r.Method == http.MethodGet { mutex.RLock() defer mutex.RUnlock() @@ -44,19 +45,7 @@ func (v01 *V01) _listen() { } func (v01 *V01) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if r.Method == http.MethodGet { - r = r.WithContext(v01.ctx) - user, ok := v01.cfg.Users[r.URL.Query().Get("user")] - if !ok { - user = v01.cfg.Users["broadcast"] - } - w.Write([]byte(user.Message)) - } else if r.URL.Path == "/broadcast" { - b, _ := io.ReadAll(r.Body) - v := v01.cfg.Users["broadcast"] - v.Message = string(b) - v01.cfg.Users["broadcast"] = v - } + v01.serveHTTP(w, r) if _, ok := r.URL.Query()["refresh"]; ok { select { case wrap.ChSigUsr1 <- syscall.SIGUSR1: @@ -64,3 +53,27 @@ func (v01 *V01) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } } + +func (v01 *V01) serveHTTP(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case "/": + v01.getUserFeedback(w, r) + case "/broadcast": + v01.putBroadcast(w, r) + } +} + +func (v01 *V01) getUserFeedback(w http.ResponseWriter, r *http.Request) { + user, ok := v01.cfg.Users[r.URL.Query().Get("user")] + if !ok { + user = v01.cfg.Users["broadcast"] + } + w.Write([]byte(user.Message)) +} + +func (v01 *V01) putBroadcast(w http.ResponseWriter, r *http.Request) { + b, _ := io.ReadAll(r.Body) + v := v01.cfg.Users["broadcast"] + v.Message = string(b) + v01.cfg.Users["broadcast"] = v +}