This repository has been archived on 2019-06-27. You can view files and clone it, but cannot push or open issues/pull-requests.
am/report-handler.go

45 lines
802 B
Go

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)
}
}