emitAnalytics method
Emits analytics data to the Optimus API.
Implementation
Future<void> emitAnalytics(Map<String, dynamic> request) async {
final body = convert.jsonEncode(request);
final response = await _client.post(
Uri.https(_apiEndpoint, pushAnalyticsUrl),
headers: _getJsonHeaders(),
body: body,
encoding: const convert.Utf8Codec(),
);
final res = Response.fromJson(
convert.jsonDecode(response.body) as Map<String, dynamic>,
);
logRequest(path: pushAnalyticsUrl, message: body);
logResponse(
path: pushAnalyticsUrl,
responseCode: response.statusCode,
responseBody: response.body,
);
if (response.statusCode != 200 || !res.success) {
throw ClientException(
res.message.isNotEmpty
? res.message
: 'Something went wrong while calling Optimus analytics API',
response.statusCode,
);
}
}