Files
tm_app/lib/data/services/board_service.dart
T

55 lines
1.3 KiB
Dart

import 'dart:convert';
import '../../core/network/network_manager.dart';
import '../../core/utils/result.dart';
import 'model/board_response/board_response.dart';
class BoardService {
BoardService({required NetworkManager networkManager})
: _networkManager = networkManager;
final NetworkManager _networkManager;
static const _basePath = '/admin/v1/kanban/kanban';
Future<Result<BoardResponse>> getBoard() async {
return _networkManager.makeRequest(
'$_basePath/boards/default',
(json) => BoardResponse.fromJson(json),
method: 'GET',
);
}
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,
);
}
}
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?,
);
}
}