55 lines
1.3 KiB
Dart
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?,
|
|
);
|
|
}
|
|
}
|