package main import ( "encoding/json" "log" "net/http" "github.com/codegoalie/golibnotify" ) type Notify struct { Summary string `json:"summary"` Body string `json:"body"` Icon string `json:"icon"` } func main() { mux := http.NewServeMux() mux.HandleFunc("/api/notify", func(w http.ResponseWriter, r *http.Request) { var n Notify defer r.Body.Close() if err := json.NewDecoder(r.Body).Decode(&n); err != nil { w.WriteHeader(http.StatusBadRequest) } // Send the notification sn := golibnotify.NewSimpleNotifier("notlistener") if err := sn.Show(n.Summary, n.Body, n.Icon); err != nil { log.Printf("Unable to send notification: %v", err) } }) log.Printf("Starting server on :8080") if err := http.ListenAndServe(":8080", mux); err != nil { log.Printf("Error starting listener: %v", err) } }