I am currently developing application using nestjs with fastify adapter
But something weird on object construction.
Following all the related classes, and methods:
- Controller endpoint handler
@Get()
@ApiOperation({
description: "Get all user admin",
})
async findAll(
@Query() filter: GetListAdminReqFilter,
@Query() pagination: PaginatedReqDto
): Promise<RestRespDto<GetListAdminRespDto[]>> {
return new RestRespDto({
data: await this.adminService.findAll(
new GetListAdminReqDto(filter, pagination)
),
});
}
- The request dto
export class GetListAdminReqDto extends PaginatedReqDto {
constructor(filter: GetListAdminReqFilter, pagination: PaginatedReqDto) {
super();
this.filter = filter;
this.pagination = pagination.pagination;
this.page = pagination.page;
}
filter?: GetListAdminReqFilter;
}
- The pagination req dto
export class PaginatedReqDto {
@ApiPropertyOptional({
default: 10,
description: "Number of items to retrieve",
})
pagination?: number;
@ApiPropertyOptional({
description: "Page number, e.g:1 ",
default: 1,
})
page?: number;
}
- The filter
export class GetListAdminReqFilter {
@ApiPropertyOptional()
@IsOptional()
name?: string;
@ApiPropertyOptional()
@IsOptional()
email?: string;
@ApiPropertyOptional()
@IsOptional()
divisi?: string;
@ApiPropertyOptional({ enum: AdminStatusEnum})
@IsOptional()
status?: AdminStatusEnum;
}
The result of GetListAdminReqDto
object is following:
{
filter: [Object: null prototype] {
pagination: '10',
page: '1',
name: 'asdfasdf',
email: 'asdfasdf',
divisi: 'asdfasdf'
},
pagination: '10',
page: '1'
}
Why pagination
and page
is property also included in filter
?, i dont understand what happened, any help will be appreciated