22 lines
1004 B
TypeScript
22 lines
1004 B
TypeScript
import { SequelizeTransactionManager } from "@erp/core/api";
|
|
import { Sequelize } from "sequelize";
|
|
import { CreateCustomerInvoiceUseCase, CreateCustomerInvoicesPresenter } from "../../application/";
|
|
import { CustomerInvoiceService } from "../../domain";
|
|
import { CustomerInvoiceRepository, customerInvoiceMapper } from "../../infrastructure";
|
|
import { CreateCustomerInvoiceController } from "./create-customer-invoice";
|
|
|
|
export const buildCreateCustomerInvoicesController = (database: Sequelize) => {
|
|
const transactionManager = new SequelizeTransactionManager(database);
|
|
const customerInvoiceRepository = new CustomerInvoiceRepository(database, customerInvoiceMapper);
|
|
const customerInvoiceService = new CustomerInvoiceService(customerInvoiceRepository);
|
|
const presenter = new CreateCustomerInvoicesPresenter();
|
|
|
|
const useCase = new CreateCustomerInvoiceUseCase(
|
|
customerInvoiceService,
|
|
transactionManager,
|
|
presenter
|
|
);
|
|
|
|
return new CreateCustomerInvoiceController(useCase);
|
|
};
|