IK
Size: a a a
IK
LK
IK
LK
let candidatesQuery = this.candidateRepository.createQueryBuilder('candidates');
candidatesQuery = candidateEmployeeInfoQuery(candidatesQuery);
candidatesQuery = paginateQuery(candidatesQuery, pagination, PaginateType.APPLICATION);
const { entities, raw } = await candidatesQuery.getRawAndEntities();
const count = await candidatesQuery.getCount();
return { results: { entities: entities as Candidate[], raw }, count };
LK
paginateQuery
export function paginateQuery<Entity, Paginatable extends PaginationDTO>(
queryBuilder: SelectQueryBuilder<Entity>,
query: Paginatable,
type: PaginateType = PaginateType.DATABASE,
) {
const {
perPage = DEFAULT_PER_PAGE,
page = DEFAULT_PAGE,
} = query;
const skip = (perPage * page) - perPage;
switch (type) {
case PaginateType.DATABASE:
return queryBuilder
.offset(skip)
.limit(perPage);
case PaginateType.APPLICATION:
return queryBuilder
.skip(skip)
.take(perPage);
}
return queryBuilder;
}
LK
IK
IK
LK
IK
LK
getRawAndEntities
это типа для entities выбирает те поля которые есть в сущности, а остальное пихает в rawIK
IK
LK
IK
IK
LK
IK