plapkit/main.go
2024-06-25 22:46:58 -04:00

70 lines
1.7 KiB
Go

package main
import (
"log"
"net/http"
"os"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var (
SigningToken = os.Getenv("SIGNING_TOKEN")
)
func main() {
listenAddr := os.Getenv("LISTEN_ADDR")
if listenAddr == "" {
listenAddr = "0.0.0.0:8555"
}
mux := http.NewServeMux()
// our routes
mux.HandleFunc("/hook/{token}", postGetHookToken)
// prometheus
mux.Handle("/metrics", promhttp.Handler())
log.Println("[main] http server listening on", listenAddr)
err := http.ListenAndServe(listenAddr, mux)
if err != nil {
log.Fatalln("[main] http server errored", err)
}
}
func errMethodNotAllowed(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusMethodNotAllowed)
rw.Write([]byte("405 Method Not Allowed"))
}
func errStatusInternalServerError(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusInternalServerError)
rw.Write([]byte("500 Internal Server Error"))
}
func errUnauthorized(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusUnauthorized)
rw.Write([]byte("401 Unauthorized"))
}
func errBadRequest(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusBadRequest)
rw.Write([]byte("401 Bad Request"))
}
func basicOk(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusOK)
rw.Write([]byte("200 Aight Request"))
}
func basicNoContent(rw http.ResponseWriter) {
rw.Header().Add("content-type", "text/plain")
rw.WriteHeader(http.StatusNoContent)
rw.Write([]byte("204 No Content (debug: likely not handled)"))
}