Start Ambient local exporter
This commit is contained in:
61
pkg/ambient/http.go
Normal file
61
pkg/ambient/http.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package ambient
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"gitea.libretechconsulting.com/rmcguire/go-app/pkg/otel"
|
||||
"github.com/rs/zerolog"
|
||||
|
||||
"gitea.libretechconsulting.com/rmcguire/ambient-weather-local-exporter/pkg/awn"
|
||||
)
|
||||
|
||||
func GetAWNHandlerFunc(appCtx context.Context) func(http.ResponseWriter, *http.Request) {
|
||||
l := zerolog.Ctx(appCtx)
|
||||
tracer := otel.GetTracer(appCtx, "awn.http.handler")
|
||||
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
_, span := tracer.Start(r.Context(), "update")
|
||||
defer span.End()
|
||||
|
||||
bodyBytes, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
}
|
||||
|
||||
l.Trace().Bytes("body", bodyBytes)
|
||||
l.Trace().Any("request", r.URL.Query()).Send()
|
||||
|
||||
update, err := awn.UnmarshalQueryParams(r.URL.Query())
|
||||
if err != nil {
|
||||
l.Err(err).Send()
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(err.Error()))
|
||||
}
|
||||
|
||||
l.Trace().Any("update", update).Send()
|
||||
|
||||
w.Write([]byte("ok"))
|
||||
}
|
||||
}
|
||||
|
||||
func GetWundergroundHandlerFunc(appCtx context.Context) func(http.ResponseWriter, *http.Request) {
|
||||
l := zerolog.Ctx(appCtx)
|
||||
tracer := otel.GetTracer(appCtx, "wunderground.http.handler")
|
||||
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
_, span := tracer.Start(r.Context(), "update")
|
||||
defer span.End()
|
||||
|
||||
bodyBytes, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
}
|
||||
|
||||
l.Trace().Bytes("body", bodyBytes)
|
||||
l.Trace().Any("request", r.URL.Query()).Send()
|
||||
|
||||
w.Write([]byte("ok"))
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user