Files
dttmr-api/internal/api/handler/default.go
T

47 lines
1.0 KiB
Go

package handler
import (
"log/slog"
"net/http"
"github.com/robindittmar/dttmr-api/internal/api/response"
)
type apiResponse struct {
Method string `json:"method"`
Url string `json:"url"`
Proto string `json:"proto"`
Header map[string]string `json:"header"`
Host string `json:"host"`
RemoteAddr string `json:"remoteAddr"`
Form map[string]string `json:"form"`
}
func DefaultHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
resp := apiResponse{
Method: r.Method,
Url: r.URL.String(),
Proto: r.Proto,
Header: make(map[string]string),
Host: r.Host,
RemoteAddr: r.RemoteAddr,
Form: make(map[string]string),
}
for k, v := range r.Header {
resp.Header[k] = v[0]
}
if err := r.ParseForm(); err == nil {
for k, v := range r.Form {
resp.Form[k] = v[0]
}
} else {
slog.ErrorContext(ctx, "error parsing form", slog.Any("error", err))
}
response.JSON(ctx, w, http.StatusOK, resp)
}