onRequest method

  1. @override
Future onRequest(
  1. Request request,
  2. HasuraConnect connect
)

Receives a request and a HasuraConnect builds and starts a HttpMetric. it returns an onRequest.

Implementation

@override
  Future onRequest(Request request, HasuraConnect connect) async {
    try {
      final metric = FirebasePerformance.instance.newHttpMetric(
        request.url.replaceAll('_', '-'),
        HttpMethod.Post,
      )..requestPayloadSize = request.query.document.length;
      final size = request.query.document.indexOf('{');
      metric.putAttribute(
        'query',
        request.query.document.substring(0, size > 39 ? 39 : size),
      );
      _mapMetric[request.query.hashCode] = metric;
      await metric.start();
    } catch (e, stackTrace) {
      debugPrintStack(
        label: e.toString(),
        stackTrace: stackTrace,
      );
    }
    return super.onRequest(request, connect);
  }