query method
Implementation
Future<dynamic> query(String query, Object? variables, {Map<String, dynamic>? customHeaders}) async {
final HttpMetric metric = FirebasePerformance.instance.newHttpMetric(
appsUrl,
HttpMethod.Post,
);
try {
await metric.start();
// Add request attributes
var req = await client.Request(appsUrl, "POST",
auth: true, data: {"query": query, "variables": variables}, encrypt: encryptMode, customHeaders: customHeaders);
Map<String, dynamic> jsonData = req.data;
// Get the first key inside "data"
String? keyName = jsonData["data"]?.keys.first;
metric.putAttribute('api_name', "graphql/query/${keyName}");
metric.httpResponseCode = req.statusCode;
metric.responsePayloadSize = utf8.encode(req.data.toString()).length;
await metric.stop();
// print(req);
return req.data;
} catch (e) {
// print(e);
metric.putAttribute('error', e.toString());
throw (e);
}
}