chore(order): cancel order (#7586)

This commit is contained in:
Carlos R. L. Rodrigues
2024-06-03 12:31:33 -03:00
committed by GitHub
parent fdd9022376
commit 122186a78d
42 changed files with 945 additions and 116 deletions

View File

@@ -410,7 +410,9 @@ moduleIntegrationTestRunner({
confirmed_by: "cx_agent_123",
})
expect(service.confirmOrderChange(orderChange.id)).rejects.toThrowError(
await expect(
service.confirmOrderChange(orderChange.id)
).rejects.toThrowError(
`Order Change cannot be modified: ${orderChange.id}`
)
@@ -579,9 +581,9 @@ moduleIntegrationTestRunner({
canceled_by: "cx_agent_123",
})
expect(service.cancelOrderChange(orderChange.id)).rejects.toThrowError(
"Order Change cannot be modified"
)
await expect(
service.cancelOrderChange(orderChange.id)
).rejects.toThrowError("Order Change cannot be modified")
await service.declineOrderChange({
id: orderChange2.id,
@@ -589,7 +591,7 @@ moduleIntegrationTestRunner({
declined_reason: "changed my mind",
})
expect(
await expect(
service.declineOrderChange(orderChange2.id)
).rejects.toThrowError("Order Change cannot be modified")

View File

@@ -2753,10 +2753,55 @@ export default class OrderModuleService<
}
await this.orderService_.update(
orderIds.map((id) => {
return {
id,
status: OrderStatus.COMPLETED,
}
}),
sharedContext
)
return Array.isArray(orderId) ? orders : orders[0]
}
async cancel(
orderId: string,
sharedContext?: Context
): Promise<OrderTypes.OrderDTO>
async cancel(
orderId: string[],
sharedContext?: Context
): Promise<OrderTypes.OrderDTO[]>
@InjectTransactionManager("baseRepository_")
async cancel(
orderId: string | string[],
sharedContext?: Context
): Promise<OrderTypes.OrderDTO | OrderTypes.OrderDTO[]> {
const orderIds = Array.isArray(orderId) ? orderId : [orderId]
const orders = await this.list(
{
id: orderIds,
status: OrderStatus.COMPLETED,
},
{},
sharedContext
)
const canceled_at = new Date()
for (const order of orders) {
order.status = OrderStatus.CANCELED
order.canceled_at = canceled_at
}
await this.orderService_.update(
orderIds.map((id) => {
return {
id,
status: OrderStatus.CANCELED,
canceled_at,
}
}),
sharedContext
)