package main import ( "encoding/json" "net/http" "git.lattuga.net/boyska/circolog" "github.com/gorilla/mux" ) func setupHTTPCtl(hub circolog.Hub) *mux.Router { mux := mux.NewRouter() mux.HandleFunc("/pause/toggle", togglePause(hub)).Methods("POST") mux.HandleFunc("/logs/clear", clearQueue(hub)).Methods("POST") return mux } func togglePause(hub circolog.Hub) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { hub.Commands <- circolog.HubFullCommand{Command: circolog.CommandPauseToggle} resp := <-hub.Responses active := resp.Value.(bool) w.Header().Set("content-type", "application/json") enc := json.NewEncoder(w) enc.Encode(map[string]interface{}{"paused": !active}) } } func clearQueue(hub circolog.Hub) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { hub.Commands <- circolog.HubFullCommand{Command: circolog.CommandClear} resp := <-hub.Responses success := resp.Value.(bool) w.Header().Set("content-type", "application/json") enc := json.NewEncoder(w) enc.Encode(map[string]interface{}{"success": success}) } }