update order status
This commit is contained in:
@@ -28,7 +28,7 @@ export class PaymentsService {
|
||||
const ctx = await this.loadAndValidateOrder(orderId);
|
||||
|
||||
// Idempotency: avoid creating/charging again for already-paid orders
|
||||
if (ctx.order.status === OrderStatus.PAID) {
|
||||
if (ctx.order.payments.find(p => p.status === PaymentStatusEnum.Paid)) {
|
||||
return { paymentUrl: null };
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ export class PaymentsService {
|
||||
const order = await em.findOne(Order, { id: ctx.order.id }, { populate: ['user', 'restaurant'] });
|
||||
if (!order) throw new NotFoundException(OrderMessage.NOT_FOUND);
|
||||
if (!order.user) throw new NotFoundException(OrderMessage.USER_NOT_FOUND);
|
||||
if (order.status === OrderStatus.PAID) {
|
||||
if (order.payments.find(p => p.status === PaymentStatusEnum.Paid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -152,7 +152,6 @@ export class PaymentsService {
|
||||
|
||||
payment.status = PaymentStatusEnum.Paid;
|
||||
payment.paidAt = new Date();
|
||||
order.status = OrderStatus.PAID;
|
||||
|
||||
em.persist([ payment, order, newWalletTransaction]);
|
||||
await em.flush();
|
||||
@@ -232,9 +231,6 @@ export class PaymentsService {
|
||||
}
|
||||
|
||||
this.markPaid(payment, result.referenceId);
|
||||
if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
|
||||
payment.order.status = OrderStatus.PAID;
|
||||
}
|
||||
|
||||
await em.flush();
|
||||
return payment;
|
||||
@@ -275,9 +271,7 @@ export class PaymentsService {
|
||||
if (payment.status === PaymentStatusEnum.Paid) {
|
||||
throw new BadRequestException(PaymentMessage.PAYMENT_ALREADY_PAID);
|
||||
}
|
||||
if (payment.order.status === OrderStatus.PENDING_PAYMENT) {
|
||||
payment.order.status = OrderStatus.PAID;
|
||||
}
|
||||
|
||||
payment.status = PaymentStatusEnum.Paid;
|
||||
payment.paidAt = new Date();
|
||||
em.persist(payment);
|
||||
|
||||
Reference in New Issue
Block a user