Add LeaderboardService with submitReport Method

This commit adds a new `LeaderboardService` class featuring a `submitReport` method. This method allows for the submission of `BenchmarkRun` objects to the leaderboard via a POST request to the `/api/reports` endpoint. The new service uses the `ApiType.leaderboard` enum value.
This commit is contained in:
hunteraraujo
2023-09-20 14:38:48 -07:00
parent fe96664afb
commit a0512254ca

View File

@@ -0,0 +1,24 @@
import 'package:auto_gpt_flutter_client/models/benchmark/api_type.dart';
import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_run.dart';
import 'package:auto_gpt_flutter_client/utils/rest_api_utility.dart';
class LeaderboardService {
final RestApiUtility api;
LeaderboardService(this.api);
/// Submits a benchmark report to the leaderboard.
///
/// [benchmarkRun] is a BenchmarkRun object representing the data of a completed benchmark.
Future<Map<String, dynamic>> submitReport(BenchmarkRun benchmarkRun) async {
try {
return await api.post(
'api/reports',
benchmarkRun.toJson(),
apiType: ApiType.leaderboard,
);
} catch (e) {
throw Exception('Failed to submit the report to the leaderboard: $e');
}
}
}