getCurrentUserLlmProxyUsage method
Implementation
Future<List<Map<String, dynamic>>> getCurrentUserLlmProxyUsage(
String projectId, {
DateTime? start,
DateTime? end,
String? interval,
}) async {
final encodedProjectId = Uri.encodeComponent(projectId);
final uri = Uri.parse('$baseUrl/accounts/projects/$encodedProjectId/llm-proxy/usage');
final queryParameters = <String, String>{
if (start != null) "start": start.toIso8601String(),
if (end != null) "end": end.toIso8601String(),
"interval": ?interval,
};
final response = await httpClient.get(uri.replace(queryParameters: queryParameters.isEmpty ? null : queryParameters));
if (response.statusCode == 403) {
throw ForbiddenException(
'User does not have LLM proxy access to this project. Status code: ${response.statusCode}, body: ${response.body}',
);
}
if (response.statusCode >= 400) {
throw MeshagentException(
'Failed to retrieve current user LLM proxy usage. Status code: ${response.statusCode}, body: ${response.body}',
);
}
final data = jsonDecode(response.body) as Map<String, dynamic>;
final list = data["usage"] as List<dynamic>? ?? [];
return list.whereType<Map<String, dynamic>>().toList();
}