getUsage method
Future<List<Map<String, dynamic>>>
getUsage(
- String projectId, {
- DateTime? start,
- DateTime? end,
- String? interval,
- String? report,
- List<String>? users,
- String? room,
- String? provider,
- String? model,
- String? usageType,
- String? client,
- Map<String, String>? annotations,
})
Implementation
Future<List<Map<String, dynamic>>> getUsage(
String projectId, {
DateTime? start,
DateTime? end,
String? interval,
String? report,
List<String>? users,
String? room,
String? provider,
String? model,
String? usageType,
String? client,
Map<String, String>? annotations,
}) async {
final encodedProjectId = Uri.encodeComponent(projectId);
final uri = Uri.parse('$baseUrl/accounts/projects/$encodedProjectId/usage');
final queryParams = <String, String>{
if (start != null) "start": start.toIso8601String(),
if (end != null) "end": end.toIso8601String(),
"interval": ?interval,
"report": ?report,
if (users != null && users.isNotEmpty) "users": users.join(","),
if (room != null && room.trim().isNotEmpty) "room": room.trim(),
if (provider != null && provider.trim().isNotEmpty) "provider": provider.trim(),
if (model != null && model.trim().isNotEmpty) "model": model.trim(),
if (usageType != null && usageType.trim().isNotEmpty) "usage_type": usageType.trim(),
if (client != null && client.trim().isNotEmpty) "client": client.trim(),
if (annotations != null && annotations.isNotEmpty) "annotations": jsonEncode(annotations),
};
final response = await httpClient.get(uri.replace(queryParameters: queryParams));
List<Map<String, dynamic>> results = [];
for (final map in (jsonDecode(response.body) as Map<String, dynamic>)["usage"]) {
results.add(map);
}
return results;
}