refactor(nestjs): export module

This commit is contained in:
Ahmed Bouhuolia
2025-04-08 16:19:35 +02:00
parent 6287f8b6e3
commit 04c25bd31a
60 changed files with 748 additions and 504 deletions

View File

@@ -15,6 +15,7 @@ import { GetManualJournal } from './queries/GetManualJournal.service';
import { ManualJournalWriteGLSubscriber } from './commands/ManualJournalGLEntriesSubscriber';
import { ManualJournalGLEntries } from './commands/ManualJournalGLEntries';
import { LedgerModule } from '../Ledger/Ledger.module';
import { ManualJournalsExportable } from './commands/ManualJournalExportable';
@Module({
imports: [BranchesModule, LedgerModule],
@@ -33,7 +34,8 @@ import { LedgerModule } from '../Ledger/Ledger.module';
ManualJournalsApplication,
GetManualJournal,
ManualJournalGLEntries,
ManualJournalWriteGLSubscriber
ManualJournalWriteGLSubscriber,
ManualJournalsExportable
],
})
export class ManualJournalsModule {}

View File

@@ -4,8 +4,12 @@ import { EditManualJournal } from './commands/EditManualJournal.service';
import { PublishManualJournal } from './commands/PublishManualJournal.service';
import { GetManualJournal } from './queries/GetManualJournal.service';
import { DeleteManualJournalService } from './commands/DeleteManualJournal.service';
import { IManualJournalDTO, } from './types/ManualJournals.types';
import { CreateManualJournalDto, EditManualJournalDto } from './dtos/ManualJournal.dto';
import { IManualJournalsFilter } from './types/ManualJournals.types';
import {
CreateManualJournalDto,
EditManualJournalDto,
} from './dtos/ManualJournal.dto';
import { GetManualJournals } from './queries/GetManualJournals.service';
// import { GetManualJournals } from './queries/GetManualJournals';
@Injectable()
@@ -16,7 +20,7 @@ export class ManualJournalsApplication {
private deleteManualJournalService: DeleteManualJournalService,
private publishManualJournalService: PublishManualJournal,
private getManualJournalService: GetManualJournal,
// private getManualJournalsService: GetManualJournals,
private getManualJournalsService: GetManualJournals,
) {}
/**
@@ -50,9 +54,7 @@ export class ManualJournalsApplication {
* @return {Promise<void>}
*/
public deleteManualJournal = (manualJournalId: number) => {
return this.deleteManualJournalService.deleteManualJournal(
manualJournalId,
);
return this.deleteManualJournalService.deleteManualJournal(manualJournalId);
};
/**
@@ -68,23 +70,16 @@ export class ManualJournalsApplication {
/**
* Retrieves the specific manual journal.
* @param {number} manualJournalId
* @returns
*/
public getManualJournal = (manualJournalId: number) => {
return this.getManualJournalService.getManualJournal(
manualJournalId,
);
return this.getManualJournalService.getManualJournal(manualJournalId);
};
/**
* Retrieves the paginated manual journals.
* @param {number} tenantId
* @param {IManualJournalsFilter} filterDTO
* @returns
*/
// public getManualJournals = (
// filterDTO: IManualJournalsFilter,
// ) => {
// // return this.getManualJournalsService.getManualJournals(filterDTO);
// };
public getManualJournals = (filterDTO: IManualJournalsFilter) => {
return this.getManualJournalsService.getManualJournals(filterDTO);
};
}

View File

@@ -1,30 +1,31 @@
// import { Inject, Service } from 'typedi';
// import { IManualJournalsFilter } from '@/interfaces';
// import { Exportable } from '../../Export/Exportable';
// import { ManualJournalsApplication } from '../ManualJournalsApplication';
// import { EXPORT_SIZE_LIMIT } from '../../Export/constants';
import { Exportable } from '../../Export/Exportable';
import { EXPORT_SIZE_LIMIT } from '../../Export/constants';
import { Injectable } from '@nestjs/common';
import { IManualJournalsFilter } from '../types/ManualJournals.types';
import { ManualJournalsApplication } from '../ManualJournalsApplication.service';
// @Service()
// export class ManualJournalsExportable extends Exportable {
// @Inject()
// private manualJournalsApplication: ManualJournalsApplication;
@Injectable()
export class ManualJournalsExportable extends Exportable {
constructor(
private readonly manualJournalsApplication: ManualJournalsApplication,
) {
super();
}
// /**
// * Retrieves the manual journals data to exportable sheet.
// * @param {number} tenantId
// * @returns
// */
// public exportable(tenantId: number, query: IManualJournalsFilter) {
// const parsedQuery = {
// sortOrder: 'desc',
// columnSortBy: 'created_at',
// ...query,
// page: 1,
// pageSize: EXPORT_SIZE_LIMIT,
// } as IManualJournalsFilter;
/**
* Retrieves the manual journals data to exportable sheet.
*/
public exportable(query: IManualJournalsFilter) {
const parsedQuery = {
sortOrder: 'desc',
columnSortBy: 'created_at',
...query,
page: 1,
pageSize: EXPORT_SIZE_LIMIT,
} as IManualJournalsFilter;
// return this.manualJournalsApplication
// .getManualJournals(tenantId, parsedQuery)
// .then((output) => output.manualJournals);
// }
// }
return this.manualJournalsApplication
.getManualJournals(parsedQuery)
.then((output) => output.manualJournals);
}
}

View File

@@ -9,7 +9,9 @@ import { Model, mixin } from 'objection';
import { ManualJournalEntry } from './ManualJournalEntry';
import { Document } from '@/modules/ChromiumlyTenancy/models/Document';
import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel';
import { ExportableModel } from '@/modules/Export/decorators/ExportableModel.decorator';
@ExportableModel()
export class ManualJournal extends TenantBaseModel {
date: Date;
journalNumber: string;