sitesAnalysisRoutes.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * Sites Analysis API List
  3. * /sitesAnalysis/manage/analysisList - GET
  4. * /sitesAnalysis/manage/config - POST 创建新配置
  5. * /sitesAnalysis/manage/config/{id} - GET & POST & DELETE 获取、更新、删除配置
  6. * /sitesAnalysis/data/{id} - GET 获取指定ID的分析数据
  7. */
  8. package routes
  9. import (
  10. "fwh-toolbox-server/controllers"
  11. "github.com/gofiber/fiber/v2"
  12. "go.mongodb.org/mongo-driver/bson/primitive"
  13. )
  14. func SitesAnalysisSetup(api fiber.Router) {
  15. // 获取站点分析管理名称表
  16. api.Get("/sitesAnalysis/manage/analysisList", func(c *fiber.Ctx) error {
  17. listPage, err := controllers.GetSiteAnalysisManageList()
  18. if err != nil {
  19. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  20. }
  21. return JSONResponse(c, 0, "success", listPage)
  22. })
  23. // 创建一个分析配置
  24. api.Post("/sitesAnalysis/manage/config", func(c *fiber.Ctx) error {
  25. var body controllers.SiteAnalysisConfig
  26. if err := c.BodyParser(&body); err != nil {
  27. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  28. "code": 400,
  29. "message": "Invalid request body",
  30. })
  31. }
  32. if err := controllers.InsertSiteAnalysisConfig(body); err != nil {
  33. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  34. }
  35. return JSONResponse(c, 0, "success", body)
  36. })
  37. // 获取单个分析配置
  38. api.Get("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error {
  39. id := c.Params("id")
  40. objID, err := primitive.ObjectIDFromHex(id)
  41. if err != nil {
  42. return JSONResponseNoData(c, 400, "Invalid request para :id")
  43. }
  44. config, err := controllers.GetSiteAnalysisConfig(objID)
  45. if err != nil {
  46. return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  47. }
  48. return JSONResponse(c, 0, "success", config)
  49. })
  50. // 更新一个分析配置
  51. api.Post("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error {
  52. id := c.Params("id")
  53. var body controllers.SiteAnalysisConfig
  54. if err := c.BodyParser(&body); err != nil {
  55. return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
  56. "code": 400,
  57. "message": "Invalid request body",
  58. })
  59. }
  60. objID, err := primitive.ObjectIDFromHex(id)
  61. if err != nil {
  62. return JSONResponseNoData(c, 400, "Invalid request para :id")
  63. }
  64. if err := controllers.UpdateSiteAnalysisConfig(objID, body); err != nil {
  65. return JSONResponseNoData(c, 500, "Database write failed. (MongoDb)")
  66. }
  67. return JSONResponse(c, 0, "success", body)
  68. })
  69. // 删除一个监控
  70. api.Delete("/sitesAnalysis/manage/config/:id", func(c *fiber.Ctx) error {
  71. id := c.Params("id")
  72. objID, err := primitive.ObjectIDFromHex(id)
  73. if err != nil {
  74. return JSONResponseNoData(c, 400, "Invalid request para :id")
  75. }
  76. err = controllers.DeleteSiteAnalysisConfig(objID)
  77. if err != nil {
  78. return JSONResponseNoData(c, 500, "Database delete failed. (MongoDb)")
  79. }
  80. return JSONResponseNoData(c, 0, "success")
  81. })
  82. // 获取指定ID的分析数据
  83. // api.Get("/sitesAnalysis/data/:id", func(c *fiber.Ctx) error {
  84. // id, err := strconv.ParseUint(c.Params("id"), 10, 64)
  85. // if err != nil {
  86. // return JSONResponseNoData(c, 400, "Invalid request id")
  87. // }
  88. // data, err := controllers.GetSiteAnalysisData(id)
  89. // if err != nil {
  90. // return JSONResponseNoData(c, 500, "Database read failed. (MongoDb)")
  91. // }
  92. // return JSONResponse(c, 0, "success", data)
  93. // })
  94. }