From bda3b8b649bd35214258a7ae57e24f2b5f31dfb9 Mon Sep 17 00:00:00 2001 From: hunteraraujo Date: Sat, 2 Sep 2023 15:21:52 -0700 Subject: [PATCH] Refactor service classes to use api.get and handle structured responses This commit updates the ChatService and TaskService classes to use the api.get method instead of the previous api.getList. This change allows us to handle structured API responses more effectively, particularly those containing pagination information and detailed task and step data. - Update ChatService methods to use api.get - Update TaskService methods to use api.get - Handle structured TaskResponse in TaskService.listAllTasks --- lib/services/chat_service.dart | 4 ++-- lib/services/task_service.dart | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/services/chat_service.dart b/lib/services/chat_service.dart index 1d247c1b..98f9972d 100644 --- a/lib/services/chat_service.dart +++ b/lib/services/chat_service.dart @@ -39,10 +39,10 @@ class ChatService { /// /// [taskId] is the ID of the task. /// [currentPage] and [pageSize] are optional pagination parameters. - Future> listTaskSteps(String taskId, + Future> listTaskSteps(String taskId, {int currentPage = 1, int pageSize = 10}) async { try { - return await api.getList( + return await api.get( 'agent/tasks/$taskId/steps?current_page=$currentPage&page_size=$pageSize'); } catch (e) { throw Exception('Failed to list task steps: $e'); diff --git a/lib/services/task_service.dart b/lib/services/task_service.dart index 0e4c68b1..30ba4094 100644 --- a/lib/services/task_service.dart +++ b/lib/services/task_service.dart @@ -1,4 +1,5 @@ import 'package:auto_gpt_flutter_client/models/task_request_body.dart'; +import 'package:auto_gpt_flutter_client/models/task_response.dart'; import 'package:auto_gpt_flutter_client/utils/rest_api_utility.dart'; /// Service class for performing task-related operations. @@ -23,11 +24,12 @@ class TaskService { /// /// [currentPage] and [pageSize] are optional pagination parameters. /// - Future> listAllTasks( + Future listAllTasks( {int currentPage = 1, int pageSize = 10}) async { try { - return await api - .getList('agent/tasks?current_page=$currentPage&page_size=$pageSize'); + final response = await api + .get('agent/tasks?current_page=$currentPage&page_size=$pageSize'); + return TaskResponse.fromJson(response); } catch (e) { throw Exception('Failed to list all tasks: $e'); } @@ -48,10 +50,10 @@ class TaskService { /// /// [taskId] is the ID of the task. /// [currentPage] and [pageSize] are optional pagination parameters. - Future> listTaskArtifacts(String taskId, + Future> listTaskArtifacts(String taskId, {int currentPage = 1, int pageSize = 10}) async { try { - return await api.getList( + return await api.get( 'agent/tasks/$taskId/artifacts?current_page=$currentPage&page_size=$pageSize'); } catch (e) { throw Exception('Failed to list task artifacts: $e');