package api import ( jwt "github.com/appleboy/gin-jwt/v2" "github.com/gin-gonic/gin" "go.uber.org/zap" "joylink.club/bj-rtsts-server/db/model" "joylink.club/bj-rtsts-server/dto" "joylink.club/bj-rtsts-server/middleware" "joylink.club/bj-rtsts-server/service" "net/http" "strconv" ) func InitPublishedGiRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { authed := api.Group("/v1/publishedGi").Use(authMiddleware.MiddlewareFunc()) authed.GET("/paging", pageQueryPublishedGi) authed.GET("/list", listQueryPublishedGi) authed.GET("/:id", getPublishedGiById) authed.POST("/publish", publishFromDraft) authed.DELETE("/:id", deletePublishedGiById) } // 分页查询发布的图形数据 // // @Summary 分页查询发布的图形数据 // // @Security JwtAuth // // @Description 可以通过名称过滤 // @Tags 发布的图形数据Api // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" // @Param pagePublishedGiReqDto query dto.PublishedGiReqDto true "分页查询参数" // @Success 200 {object} dto.PageDto // @Failure 401 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/publishedGi/paging [get] func pageQueryPublishedGi(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) zap.S().Debug("分页查询发布的图形数据", user) req := dto.PublishedGiReqDto{} if err := c.ShouldBind(&req); err != nil { //zap.S().Warn("分页查询参数绑定错误,使用默认参数", err) req.Default() } zap.S().Debug("分页查询发布的图形数据", req) page, err := service.PageQueryPublishedGi(&req) if err != nil { panic(err) } c.JSON(http.StatusOK, page) } // 列表查询发布的图形数据 // // @Summary 列表查询发布的图形数据 // // @Security JwtAuth // // @Description 可以通过名称过滤 // @Tags 发布的图形数据Api // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" // @Param pagePublishedGiReqDto query dto.PublishedGiReqDto true "查询参数" // @Success 200 {object} []model.PublishedGi // @Failure 401 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/publishedGi/list [get] func listQueryPublishedGi(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) zap.S().Debug("列表查询发布的图形数据", user) req := dto.PublishedGiReqDto{} if err := c.ShouldBind(&req); err != nil { zap.S().Warn("列表查询参数绑定错误", err) } zap.S().Debug("列表查询发布的图形数据", req) list, err := service.ListQueryPublishedGi(&req) if err != nil { panic(err) } c.JSON(http.StatusOK, list) } // id 查询发布的图形数据 // // @Summary id查询发布的图形数据 // // @Security JwtAuth // // @Description 可以通过名称过滤 // @Tags 发布的图形数据Api // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" // @Param id path int true "id" // @Success 200 {object} model.PublishedGi // @Failure 401 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/publishedGi/{id} [get] func getPublishedGiById(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) zap.S().Debug("id查询发布的图形数据", user) idStr := c.Param("id") id, err := strconv.Atoi(idStr) if err != nil { panic("id参数解析错误") } zap.S().Debug("id查询发布的图形数据", id) entity, err := service.GetPublishedGiById(id) if err != nil { panic(err) } c.JSON(http.StatusOK, entity) } // 从草稿发布数据 // // @Summary 从草稿发布数据 // // @Security JwtAuth // // @Description // @Tags 发布的图形数据Api // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" // @Param PublishReqDto query dto.PublishReqDto true "查询参数" // @Success 200 // @Failure 401 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/publishedGi/publish [post] func publishFromDraft(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) zap.S().Debug("发布图形数据", user) req := dto.PublishReqDto{} if err := c.ShouldBind(&req); err != nil { zap.S().Warn("发布图形数据参数绑定错误", err) } zap.S().Debug("发布图形数据请求参数", req) service.PublishFormDraft(&req, user.(*model.User)) } // id 删除发布的图形数据 // // @Summary id删除发布的图形数据 // // @Security JwtAuth // // @Description 可以通过名称过滤 // @Tags 发布的图形数据Api // @Accept json // @Produce json // @Param Authorization header string true "JWT Token" // @Param id path int true "id" // @Success 200 {object} nil // @Failure 401 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/publishedGi/{id} [delete] func deletePublishedGiById(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) zap.S().Debug("id删除发布的图形数据", user) idStr := c.Param("id") id, err := strconv.Atoi(idStr) if err != nil { panic("id参数解析错误") } zap.S().Debug("id查询发布的图形数据", id) service.DeletePublishedGiById(id) }