I am working on an API for which the requirement from UI is based on the value of the search field I shall receive the filtered results. There are many search fields on UI.
Example code -
async getRoomsByMember(active: boolean, email: string): Promise<any[]> {
return await getRepository(Room)
.createQueryBuilder('room')
.innerJoinAndSelect('room.member', 'member')
.where("room.active = :active", {active: active})
.andWhere("member.email = :email", { email: email })
.getMany();
}
I shall be able to filter room members dynamically if values entered by a user on filter fields like - member phone number, city, state, country, and zip.
You're almost there :-)
You can try something like this:
async getRoomsByMember(active: boolean, email: string): Promise<any[]> {
const query = getRepository(Room)
.createQueryBuilder('room')
.innerJoinAndSelect('room.member', 'member')
.where("room.active = :active", {active: active});
// Keep adding your other fields like member phone number, city, state, country, and zip, like below
if(email) {
query.andWhere("member.email = :email", { email: email })
}
return query.getMany();
}