blob: 647920689e7f849628f9f65d77fd96069efa1a0c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package intercept
import (
"context"
"log/slog"
"github.com/ChausseBenjamin/rafta/internal/logging"
"github.com/ChausseBenjamin/rafta/internal/util"
"github.com/hashicorp/go-uuid"
"google.golang.org/grpc"
)
// gRPC interceptor to tag requests with a unique identifier
func Tagging(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
id, err := uuid.GenerateUUID()
if err != nil {
slog.Error("Unable to generate UUID for request", logging.ErrKey, err)
}
ctx = context.WithValue(ctx, util.ReqIDKey, id)
slog.DebugContext(ctx, "Tagging request with UUID", "value", id)
return handler(ctx, req)
}
|