From a97e0dbe62b89ec9bfe53fc5c9a6dba6b4eb338d Mon Sep 17 00:00:00 2001 From: hunteraraujo Date: Thu, 14 Sep 2023 20:07:18 -0700 Subject: [PATCH] Integrate BenchmarkService into SkillTreeViewModel with Incomplete Methods This commit extends the `SkillTreeViewModel` to include `BenchmarkService` as a dependency. This integration allows for leveraging benchmark-related API calls within the skill tree logic. Two new methods have been added to `SkillTreeViewModel`: 1. `callGenerateReport`: This method attempts to call the `generateReport` function from the `BenchmarkService`. Currently, it only prints the API response and is incomplete in terms of full functionality. 2. `callPollUpdates`: Similar to `callGenerateReport`, this method aims to call `pollUpdates` from `BenchmarkService` and prints the API response. This is also incomplete and will require further development. Both methods are preliminary and will require additional features to become fully functional. --- .../lib/viewmodels/skill_tree_viewmodel.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/frontend/lib/viewmodels/skill_tree_viewmodel.dart b/frontend/lib/viewmodels/skill_tree_viewmodel.dart index 02a67eb67..b8f77daa3 100644 --- a/frontend/lib/viewmodels/skill_tree_viewmodel.dart +++ b/frontend/lib/viewmodels/skill_tree_viewmodel.dart @@ -1,12 +1,16 @@ import 'dart:convert'; +import 'package:auto_gpt_flutter_client/models/benchmark_service/report_request_body.dart'; import 'package:auto_gpt_flutter_client/models/skill_tree/skill_tree_edge.dart'; import 'package:auto_gpt_flutter_client/models/skill_tree/skill_tree_node.dart'; +import 'package:auto_gpt_flutter_client/services/benchmark_service.dart'; import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:graphview/GraphView.dart'; class SkillTreeViewModel extends ChangeNotifier { + final BenchmarkService benchmarkService; + List _skillTreeNodes = []; List _skillTreeEdges = []; SkillTreeNode? _selectedNode; @@ -18,6 +22,8 @@ class SkillTreeViewModel extends ChangeNotifier { final Graph graph = Graph()..isTree = true; BuchheimWalkerConfiguration builder = BuchheimWalkerConfiguration(); + SkillTreeViewModel(this.benchmarkService); + Future initializeSkillTree() async { try { resetState(); @@ -119,6 +125,26 @@ class SkillTreeViewModel extends ChangeNotifier { } } +// TODO: Update to actual implementation + Future callGenerateReport(ReportRequestBody reportRequestBody) async { + try { + final result = await benchmarkService.generateReport(reportRequestBody); + print("Report generated: $result"); + } catch (e) { + print("Failed to generate report: $e"); + } + } + +// TODO: Update to actual implementation + Future callPollUpdates(int lastUpdateTime) async { + try { + final result = await benchmarkService.pollUpdates(lastUpdateTime); + print("Updates polled: $result"); + } catch (e) { + print("Failed to poll updates: $e"); + } + } + // Getter to expose nodes for the View List get skillTreeNodes => _skillTreeNodes;