first commit

This commit is contained in:
zzw
2026-08-05 17:37:32 +08:00
commit 38be479cef
72 changed files with 15670 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
package validate
import (
"context"
"buf.build/go/protovalidate"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/proto"
)
// UnaryServerInterceptor runs protovalidate on every unary request before logic.
func UnaryServerInterceptor(v protovalidate.Validator) grpc.UnaryServerInterceptor {
return func(
ctx context.Context,
req any,
_ *grpc.UnaryServerInfo,
handler grpc.UnaryHandler,
) (any, error) {
if msg, ok := req.(proto.Message); ok {
if err := v.Validate(msg); err != nil {
return nil, status.Error(codes.InvalidArgument, err.Error())
}
}
return handler(ctx, req)
}
}
// MustNew creates a Validator or panics.
func MustNew() protovalidate.Validator {
v, err := protovalidate.New()
if err != nil {
panic(err)
}
return v
}