more logging
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-03-24 10:38:24 +11:00
parent 6c432f7cb1
commit fe889a7a2c
4 changed files with 43 additions and 5 deletions

View File

@@ -0,0 +1,35 @@
package handler
import (
"bytes"
"encoding/json"
"io"
"net/http"
)
func (h *Handler) Fallback(w http.ResponseWriter, r *http.Request) {
h.Logger.Debug("Fallback Request received", "method", r.Method, "path", r.URL.Path)
body, err := io.ReadAll(r.Body)
if err != nil {
http.Error(w, "Unable to read body", http.StatusBadRequest)
return
}
defer r.Body.Close()
// Pretty-print JSON to console
var prettyJSON bytes.Buffer
if err := json.Indent(&prettyJSON, body, "", " "); err != nil {
http.Error(w, "Invalid JSON", http.StatusBadRequest)
return
}
h.Logger.Debug("Received JSON payload", "payload", prettyJSON.String())
//fmt.Println("Received JSON payload:")
//fmt.Println(prettyJSON.String())
// Set content type and write back the same JSON
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
w.Write(prettyJSON.Bytes())
}

View File

@@ -1,19 +1,19 @@
package handler
import (
"fmt"
"net/http"
"strings"
)
// GetIncident responds to the link generated in the response to a New Snow
func (h *Handler) GetIncident(w http.ResponseWriter, r *http.Request) {
h.Logger.Debug("GetIncident Request received", "method", r.Method, "path", r.URL.Path)
// TODO
path := r.URL.Path
// Expected format: /api/now/table/incident/{id}
parts := strings.Split(path, "/")
h.Logger.Debug("Request path", "parts", parts)
if len(parts) != 6 || parts[1] != "api" || parts[2] != "now" || parts[3] != "table" || parts[4] != "incident" {
http.NotFound(w, r)
@@ -21,5 +21,7 @@ func (h *Handler) GetIncident(w http.ResponseWriter, r *http.Request) {
}
id := parts[5] // Extract {id}
fmt.Fprintf(w, "Incident ID: %s", id)
h.Logger.Debug("GetIncident called", "id", id)
//fmt.Fprintf(w, "Incident ID: %s", id)
w.WriteHeader(http.StatusOK)
}

View File

@@ -26,13 +26,14 @@ func New(logger *slog.Logger, database db.Database, buildTime string, sha1ver st
mux := http.NewServeMux()
mux.Handle("/assets/", middleware.CacheMiddleware(http.FileServer(http.FS(dist.AssetsDir))))
mux.HandleFunc("/", h.Home)
mux.HandleFunc("/about", h.Home)
mux.HandleFunc("/api/now/import/x_dusa2_itom_inc_imp", h.NewSnow)
mux.HandleFunc("/api/now/table/incident/", h.GetIncident)
mux.HandleFunc("/api/print", h.RenderIncomingTable)
// TODO - fallback route that will just echo incoming payload
mux.HandleFunc("/", h.Fallback)
// mux.HandleFunc("/api/event/vm/create", h.VmCreateEvent)
// mux.HandleFunc("/api/event/vm/modify", h.VmModifyEvent)

View File

@@ -55,7 +55,7 @@ func New(logger *slog.Logger, cron gocron.Scheduler, cancel context.CancelFunc,
srv: srv,
logger: logger,
cron: cron,
//cancel: cancel,
cancel: cancel,
}
// Apply any options