/* * Sites Analysis API List * /sitesAnalysis/manage/analysisList - GET * /sitesAnalysis/manage/config - POST 创建新配置 * /sitesAnalysis/manage/config/{id} - GET & POST & DELETE 获取、更新、删除配置 * /sitesAnalysis/data/{id} - GET 获取指定ID的分析数据 */ package routes import ( "fwh-toolbox-server/controllers" "strconv" "github.com/gofiber/fiber/v2" ) func SitesAnalysisSetup(api fiber.Router) { // 获取站点分析管理名称表 api.Get("/sitesAnalysis/manage/analysisList", func(c *fiber.Ctx) error { listPage, err := controllers.GetSiteAnalysisManageList() if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", listPage) }) // 创建一个分析配置 api.Post("/sitesAnalysis/manage/config", func(c *fiber.Ctx) error { var body controllers.SiteAnalysisConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } if err := controllers.InsertSiteAnalysisConfig(body); err != nil { return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) }) // 获取单个分析配置 api.Get("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil { return JSONResponseNoData(c, 400, "Invalid request id") } config, err := controllers.GetOneSiteAnalysisConfig(id) if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", config) }) // 更新一个分析配置 api.Post("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil { return JSONResponseNoData(c, 400, "Invalid request id") } var body controllers.SiteAnalysisConfig if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } if err := controllers.UpdateSiteAnalysisConfig(id, body); err != nil { return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)") } return JSONResponse(c, 0, "success", body) }) // 删除一个监控 api.Delete("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil { return JSONResponseNoData(c, 400, "Invalid request id") } err = controllers.DeleteSiteAnalysisConfig(id) if err != nil { return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)") } return JSONResponseNoData(c, 0, "success") }) // 获取指定ID的分析数据 api.Get("/sitesAnalysis/data/:id", func(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil { return JSONResponseNoData(c, 400, "Invalid request id") } data, err := controllers.GetSiteAnalysisData(id) if err != nil { return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)") } return JSONResponse(c, 0, "success", data) }) }