MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / WrapQuery

Function WrapQuery

pkg/ginp/wrapper.go:53–71  ·  view source on GitHub ↗
(bizFn func(ctx *gin.Context, req Req) (Result, error))

Source from the content-addressed store, hash-verified

51}
52
53func WrapQuery[Req any](bizFn func(ctx *gin.Context, req Req) (Result, error)) gin.HandlerFunc {
54 return func(ctx *gin.Context) {
55 var req Req
56 if err := ctx.ShouldBindQuery(&req); err != nil {
57 apiresponse.BadRequestError(ctx, "无效的查询参数")
58 return
59 }
60 res, err := bizFn(ctx, req)
61 if err != nil {
62 apiresponse.InternalServerErrorWithDetails(ctx, gin.H{"error": err.Error()}, res.Msg)
63 return
64 }
65 ctx.JSON(http.StatusOK, apiresponse.ApiResponse{
66 Code: res.Code,
67 Data: res.Data,
68 Message: res.Msg,
69 })
70 }
71}
72
73// WrapNoParam 是一个中间件,用于包裹不需要请求参数的业务逻辑函数,处理响应并集中管理错误处理。
74func WrapNoParam(bizFn func(ctx *gin.Context) (Result, error)) gin.HandlerFunc {

Callers 3

RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85
RegisterRoutesMethod · 0.85

Calls 2

BadRequestErrorFunction · 0.92

Tested by

no test coverage detected