fix pagination

This commit is contained in:
hannathkadher
2025-01-08 12:16:20 +04:00
parent 0ba681d93b
commit cdba0f6554
2 changed files with 54 additions and 29 deletions

View File

@ -13,7 +13,6 @@ import {
TypeORMCustomModelFindAllQuery,
} from '@app/common/models/typeOrmCustom.model';
import { PageResponse } from '@app/common/dto/pagination.response.dto';
import { SpaceModelDto } from '@app/common/modules/space-model/dtos';
import { SpaceModelParam } from '../dtos/space-model-param';
import { ProjectService } from 'src/project/services';
import { ProjectEntity } from '@app/common/modules/project/entities';
@ -25,6 +24,7 @@ import {
ModifiedTagsModelPayload,
ModifySubspaceModelPayload,
} from '../interfaces';
import { SpaceModelDto } from '@app/common/modules/space-model/dtos';
@Injectable()
export class SpaceModelService {
@ -117,20 +117,30 @@ export class SpaceModelService {
pageable.where = {
project: { uuid: param.projectUuid },
disabled: false,
subspaceModels: {
disabled: false,
},
tags: {
disabled: false,
},
};
pageable.include =
'subspaceModels,tags,subspaceModels.tags,tags.product,subspaceModels.tags.product';
const customModel = TypeORMCustomModel(this.spaceModelRepository);
const queryBuilder = this.spaceModelRepository
.createQueryBuilder('spaceModel')
.leftJoinAndSelect('spaceModel.subspaceModels', 'subspaceModels')
.leftJoinAndSelect('spaceModel.tags', 'tags')
.leftJoinAndSelect('subspaceModels.tags', 'subspaceModelTags')
.where('spaceModel.disabled = :disabled', { disabled: false })
.andWhere('spaceModel.project = :projectUuid', {
projectUuid: param.projectUuid,
});
const customModel = TypeORMCustomModel(this.spaceModelRepository);
const { baseResponseDto, paginationResponseDto } =
await customModel.findAll(pageable);
await customModel.findAll(
{
page: pageable.page || 1,
size: pageable.size || 10,
modelName: 'spaceModel',
},
queryBuilder,
);
return new PageResponse<SpaceModelDto>(
baseResponseDto,
@ -138,8 +148,7 @@ export class SpaceModelService {
);
} catch (error) {
throw new HttpException(
error.message ||
'An error occurred while fetching space models in project.',
`Error fetching paginated list: ${error.message}`,
HttpStatus.INTERNAL_SERVER_ERROR,
);
}