mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-28 11:24:30 +01:00
This commit adds a new TaskService class to handle all task-related operations, including task creation, listing, and artifacts management. - Implemented methods for creating a new task (createTask). - Added functionality to retrieve details for a specific task (getTaskDetails). - Enabled listing all tasks with optional pagination (listAllTasks). - Enabled listing all artifacts for a specific task with optional pagination (listTaskArtifacts). By encapsulating these operations within the TaskService class, this commit provides a clean and centralized way to interact with the backend for task functionalities, making the application more maintainable and easier to extend.
61 lines
1.8 KiB
Dart
61 lines
1.8 KiB
Dart
import 'package:auto_gpt_flutter_client/models/task_request_body.dart';
|
|
import 'package:auto_gpt_flutter_client/utils/rest_api_utility.dart';
|
|
|
|
/// Service class for performing task-related operations.
|
|
class TaskService {
|
|
final RestApiUtility api;
|
|
|
|
TaskService(this.api);
|
|
|
|
/// Creates a new task.
|
|
///
|
|
/// [taskRequestBody] is a Map representing the request body for creating a task.
|
|
Future<Map<String, dynamic>> createTask(
|
|
TaskRequestBody taskRequestBody) async {
|
|
try {
|
|
return await api.post('agent/tasks', taskRequestBody.toJson());
|
|
} catch (e) {
|
|
throw Exception('Failed to create a new task: $e');
|
|
}
|
|
}
|
|
|
|
/// Lists all tasks.
|
|
///
|
|
/// [currentPage] and [pageSize] are optional pagination parameters.
|
|
///
|
|
Future<List<dynamic>> listAllTasks(
|
|
{int currentPage = 1, int pageSize = 10}) async {
|
|
try {
|
|
return await api
|
|
.getList('agent/tasks?current_page=$currentPage&page_size=$pageSize');
|
|
} catch (e) {
|
|
throw Exception('Failed to list all tasks: $e');
|
|
}
|
|
}
|
|
|
|
/// Gets details about a specific task.
|
|
///
|
|
/// [taskId] is the ID of the task.
|
|
Future<Map<String, dynamic>> getTaskDetails(String taskId) async {
|
|
try {
|
|
return await api.get('agent/tasks/$taskId');
|
|
} catch (e) {
|
|
throw Exception('Failed to get task details: $e');
|
|
}
|
|
}
|
|
|
|
/// Lists all artifacts for a specific task.
|
|
///
|
|
/// [taskId] is the ID of the task.
|
|
/// [currentPage] and [pageSize] are optional pagination parameters.
|
|
Future<List<dynamic>> listTaskArtifacts(String taskId,
|
|
{int currentPage = 1, int pageSize = 10}) async {
|
|
try {
|
|
return await api.getList(
|
|
'agent/tasks/$taskId/artifacts?current_page=$currentPage&page_size=$pageSize');
|
|
} catch (e) {
|
|
throw Exception('Failed to list task artifacts: $e');
|
|
}
|
|
}
|
|
}
|