import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Mapper } from '../entity/mapper.entity'; import { Repository } from 'typeorm'; @Injectable() export class MapperRepository { constructor( @InjectRepository(Mapper) private readonly mapperRepository: Repository, ) { } async findByMappedEntityType( mapped_entity_type: string, enterprise_id: number, filter?: string, ) { const qb = this.mapperRepository .createQueryBuilder('m') .select('m.*') .where('m.mapped_entity_type = :mapped_entity_type', { mapped_entity_type, }) .andWhere('m.enterprise_id = :enterprise_id', { enterprise_id }); if (filter && filter.trim() !== '') { qb.andWhere('(m.name ILIKE :filter OR m.code ILIKE :filter)', { filter: `%${filter}%`, }); } return await qb.getRawMany(); } }