payment
This commit is contained in:
@@ -31,6 +31,20 @@ class PaymentRequestDto with _$PaymentRequestDto {
|
||||
paymentOrderItems:
|
||||
paymentOrderItems?.map((e) => e.toDomain()).toList() ?? const [],
|
||||
);
|
||||
|
||||
factory PaymentRequestDto.fromDomain(PaymentRequest request) =>
|
||||
PaymentRequestDto(
|
||||
orderId: request.orderId,
|
||||
paymentMethodId: request.paymentMethodId,
|
||||
amount: request.amount,
|
||||
transactionId: request.transactionId,
|
||||
splitNumber: request.splitNumber,
|
||||
splitTotal: request.splitTotal,
|
||||
splitDescription: request.splitDescription,
|
||||
paymentOrderItems: request.paymentOrderItems
|
||||
.map((e) => PaymentItemRequestDto.fromDomain(e))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
|
||||
@freezed
|
||||
@@ -48,4 +62,10 @@ class PaymentItemRequestDto with _$PaymentItemRequestDto {
|
||||
// Optional: mapper ke domain entity
|
||||
PaymentItemRequest toDomain() =>
|
||||
PaymentItemRequest(orderItemId: orderItemId ?? '', amount: amount ?? 0);
|
||||
|
||||
factory PaymentItemRequestDto.fromDomain(PaymentItemRequest request) =>
|
||||
PaymentItemRequestDto(
|
||||
orderItemId: request.orderItemId,
|
||||
amount: request.amount,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -130,4 +130,25 @@ class OrderRepository implements IOrderRepository {
|
||||
return left(const OrderFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<OrderFailure, Payment>> createPayment({
|
||||
required PaymentRequest request,
|
||||
}) async {
|
||||
try {
|
||||
final result = await _dataProvider.storePayment(
|
||||
PaymentRequestDto.fromDomain(request),
|
||||
);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
final payment = result.data!.toDomain();
|
||||
return right(payment);
|
||||
} catch (e) {
|
||||
log('createPaymentError', name: _logName, error: e);
|
||||
return left(const OrderFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user