scores: better error when monitor parameter is invalid
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/csv"
|
"encoding/csv"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -79,7 +80,8 @@ func (srv *Server) getHistory(ctx context.Context, c echo.Context, server ntpdb.
|
|||||||
mID, err := strconv.ParseUint(monitorParam, 10, 32)
|
mID, err := strconv.ParseUint(monitorParam, 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.InfoContext(ctx, "invalid monitor parameter", "monitor", monitorParam)
|
log.InfoContext(ctx, "invalid monitor parameter", "monitor", monitorParam)
|
||||||
return nil, nil
|
return nil, echo.NewHTTPError(http.StatusBadRequest, "invalid monitor parameter")
|
||||||
|
|
||||||
}
|
}
|
||||||
monitorID = uint32(mID)
|
monitorID = uint32(mID)
|
||||||
}
|
}
|
||||||
@@ -106,29 +108,38 @@ func (srv *Server) history(c echo.Context) error {
|
|||||||
|
|
||||||
mode := paramHistoryMode(c.Param("mode"))
|
mode := paramHistoryMode(c.Param("mode"))
|
||||||
if mode == historyModeUnknown {
|
if mode == historyModeUnknown {
|
||||||
return c.String(http.StatusNotFound, "invalid mode")
|
return echo.NewHTTPError(http.StatusNotFound, "invalid mode")
|
||||||
}
|
}
|
||||||
|
|
||||||
server, err := srv.FindServer(ctx, c.Param("server"))
|
server, err := srv.FindServer(ctx, c.Param("server"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("find server", "err", err)
|
log.Error("find server", "err", err)
|
||||||
span.RecordError(err)
|
span.RecordError(err)
|
||||||
return c.String(http.StatusInternalServerError, "internal error")
|
return echo.NewHTTPError(http.StatusInternalServerError, "internal error")
|
||||||
}
|
}
|
||||||
if server.DeletionAge(30 * 24 * time.Hour) {
|
if server.DeletionAge(30 * 24 * time.Hour) {
|
||||||
span.AddEvent("server deleted")
|
span.AddEvent("server deleted")
|
||||||
return c.String(http.StatusNotFound, "server not found")
|
return echo.NewHTTPError(http.StatusNotFound, "server not found")
|
||||||
}
|
}
|
||||||
if server.ID == 0 {
|
if server.ID == 0 {
|
||||||
span.AddEvent("server not found")
|
span.AddEvent("server not found")
|
||||||
return c.String(http.StatusNotFound, "server not found")
|
return echo.NewHTTPError(http.StatusNotFound, "server not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
history, err := srv.getHistory(ctx, c, server)
|
history, err := srv.getHistory(ctx, c, server)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("get history", "err", err)
|
var httpError *echo.HTTPError
|
||||||
span.RecordError(err)
|
if errors.As(err, &httpError) {
|
||||||
return c.String(http.StatusInternalServerError, "internal error")
|
if httpError.Code >= 500 {
|
||||||
|
log.Error("get history", "err", err)
|
||||||
|
span.RecordError(err)
|
||||||
|
}
|
||||||
|
return httpError
|
||||||
|
} else {
|
||||||
|
log.Error("get history", "err", err)
|
||||||
|
span.RecordError(err)
|
||||||
|
return c.String(http.StatusInternalServerError, "internal error")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Response().Header().Set("Access-Control-Allow-Origin", "*")
|
c.Response().Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
|||||||
Reference in New Issue
Block a user