123 lines
5.0 KiB
TypeScript
123 lines
5.0 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { CreateItemQueueManager } from './managers/create-item-queue.manager';
|
|
import { ItemQueueDataService } from '../../data/services/item-queue-data.service';
|
|
import { ItemQueueEntity } from '../entities/item-queue.entity';
|
|
import { DeleteItemQueueManager } from './managers/delete-item-queue.manager';
|
|
import { UpdateItemQueueManager } from './managers/update-item-queue.manager';
|
|
import { BaseDataTransactionOrchestrator } from 'src/core/modules/domain/usecase/orchestrators/base-data-transaction.orchestrator';
|
|
import { ActiveItemQueueManager } from './managers/active-item-queue.manager';
|
|
import { InactiveItemQueueManager } from './managers/inactive-item-queue.manager';
|
|
import { ConfirmItemQueueManager } from './managers/confirm-item-queue.manager';
|
|
import { STATUS } from 'src/core/strings/constants/base.constants';
|
|
import { BatchResult } from 'src/core/response/domain/ok-response.interface';
|
|
import { BatchConfirmItemQueueManager } from './managers/batch-confirm-item-queue.manager';
|
|
import { BatchInactiveItemQueueManager } from './managers/batch-inactive-item-queue.manager';
|
|
import { BatchActiveItemQueueManager } from './managers/batch-active-item-queue.manager';
|
|
import { BatchDeleteItemQueueManager } from './managers/batch-delete-item-queue.manager';
|
|
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
|
|
|
@Injectable()
|
|
export class ItemQueueDataOrchestrator extends BaseDataTransactionOrchestrator<ItemQueueEntity> {
|
|
constructor(
|
|
private createManager: CreateItemQueueManager,
|
|
private updateManager: UpdateItemQueueManager,
|
|
private deleteManager: DeleteItemQueueManager,
|
|
private activeManager: ActiveItemQueueManager,
|
|
private confirmManager: ConfirmItemQueueManager,
|
|
private inactiveManager: InactiveItemQueueManager,
|
|
private batchDeleteManager: BatchDeleteItemQueueManager,
|
|
private batchActiveManager: BatchActiveItemQueueManager,
|
|
private batchConfirmManager: BatchConfirmItemQueueManager,
|
|
private batchInactiveManager: BatchInactiveItemQueueManager,
|
|
private serviceData: ItemQueueDataService,
|
|
) {
|
|
super();
|
|
}
|
|
|
|
async create(data): Promise<ItemQueueEntity> {
|
|
data.items = data.item_ids.map((id) => {
|
|
return { id };
|
|
});
|
|
this.createManager.setData(data);
|
|
this.createManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.createManager.execute();
|
|
await this.createManager.generateConfig();
|
|
return this.createManager.getResult();
|
|
}
|
|
|
|
async update(dataId, data): Promise<ItemQueueEntity> {
|
|
this.updateManager.setData(dataId, data);
|
|
this.updateManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.updateManager.execute();
|
|
return this.updateManager.getResult();
|
|
}
|
|
|
|
async delete(dataId): Promise<string> {
|
|
this.deleteManager.setData(dataId);
|
|
this.deleteManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.deleteManager.execute();
|
|
return this.deleteManager.getResult();
|
|
}
|
|
|
|
async batchDelete(dataIds: string[]): Promise<BatchResult> {
|
|
this.batchDeleteManager.setData(dataIds);
|
|
this.batchDeleteManager.setService(
|
|
this.serviceData,
|
|
TABLE_NAME.ITEM_CATEGORY,
|
|
);
|
|
await this.batchDeleteManager.execute();
|
|
return this.batchDeleteManager.getResult();
|
|
}
|
|
|
|
async active(dataId): Promise<string> {
|
|
this.activeManager.setData(dataId, STATUS.ACTIVE);
|
|
this.activeManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.activeManager.execute();
|
|
return this.activeManager.getResult();
|
|
}
|
|
|
|
async batchActive(dataIds: string[]): Promise<BatchResult> {
|
|
this.batchActiveManager.setData(dataIds, STATUS.ACTIVE);
|
|
this.batchActiveManager.setService(
|
|
this.serviceData,
|
|
TABLE_NAME.ITEM_CATEGORY,
|
|
);
|
|
await this.batchActiveManager.execute();
|
|
return this.batchActiveManager.getResult();
|
|
}
|
|
|
|
async confirm(dataId): Promise<string> {
|
|
this.confirmManager.setData(dataId, STATUS.ACTIVE);
|
|
this.confirmManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.confirmManager.execute();
|
|
return this.confirmManager.getResult();
|
|
}
|
|
|
|
async batchConfirm(dataIds: string[]): Promise<BatchResult> {
|
|
this.batchConfirmManager.setData(dataIds, STATUS.ACTIVE);
|
|
this.batchConfirmManager.setService(
|
|
this.serviceData,
|
|
TABLE_NAME.ITEM_CATEGORY,
|
|
);
|
|
await this.batchConfirmManager.execute();
|
|
return this.batchConfirmManager.getResult();
|
|
}
|
|
|
|
async inactive(dataId): Promise<string> {
|
|
this.inactiveManager.setData(dataId, STATUS.INACTIVE);
|
|
this.inactiveManager.setService(this.serviceData, TABLE_NAME.ITEM_CATEGORY);
|
|
await this.inactiveManager.execute();
|
|
return this.inactiveManager.getResult();
|
|
}
|
|
|
|
async batchInactive(dataIds: string[]): Promise<BatchResult> {
|
|
this.batchInactiveManager.setData(dataIds, STATUS.INACTIVE);
|
|
this.batchInactiveManager.setService(
|
|
this.serviceData,
|
|
TABLE_NAME.ITEM_CATEGORY,
|
|
);
|
|
await this.batchInactiveManager.execute();
|
|
return this.batchInactiveManager.getResult();
|
|
}
|
|
}
|