| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | package handlerimport (	"context"	"git.ikuban.com/server/kratos-utils/v2/transport/http/reply"	"git.ikuban.com/server/kratos-utils/v2/transport/middleware"	"github.com/go-kratos/kratos/v2/transport/http"	"google.golang.org/grpc")func unaryHandler(srv any, method grpc.MethodDesc, option *middleware.Option) http.HandlerFunc {	return func(ctx http.Context) error {		http.SetOperation(ctx, option.Path)		dec := func(in any) error {			if err := ctx.Bind(&in); err != nil {				return err			}			if err := ctx.BindQuery(&in); err != nil {				return err			}			return nil		}		httpCtx := ctx		interceptor := func(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error) {			ctx = middleware.NewOptionContext(ctx, option)			h := httpCtx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {				return handler(ctx, req)			})			return h(ctx, req)		}		out, err := method.Handler(srv, ctx, dec, interceptor)		if err != nil {			return err		}		success := &reply.SuccessReply{			Code: 0,		}		if out != nil {			success.Data = out		}		return ctx.Result(200, success)	}}
 |