This commit is contained in:
efrilm
2025-10-31 14:33:02 +07:00
parent bf43c398d2
commit 8d9e622121
24 changed files with 3054 additions and 79 deletions
@@ -1,5 +1,6 @@
import 'dart:developer';
import 'package:dartz/dartz.dart';
import 'package:data_channel/data_channel.dart';
import 'package:injectable/injectable.dart';
import 'package:intl/intl.dart';
@@ -202,4 +203,37 @@ class OrderRemoteDataProvider {
return DC.error(OrderFailure.serverError(e));
}
}
Future<DC<OrderFailure, Unit>> voidOrder({
required String orderId,
required String reason,
String type = "ITEM", // TYPE: ALL, ITEM
required List<OrderItemDto> orderItems,
}) async {
try {
final response = await _apiClient.post(
'${ApiPath.orders}/void',
data: {
'order_id': orderId,
'type': orderItems.isEmpty ? "ALL" : type,
'reason': reason,
"items": orderItems
.map(
(item) => {'order_item_id': item.id, "quantity": item.quantity},
)
.toList(),
},
headers: getAuthorizationHeader(),
);
if (response.data['success'] == false) {
return DC.error(OrderFailure.unexpectedError());
}
return DC.data(unit);
} on ApiFailure catch (e, s) {
log('voidOrderError', name: _logName, error: e, stackTrace: s);
return DC.error(OrderFailure.serverError(e));
}
}
}