modelRT/handler/real_time_data_query.go

45 lines
995 B
Go

// Package handler provides HTTP handlers for various endpoints.
package handler
import (
"net/http"
"strconv"
"modelRT/alert"
constants "modelRT/constant"
"modelRT/logger"
"modelRT/network"
"github.com/gin-gonic/gin"
)
// QueryRealTimeDataHandler define query real time data process API
func QueryRealTimeDataHandler(c *gin.Context) {
var targetLevel constants.AlertLevel
alertManger := alert.GetAlertMangerInstance()
levelStr := c.Query("level")
level, err := strconv.Atoi(levelStr)
if err != nil {
logger.Error(c, "convert alert level string to int failed", "error", err)
resp := network.FailureResponse{
Code: http.StatusBadRequest,
Msg: err.Error(),
}
c.JSON(http.StatusOK, resp)
}
targetLevel = constants.AlertLevel(level)
events := alertManger.GetRangeEventsByLevel(targetLevel)
resp := network.SuccessResponse{
Code: http.StatusOK,
Msg: "success",
PayLoad: map[string]interface{}{
"events": events,
},
}
c.JSON(http.StatusOK, resp)
}