UNPKG

json-api-nestjs

Version:
43 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSortObject = getSortObject; exports.getQueryForCount = getQueryForCount; const nestjs_shared_1 = require("../../../../utils/nestjs-shared"); function getSortObject(query) { const { sort } = query; const sortObject = {}; if (!sort) return sortObject; const { target = {}, ...relation } = sort; for (const [filed, sortType] of nestjs_shared_1.ObjectTyped.entries(target)) { sortObject[filed] = sortType; } for (const [relationName, orderConfig = {}] of nestjs_shared_1.ObjectTyped.entries(relation)) { const name = relationName; sortObject[name] = {}; for (const [field, sortType] of nestjs_shared_1.ObjectTyped.entries(orderConfig)) { sortObject[name][field] = sortType; } } return sortObject; } function getQueryForCount(query) { const querySelect = this.microOrmUtilService.queryBuilder(); const sortObject = getSortObject(query); querySelect.orderBy(Object.keys(sortObject).length > 0 ? sortObject : { [this.microOrmUtilService.currentPrimaryColumn]: 'ASC', }); const expressionArrayForTarget = this.microOrmUtilService.getFilterExpressionForTarget(query); const expressionArrayForRelation = this.microOrmUtilService.getFilterExpressionForRelation(query); const resultExpression = [ ...expressionArrayForTarget, ...expressionArrayForRelation, ]; for (const expression of resultExpression) { querySelect.andWhere(expression); } return querySelect; } //# sourceMappingURL=get-query-for-count.js.map