feat: cancel order, delete queue
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
2bcd7a34fb
commit
af9818d44c
|
@ -41,7 +41,7 @@ export class QueueBucketReadService extends BaseReadService<QueueBucketModel> {
|
||||||
if (!queue) {
|
if (!queue) {
|
||||||
const regularNumber = vip ? 0 : 1;
|
const regularNumber = vip ? 0 : 1;
|
||||||
const vipNumber = vip ? 1 : 0;
|
const vipNumber = vip ? 1 : 0;
|
||||||
this.repo.save({
|
await this.repo.save({
|
||||||
queue_item_id: queueItem.item.item_queue_id ?? queueItem.item.id,
|
queue_item_id: queueItem.item.item_queue_id ?? queueItem.item.id,
|
||||||
date: start,
|
date: start,
|
||||||
regular: regularNumber,
|
regular: regularNumber,
|
||||||
|
|
|
@ -70,6 +70,29 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
|
||||||
return [order];
|
return [order];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async transactions(transaction_id: string): Promise<QueueOrderModel[]> {
|
||||||
|
const order = await this.order.findOneOrFail({
|
||||||
|
where: {
|
||||||
|
transaction_id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (order.transaction_id != null) {
|
||||||
|
return this.order.find({
|
||||||
|
where: {
|
||||||
|
code: order.code,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return [order];
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteQueue(transaction_id: string): Promise<void> {
|
||||||
|
const transactions = await this.transactions(transaction_id);
|
||||||
|
await this.order.remove(transactions);
|
||||||
|
}
|
||||||
|
|
||||||
async orderIds(order_id: string): Promise<string[]> {
|
async orderIds(order_id: string): Promise<string[]> {
|
||||||
const orders = await this.orders(order_id);
|
const orders = await this.orders(order_id);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
import { EventsHandler, IEventHandler } from '@nestjs/cqrs';
|
||||||
|
import { TransactionChangeStatusEvent } from 'src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event';
|
||||||
|
import { TicketDataService } from '../../data/services/ticket.service';
|
||||||
|
|
||||||
|
@EventsHandler(TransactionChangeStatusEvent)
|
||||||
|
export class QueueTransactionCancelHandler
|
||||||
|
implements IEventHandler<TransactionChangeStatusEvent>
|
||||||
|
{
|
||||||
|
constructor(private queueService: TicketDataService) {}
|
||||||
|
|
||||||
|
async handle(event: TransactionChangeStatusEvent) {
|
||||||
|
const process_data = event.data.data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If data still in process (not settled) then don't create the queue order
|
||||||
|
*/
|
||||||
|
if (!['cancel', 'rejected'].includes(process_data?.status)) return;
|
||||||
|
|
||||||
|
this.queueService.deleteQueue(event.data.id);
|
||||||
|
}
|
||||||
|
}
|
|
@ -31,6 +31,7 @@ import { RegisterQueueManager } from './domain/usecases/register-queue.manager';
|
||||||
import { QueueBucketModel } from './data/models/queue-bucket.model';
|
import { QueueBucketModel } from './data/models/queue-bucket.model';
|
||||||
import { QueueBucketReadService } from './data/services/queue-bucket';
|
import { QueueBucketReadService } from './data/services/queue-bucket';
|
||||||
import { SplitQueueManager } from './domain/usecases/split-queue.manager';
|
import { SplitQueueManager } from './domain/usecases/split-queue.manager';
|
||||||
|
import { QueueTransactionCancelHandler } from './infrastructure/handlers/cancel-transaction.handler';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
|
@ -55,6 +56,7 @@ import { SplitQueueManager } from './domain/usecases/split-queue.manager';
|
||||||
QueueAdminOrchestrator,
|
QueueAdminOrchestrator,
|
||||||
|
|
||||||
QueueTransactionHandler,
|
QueueTransactionHandler,
|
||||||
|
QueueTransactionCancelHandler,
|
||||||
|
|
||||||
TransactionDataService,
|
TransactionDataService,
|
||||||
TicketDataService,
|
TicketDataService,
|
||||||
|
|
|
@ -133,7 +133,7 @@ export class PriceCalculator {
|
||||||
calledVariable = [];
|
calledVariable = [];
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
calledVariable.push(valueFor);
|
calledVariable.push(valueFor);
|
||||||
console.log(error);
|
console.log(error.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
values[valueFor] = result;
|
values[valueFor] = result;
|
||||||
|
|
Loading…
Reference in New Issue