/* * 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" "go.mongodb.org/mongo-driver/bson/primitive" ) func SitesAnalysisSetup(api fiber.Router) { // 获取站点分析管理名称表 api.Get("/sitesAnalysis/manage/analysisList", func(c *fiber.Ctx) error { pageInt, _ := strconv.Atoi(c.Query("pageNum", "1")) sizeInt, _ := strconv.Atoi(c.Query("pageSize", "20")) if pageInt <= 0 || sizeInt <= 0 { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request para", }) } sn := c.Query("sn", "") progress := c.Query("progress", "") var snP *string = nil if sn != "" { snP = &sn } var progressP *string = nil if progress != "" { progressP = &progress } listPage, err := controllers.GetSiteAnalysisManageList(uint(pageInt), uint(sizeInt), snP, progressP) 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.SiteAnalysisConfigWrite 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 := c.Params("id") objID, err := primitive.ObjectIDFromHex(id) if err != nil { return JSONResponseNoData(c, 400, "Invalid request para :id") } config, err := controllers.GetSiteAnalysisConfig(objID) 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 := c.Params("id") var body controllers.SiteAnalysisConfigWrite if err := c.BodyParser(&body); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "code": 400, "message": "Invalid request body", }) } objID, err := primitive.ObjectIDFromHex(id) if err != nil { return JSONResponseNoData(c, 400, "Invalid request para :id") } if err := controllers.UpdateSiteAnalysisConfig(objID, 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 := c.Params("id") objID, err := primitive.ObjectIDFromHex(id) if err != nil { return JSONResponseNoData(c, 400, "Invalid request para :id") } err = controllers.DeleteSiteAnalysisConfig(objID) 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) // }) }