respond correctly to incident update
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-03-26 12:45:10 +11:00
parent 34552985b7
commit bb999afbb7

View File

@@ -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 {