yjp 9 månader sedan
förälder
incheckning
ec497cc3e9
2 ändrade filer med 56 tillägg och 0 borttagningar
  1. 29 0
      grpc_client/middleware/logger.go
  2. 27 0
      grpc_client/middleware/middleware.go

+ 29 - 0
grpc_client/middleware/logger.go

@@ -0,0 +1,29 @@
+package middleware
+
+import (
+	"context"
+	"git.sxidc.com/service-supports/fslog"
+	"google.golang.org/grpc"
+)
+
+func UnaryServerFsLogInterceptor() grpc.UnaryServerInterceptor {
+	return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
+		resp, err := handler(ctx, req)
+		if err != nil {
+			fslog.Error(err)
+		}
+
+		return resp, err
+	}
+}
+
+func StreamServerFsLogInterceptor() grpc.StreamServerInterceptor {
+	return func(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
+		err := handler(srv, stream)
+		if err != nil {
+			fslog.Error(err)
+		}
+
+		return err
+	}
+}

+ 27 - 0
grpc_client/middleware/middleware.go

@@ -0,0 +1,27 @@
+package middleware
+
+import (
+	"github.com/grpc-ecosystem/go-grpc-middleware"
+	"github.com/grpc-ecosystem/go-grpc-middleware/recovery"
+	"github.com/grpc-ecosystem/go-grpc-middleware/tags"
+	"github.com/grpc-ecosystem/go-grpc-middleware/validator"
+	"google.golang.org/grpc"
+)
+
+func GetStreamMiddleware() grpc.ServerOption {
+	return grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
+		grpc_ctxtags.StreamServerInterceptor(),
+		grpc_validator.StreamServerInterceptor(),
+		StreamServerFsLogInterceptor(),
+		grpc_recovery.StreamServerInterceptor(),
+	))
+}
+
+func GetUnaryMiddleware() grpc.ServerOption {
+	return grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
+		grpc_ctxtags.UnaryServerInterceptor(),
+		grpc_validator.UnaryServerInterceptor(),
+		UnaryServerFsLogInterceptor(),
+		grpc_recovery.UnaryServerInterceptor(),
+	))
+}