package api import ( "net/http" "strconv" jwt "github.com/appleboy/gin-jwt/v2" "github.com/gin-gonic/gin" "joylink.club/bj-rtsts-server/dto" "joylink.club/bj-rtsts-server/middleware" "joylink.club/bj-rtsts-server/service" "joylink.club/bj-rtsts-server/sys_error" ) func InitProjectRunConfigRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { authed := api.Group("/v1/runconfig").Use(authMiddleware.MiddlewareFunc(), middleware.PermissMiddleware) authed.GET("/paging", pageQueryProjectRunConfig) authed.GET("/list", listQueryProjectRunConfig) authed.POST("", createProjectRunConfig) authed.GET("/:id", queryProjectRunConfig) authed.PUT("/:id", updateProjectRunConfig) authed.DELETE("/:id", deleteProjectRunConfig) } // 分页查询项目运行环境配置信息 // // @Summary 分页查询项目运行环境配置信息 // // @Security JwtAuth // // @Description 可以通过项目名称过滤,分页查询项目运行环境配置信息 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Param PageProjectRunConfigReqDto query dto.PageProjectRunConfigReqDto true "运行环境配置查询条件带分页信息" // @Success 200 {object} dto.PageDto // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig/paging [get] func pageQueryProjectRunConfig(c *gin.Context) { req := dto.PageProjectRunConfigReqDto{} if err := c.ShouldBind(&req); err != nil { panic(sys_error.New("查询失败,参数格式错误", err)) } c.JSON(http.StatusOK, service.PageProjectRunConfigQuery(&req)) } // 查询项目运行环境配置信息列表 // // @Summary 查询项目运行环境配置信息列表 // // @Security JwtAuth // // @Description 无参数,查询项目运行环境配置列表 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Success 200 {object} dto.ProjectRunConfigDto // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig/list [get] func listQueryProjectRunConfig(c *gin.Context) { c.JSON(http.StatusOK, service.ListProjectRunConfigQuery()) } // 创建项目运行环境配置信息 // // @Summary 创建项目运行环境配置信息 // // @Security JwtAuth // // @Description 创建项目运行环境配置数据 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Param ProjectRunConfigReqDto query dto.ProjectRunConfigReqDto true "创建的项目运行环境配置信息" // @Success 200 {object} nil // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig [post] func createProjectRunConfig(c *gin.Context) { req := dto.ProjectRunConfigReqDto{} if err := c.ShouldBind(&req); err != nil { panic(sys_error.New("创建失败,参数格式错误", err)) } c.JSON(http.StatusOK, service.CreateProjectRunConfig(&req)) } // 查询项目运行环境信息 // // @Summary 查询项目运行环境信息 // // @Security JwtAuth // // @Description 查询项目运行环境信息 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Param id path int true "项目运行环境ID" // @Success 200 {object} dto.ProjectRunConfigDto // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig/{id} [get] func queryProjectRunConfig(c *gin.Context) { id, exist := c.Params.Get("id") if !exist { panic(sys_error.New("查询失败,缺少主键")) } intId, _ := strconv.Atoi(id) c.JSON(http.StatusOK, service.QueryProjectRunConfig(int32(intId))) } // 修改项目运行环境信息 // // @Summary 修改项目运行环境信息 // // @Security JwtAuth // // @Description 修改项目运行环境信息 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Param id path int true "项目运行环境信息ID" // @Param ProjectDto query dto.ProjectDto true "修改的项目信息" // @Success 200 {object} nil // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig/{id} [put] func updateProjectRunConfig(c *gin.Context) { id, exist := c.Params.Get("id") if !exist { panic(sys_error.New("更新失败,缺少主键")) } req := dto.ProjectRunConfigReqDto{} if err := c.ShouldBind(&req); err != nil { panic(sys_error.New("更新失败,参数格式错误", err)) } intId, _ := strconv.Atoi(id) c.JSON(http.StatusOK, service.UpdateProjectRunConfig(int32(intId), &req)) } // 删除项目运行环境信息 // // @Summary 删除项目运行环境信息 // // @Security JwtAuth // // @Description 删除项目运行环境信息 // @Tags 项目运行环境配置Api // @Accept json // @Produce json // @Param id path int true "项目运行环境信息ID" // @Success 200 {object} nil // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto // @Router /api/v1/runconfig/{id} [delete] func deleteProjectRunConfig(c *gin.Context) { idStr := c.Param("id") id, err := strconv.Atoi(idStr) if err != nil { panic(sys_error.New("删除失败,缺少主键")) } service.DeleteProjectRunConfigById(int32(id)) c.JSON(http.StatusOK, true) }