sitesAnalysisControllers.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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 controllers
  9. import (
  10. "fwh-toolbox-server/domain"
  11. "fwh-toolbox-server/services"
  12. "strconv"
  13. "github.com/gofiber/fiber/v2"
  14. "go.mongodb.org/mongo-driver/bson/primitive"
  15. )
  16. // 获取站点分析管理名称表
  17. // /sitesAnalysis/manage/analysisList
  18. func GetSitesAnalysisList(c *fiber.Ctx) error {
  19. pageInt, _ := strconv.Atoi(c.Query("pageNum", "1"))
  20. sizeInt, _ := strconv.Atoi(c.Query("pageSize", "20"))
  21. if pageInt <= 0 || sizeInt <= 0 {
  22. return Fail(c, "Invalid request para")
  23. }
  24. sn := c.Query("sn", "")
  25. progress := c.Query("progress", "")
  26. trigger := c.Query("trigger", "")
  27. var p_sn *string = nil
  28. if sn != "" {
  29. p_sn = &sn
  30. }
  31. var p_progress *string = nil
  32. if progress != "" {
  33. p_progress = &progress
  34. }
  35. var p_trigger *domain.Trigger = nil
  36. if trigger != "" {
  37. t := domain.Trigger(trigger)
  38. p_trigger = &t
  39. }
  40. listPage, err := services.GetSiteAnalysisManageList(uint(pageInt), uint(sizeInt), p_sn, nil, p_progress, p_trigger)
  41. if err != nil {
  42. return Error(c, "Database read failed. (MongoDb)")
  43. }
  44. return Success(c, listPage)
  45. }
  46. // 创建一个分析配置
  47. // /sitesAnalysis/manage/config
  48. func CreateSitesAnalysis(c *fiber.Ctx) error {
  49. var body domain.SiteAnalysisConfigWrite
  50. if err := c.BodyParser(&body); err != nil {
  51. return Fail(c, "Invalid request body")
  52. }
  53. if err := services.InsertSiteAnalysisConfig(body); err != nil {
  54. return Error(c, "Database write failed. (MongoDb)")
  55. }
  56. return Success(c, body)
  57. }
  58. // 获取单个分析配置
  59. // /sitesAnalysis/manage/config/:id
  60. func GetOneSiteAnalysisConfig(c *fiber.Ctx) error {
  61. id := c.Params("id")
  62. objID, err := primitive.ObjectIDFromHex(id)
  63. if err != nil {
  64. return Fail(c, "Invalid request para :id")
  65. }
  66. config, err := services.GetSiteAnalysisConfig(objID)
  67. if err != nil {
  68. return Error(c, "Database read failed. (MongoDb)")
  69. }
  70. return Success(c, config)
  71. }
  72. // 更新一个分析配置
  73. // /sitesAnalysis/manage/config/:id
  74. func UpdateOneSiteAnalysisConfig(c *fiber.Ctx) error {
  75. id := c.Params("id")
  76. var body domain.SiteAnalysisConfigWrite
  77. if err := c.BodyParser(&body); err != nil {
  78. return Fail(c, "Invalid request body")
  79. }
  80. objID, err := primitive.ObjectIDFromHex(id)
  81. if err != nil {
  82. return Fail(c, "Invalid request para :id")
  83. }
  84. if err := services.UpdateSiteAnalysisConfig(objID, body); err != nil {
  85. return Error(c, "Database write failed. (MongoDb)")
  86. }
  87. return Success(c, body)
  88. }
  89. // 更新一个分析配置
  90. // /sitesAnalysis/manage/description/:id
  91. func UpdateOneSiteAnalysisDescription(c *fiber.Ctx) error {
  92. id := c.Params("id")
  93. var body string
  94. if err := c.BodyParser(&body); err != nil {
  95. return Fail(c, "Invalid request body")
  96. }
  97. objID, err := primitive.ObjectIDFromHex(id)
  98. if err != nil {
  99. return Fail(c, "Invalid request para :id")
  100. }
  101. if err := services.UpdateSiteAnalysisDescription(objID, body); err != nil {
  102. return Error(c, "Database write failed. (MongoDb)")
  103. }
  104. return Success(c, body)
  105. }
  106. // 删除一个分析数据
  107. // /sitesAnalysis/manage/config/:id
  108. func DeleteOneSiteAnalysis(c *fiber.Ctx) error {
  109. id := c.Params("id")
  110. objID, err := primitive.ObjectIDFromHex(id)
  111. if err != nil {
  112. return Fail(c, "Invalid request para :id")
  113. }
  114. err = services.DeleteSiteAnalysisConfig(objID)
  115. if err != nil {
  116. return Error(c, "Database delete failed. (MongoDb)")
  117. }
  118. return NoContent(c)
  119. }
  120. // 获取指定ID的分析数据
  121. // /sitesAnalysis/data/:id
  122. func GetOneSiteAnalysisData(c *fiber.Ctx) error {
  123. id := c.Params("id")
  124. objID, err := primitive.ObjectIDFromHex(id)
  125. if err != nil {
  126. return Fail(c, "Invalid request para :id")
  127. }
  128. data, err := services.GetSiteAnalysisData(objID)
  129. if err != nil {
  130. return Error(c, "Database read failed. (MongoDb)")
  131. }
  132. return Success(c, data)
  133. }