/* * 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 controllers import ( "fwh-toolbox-server/domain" "fwh-toolbox-server/services" "strconv" "github.com/gofiber/fiber/v2" "go.mongodb.org/mongo-driver/bson/primitive" ) // 获取站点分析管理名称表 // /sitesAnalysis/manage/analysisList func GetSitesAnalysisList(c *fiber.Ctx) error { pageInt, _ := strconv.Atoi(c.Query("pageNum", "1")) sizeInt, _ := strconv.Atoi(c.Query("pageSize", "20")) if pageInt <= 0 || sizeInt <= 0 { return Fail(c, "Invalid request para") } sn := c.Query("sn", "") progress := c.Query("progress", "") trigger := c.Query("trigger", "") var p_sn *string = nil if sn != "" { p_sn = &sn } var p_progress *string = nil if progress != "" { p_progress = &progress } var p_trigger *string = nil if trigger != "" { p_trigger = &trigger } listPage, err := services.GetSiteAnalysisManageList(uint(pageInt), uint(sizeInt), p_sn, p_progress, p_trigger) if err != nil { return Error(c, "Database read failed. (MongoDb)") } return Success(c, listPage) } // 创建一个分析配置 // /sitesAnalysis/manage/config func CreateSitesAnalysis(c *fiber.Ctx) error { var body domain.SiteAnalysisConfigWrite if err := c.BodyParser(&body); err != nil { return Fail(c, "Invalid request body") } if err := services.InsertSiteAnalysisConfig(body); err != nil { return Error(c, "Database write failed. (MongoDb)") } return Success(c, body) } // 获取单个分析配置 // /sitesAnalysis/manage/config/:id func GetOneSiteAnalysisConfig(c *fiber.Ctx) error { id := c.Params("id") objID, err := primitive.ObjectIDFromHex(id) if err != nil { return Fail(c, "Invalid request para :id") } config, err := services.GetSiteAnalysisConfig(objID) if err != nil { return Error(c, "Database read failed. (MongoDb)") } return Success(c, config) } // 更新一个分析配置 // /sitesAnalysis/manage/config/:id func UpdateOneSiteAnalysisConfig(c *fiber.Ctx) error { id := c.Params("id") var body domain.SiteAnalysisConfigWrite if err := c.BodyParser(&body); err != nil { return Fail(c, "Invalid request body") } objID, err := primitive.ObjectIDFromHex(id) if err != nil { return Fail(c, "Invalid request para :id") } if err := services.UpdateSiteAnalysisConfig(objID, body); err != nil { return Error(c, "Database write failed. (MongoDb)") } return Success(c, body) } // 更新一个分析配置 // /sitesAnalysis/manage/description/:id func UpdateOneSiteAnalysisDescription(c *fiber.Ctx) error { id := c.Params("id") var body string if err := c.BodyParser(&body); err != nil { return Fail(c, "Invalid request body") } objID, err := primitive.ObjectIDFromHex(id) if err != nil { return Fail(c, "Invalid request para :id") } if err := services.UpdateSiteAnalysisDescription(objID, body); err != nil { return Error(c, "Database write failed. (MongoDb)") } return Success(c, body) } // 删除一个分析数据 // /sitesAnalysis/manage/config/:id func DeleteOneSiteAnalysis(c *fiber.Ctx) error { id := c.Params("id") objID, err := primitive.ObjectIDFromHex(id) if err != nil { return Fail(c, "Invalid request para :id") } err = services.DeleteSiteAnalysisConfig(objID) if err != nil { return Error(c, "Database delete failed. (MongoDb)") } return NoContent(c) } // 获取指定ID的分析数据 // /sitesAnalysis/data/:id func GetOneSiteAnalysisData(c *fiber.Ctx) error { id := c.Params("id") objID, err := primitive.ObjectIDFromHex(id) if err != nil { return Fail(c, "Invalid request para :id") } data, err := services.GetSiteAnalysisData(objID) if err != nil { return Error(c, "Database read failed. (MongoDb)") } return Success(c, data) }