diff --git a/server/handler/newSnow.go b/server/handler/newSnow.go index d652b40..e92cd54 100644 --- a/server/handler/newSnow.go +++ b/server/handler/newSnow.go @@ -19,6 +19,22 @@ import ( // NewSnow receives data from the DMSP Snow New() function func (h *Handler) NewSnow(w http.ResponseWriter, r *http.Request) { + h.Logger.Debug("NewSnow Request received", "method", r.Method, "url", r.URL, "path", r.URL.Path, "query", r.URL.Query(), "proto", r.Proto) + + // Print headers + for name, values := range r.Header { + for _, value := range values { + h.Logger.Debug("Header ", "name", name, "value", value) + } + } + + // print query + for key, values := range r.URL.Query() { + for _, value := range values { + h.Logger.Debug("Query Paramater", "key", key, "value", value) + } + } + var hostname string reqBody, err := io.ReadAll(r.Body) @@ -180,7 +196,7 @@ func (h *Handler) NewSnow(w http.ResponseWriter, r *http.Request) { } else if len(incoming.IncidentNumber) > 0 { // Incident already exists because we know the incident number, so update status or worknotes - h.Logger.Debug("updating incident database record") + h.Logger.Debug("updating incident database record", "number", incoming.IncidentNumber) inc, err := h.Database.Queries().GetIncident(ctx, nullStr(incoming.IncidentNumber)) if err != nil { @@ -204,9 +220,9 @@ func (h *Handler) NewSnow(w http.ResponseWriter, r *http.Request) { h.Logger.Debug("updated incident database record", "number", incoming.IncidentNumber) } - // TODO - add any worknotes specified + // add any worknotes specified if len(incoming.WorkNotes) > 0 { - h.Logger.Debug("TODO add worknotes") + //h.Logger.Debug("TODO add worknotes") // Create the worknotes entry wnParms := queries.CreateWorkNoteParams{ @@ -224,6 +240,24 @@ func (h *Handler) NewSnow(w http.ResponseWriter, r *http.Request) { } } + // Respond saying we have updated the record + + response := models.IncidentResponse{ + StagingTable: "x_dusa2_itom_inc_imp", + Result: []models.IncidentResultItem{ + { + DisplayValue: incoming.IncidentNumber, + Status: "updated", + SysID: inc.SysID.String, + }, + }, + } + + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + json.NewEncoder(w).Encode(response) + return + } else { // Unexpected condition // TODO - return error @@ -237,9 +271,11 @@ func (h *Handler) NewSnow(w http.ResponseWriter, r *http.Request) { return } - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, "{\"result\": [{}]}") + /* + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, "{\"result\": [{}]}") + */ } func nullStr(s string) sql.NullString {