package threadlocal

import (
	"context"

	"google.golang.org/grpc"
)

func UnaryServerInterceptor() grpc.UnaryServerInterceptor {
	return func(
		ctx context.Context,
		req interface{},
		info *grpc.UnaryServerInfo,
		handler grpc.UnaryHandler,
	) (interface{}, error) {
		SetContext(ctx)
		resp, err := handler(ctx, req)
		DeleteContext()
		return resp, err
	}
}
