package am import ( "net/http" ) func handleReport(w http.ResponseWriter, r *http.Request) { r.ParseForm() apiKey := r.Form.Get("key") src, err := db.SourceGetByKey(apiKey) if err != nil { respondNotAuthorized(w) return } action := r.Form.Get("action") switch action { case "ping": _ = db.SourceUpdateLastSeenAt(src.SourceID) w.WriteHeader(http.StatusOK) case "log": text := r.Form.Get("text") _ = db.LogInsert(Entry{ SourceID: src.SourceID, Text: text, }) runLogAction(src.LogAction, src.Name, text) w.WriteHeader(http.StatusOK) case "alert": text := r.Form.Get("text") _ = db.LogInsert(Entry{ SourceID: src.SourceID, Text: text, Alert: true, }) runAlertAction(src.AlertAction, src.Name, text) w.WriteHeader(http.StatusOK) } }