diff --git a/src/controllers/user_to_room.ts b/src/controllers/user_to_room.ts index 7f2c767..c664194 100644 --- a/src/controllers/user_to_room.ts +++ b/src/controllers/user_to_room.ts @@ -44,8 +44,14 @@ export class UserToRoomController { // Base filter builder (reusable untuk step 1 & count) const applyFilters = (qb: any) => { if (param.with_deleted) qb.withDeleted(); - if (filter.name) qb.andWhere("user.name ILIKE :name", { name: `%${filter.name}%` }); - if (filter.status) qb.andWhere("user.status = :status", { status: filter.status }); + const userNameFilter = filter["user.name"] ?? filter.name; + if (userNameFilter !== undefined && userNameFilter !== "") { + const userNameVal = String(userNameFilter); + qb.andWhere("user.name ILIKE :name", { name: userNameVal.includes("%") ? userNameVal : `%${userNameVal}%` }); + } + + const userStatusFilter = filter["user.status"] ?? filter.status; + if (userStatusFilter !== undefined && userStatusFilter !== "") qb.andWhere("user.status = :status", { status: userStatusFilter }); return qb; };