interceptUnary<TRequest, TResponse> method

  1. @override
Future<TResponse> interceptUnary<TRequest, TResponse>(
  1. RpcMiddlewareContext call,
  2. TRequest request,
  3. RpcUnaryNext<TRequest, TResponse> next
)

Unary call interceptor.

Implementations may mutate context/request and must call next to continue. For pass-through, call return next(call.context, request);.

Implementation

@override
Future<TResponse> interceptUnary<TRequest, TResponse>(
  RpcMiddlewareContext call,
  TRequest request,
  RpcUnaryNext<TRequest, TResponse> next,
) async {
  final sw = Stopwatch()..start();
  try {
    final res = await next(call.context, request);
    _record(call: call, callType: 'unary', sw: sw, success: true);
    return res;
  } catch (e) {
    _record(call: call, callType: 'unary', sw: sw, success: false, error: e);
    rethrow;
  }
}