From 96e2729e58fea6781cad478e30c22ff95521dd0f Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Thu, 30 Apr 2026 10:40:10 +0700 Subject: [PATCH] update filter in room to pharmacy --- src/controllers/room_to_pharmacy.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/controllers/room_to_pharmacy.ts b/src/controllers/room_to_pharmacy.ts index b4d35fc..b3c56cc 100644 --- a/src/controllers/room_to_pharmacy.ts +++ b/src/controllers/room_to_pharmacy.ts @@ -73,7 +73,11 @@ export class RoomToPharmacyController { /* #swagger.tags = ['RoomToPharmacy'] #swagger.security = [{ "bearerAuth": [] }] - #swagger.parameters['filter'] = { description: '', in: 'query', type: 'string' } + #swagger.parameters['filter'] = { + description: "Filter in JSON format. Available fields: room (string, partial match case-insensitive), code (string, partial match case-insensitive), status (string, exact match), pharmacy_room (string, partial match case-insensitive). Example: {\"room\":\"igd\",\"code\":\"R01\",\"status\":\"active\",\"pharmacy_room\":\"apotek\"}", + in: 'query', + type: 'string' + } #swagger.parameters['limit'] = { in: 'query', required: true, type: 'number' } #swagger.parameters['page'] = { in: 'query', required: true, type: 'number' } #swagger.parameters['with_deleted'] = { in: 'query', required: true, type: 'boolean' } @@ -134,6 +138,16 @@ export class RoomToPharmacyController { roomQuery.andWhere("room.status = :status", { status: filter.status }); } + // Filter room.code + if (filter.code && filter.code !== "") { + roomQuery.andWhere("room.code ILIKE :code", { code: `%${filter.code}%` }); + } + + // Filter pharmacy_room.room + if (filter.pharmacy_room && filter.pharmacy_room !== "") { + roomQuery.andWhere("pharmacy_room.room ILIKE :pharmacy_room", { pharmacy_room: `%${filter.pharmacy_room}%` }); + } + const total_count_data = await roomQuery.clone().getCount(); const rooms = await roomQuery