Remove TaskStatus enum and related extensions, refactor BoardService and BoardResponse models for improved API integration, and update BoardViewModel to handle card movements between columns. Adjust UI components to reflect these changes and enhance error handling for card operations.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import '../../../core/network/network_manager.dart';
|
||||
import '../../core/config/app_config.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
import '../../core/network/network_manager.dart';
|
||||
import '../../core/utils/result.dart';
|
||||
import 'model/board_response/board_response.dart';
|
||||
|
||||
@@ -9,72 +10,45 @@ class BoardService {
|
||||
|
||||
final NetworkManager _networkManager;
|
||||
|
||||
static const _basePath = '/admin/v1/kanban/kanban';
|
||||
|
||||
Future<Result<BoardResponse>> getBoard() async {
|
||||
final uri = '${AppConfig.apiBaseUrl}/api/v1/board';
|
||||
await Future.delayed(const Duration(seconds: 2));
|
||||
return _networkManager.makeRequest(
|
||||
'$_basePath/boards/default',
|
||||
(json) => BoardResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
}
|
||||
|
||||
// final result = await _networkManager.makeRequest(
|
||||
// uri,
|
||||
// (json) => BoardResponse.fromJson(json),
|
||||
// method: 'GET',
|
||||
// );
|
||||
// return result;
|
||||
|
||||
return Result.ok(
|
||||
BoardResponse(
|
||||
success: true,
|
||||
message: 'Board data fetched successfully',
|
||||
data: tasks,
|
||||
error: null,
|
||||
),
|
||||
Future<Result<MoveCardResponse>> moveCard({
|
||||
required String cardId,
|
||||
required String columnId,
|
||||
required int newOrder,
|
||||
}) async {
|
||||
final body = jsonEncode({
|
||||
'card_id': cardId,
|
||||
'column_id': columnId,
|
||||
'new_order': newOrder,
|
||||
});
|
||||
return _networkManager.makeRequest(
|
||||
'$_basePath/cards/move',
|
||||
(json) => MoveCardResponse.fromJson(json),
|
||||
method: 'PUT',
|
||||
data: body,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
List<BoardData> tasks = [
|
||||
BoardData(
|
||||
id: '1',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
|
||||
deadline: DateTime(2025, 6, 15),
|
||||
assignedTo: 'Pratyush Tewari',
|
||||
isReady: false,
|
||||
status: 'toDo',
|
||||
),
|
||||
BoardData(
|
||||
id: '2',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
|
||||
deadline: DateTime(2025, 6, 15),
|
||||
assignedTo: 'Pratyush Tewari',
|
||||
isReady: true,
|
||||
status: 'toDo',
|
||||
),
|
||||
BoardData(
|
||||
id: '3',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
|
||||
deadline: DateTime(2025, 6, 15),
|
||||
assignedTo: 'Pratyush Tewari',
|
||||
isReady: false,
|
||||
status: 'inProgress',
|
||||
),
|
||||
BoardData(
|
||||
id: '4',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
|
||||
deadline: DateTime(2025, 6, 15),
|
||||
assignedTo: 'Pratyush Tewari',
|
||||
isReady: true,
|
||||
status: 'inProgress',
|
||||
),
|
||||
BoardData(
|
||||
id: '5',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
|
||||
deadline: DateTime(2025, 6, 15),
|
||||
assignedTo: 'Pratyush Tewari',
|
||||
isReady: false,
|
||||
status: 'done',
|
||||
),
|
||||
];
|
||||
class MoveCardResponse {
|
||||
MoveCardResponse({required this.success, required this.message});
|
||||
|
||||
final bool? success;
|
||||
final String? message;
|
||||
|
||||
factory MoveCardResponse.fromJson(Map<String, dynamic> json) {
|
||||
return MoveCardResponse(
|
||||
success: json['success'] as bool?,
|
||||
message: json['message'] as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user