mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-27 03:34:55 +00:00
fix pagination
This commit is contained in:
@ -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,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user