refactor(nestjs): list resources

This commit is contained in:
Ahmed Bouhuolia
2025-05-04 11:19:34 +02:00
parent 4f6ad2b293
commit c9d752d102
36 changed files with 180 additions and 63 deletions

View File

@@ -6,6 +6,7 @@ import {
Param,
Post,
Put,
Query,
} from '@nestjs/common';
import { ManualJournalsApplication } from './ManualJournalsApplication.service';
import { ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
@@ -13,6 +14,7 @@ import {
CreateManualJournalDto,
EditManualJournalDto,
} from './dtos/ManualJournal.dto';
import { IManualJournalsFilter } from './types/ManualJournals.types';
@Controller('manual-journals')
@ApiTags('manual-journals')
@@ -98,4 +100,19 @@ export class ManualJournalsController {
public getManualJournal(@Param('id') manualJournalId: number) {
return this.manualJournalsApplication.getManualJournal(manualJournalId);
}
@Get()
@ApiOperation({ summary: 'Retrieves the manual journals paginated list.' })
@ApiResponse({
status: 200,
description: 'The manual journal details have been successfully retrieved.',
})
@ApiResponse({ status: 404, description: 'The manual journal not found.' })
public getManualJournals(
@Query() filterDto: Partial<IManualJournalsFilter>
) {
return this.manualJournalsApplication.getManualJournals(filterDto);
}
}

View File

@@ -79,7 +79,7 @@ export class ManualJournalsApplication {
* Retrieves the paginated manual journals.
* @param {IManualJournalsFilter} filterDTO
*/
public getManualJournals = (filterDTO: IManualJournalsFilter) => {
public getManualJournals = (filterDTO: Partial<IManualJournalsFilter>) => {
return this.getManualJournalsService.getManualJournals(filterDTO);
};
}

View File

@@ -31,14 +31,21 @@ export class GetManualJournals {
* @param {IManualJournalsFilter} filter -
*/
public getManualJournals = async (
filterDTO: IManualJournalsFilter,
filterDTO: Partial<IManualJournalsFilter>,
): Promise<{
manualJournals: ManualJournal[];
pagination: IPaginationMeta;
filterMeta: IFilterMeta;
}> => {
const _filterDto = {
sortOrder: 'desc',
columnSortBy: 'created_at',
page: 1,
pageSize: 12,
...filterDTO,
};
// Parses filter DTO.
const filter = this.parseListFilterDTO(filterDTO);
const filter = this.parseListFilterDTO(_filterDto);
// Dynamic service.
const dynamicService = await this.dynamicListService.dynamicList(