diff --git a/api/src/services/listing.service.ts b/api/src/services/listing.service.ts index f196b291d2..cb7a1f1d3f 100644 --- a/api/src/services/listing.service.ts +++ b/api/src/services/listing.service.ts @@ -286,19 +286,22 @@ export class ListingService implements OnModuleInit { } if (filter[ListingFilterKeys.monthlyRent]) { const comparison = filter['$comparison']; - //sanitize user input here whereClauseArray.push( `(combined_units->>'monthlyRent')::FLOAT ${comparison} '${ filter[ListingFilterKeys.monthlyRent] }'`, ); } + if (filter[ListingFilterKeys.name]) { const comparison = filter['$comparison']; + //remove most special characters and escape those that are allowed + //add FE validation to search fields to mantain working url, and some partners stuff too + const cleanedValue = filter[ListingFilterKeys.name] + .replace(/[^a-zA-Z0-9' -]/g, '') + .replace(/[']/g, "''"); whereClauseArray.push( - `UPPER(combined.name) ${comparison} UPPER('%${ - filter[ListingFilterKeys.name] - }%')`, + `UPPER(combined.name) ${comparison} UPPER('%${cleanedValue}%')`, ); } }); @@ -306,7 +309,6 @@ export class ListingService implements OnModuleInit { // Only return active listings whereClauseArray.push("combined.status = 'active'"); - console.log(whereClauseArray); const whereClause = whereClauseArray?.length ? `where ${whereClauseArray.join(' AND ')}` : ''; diff --git a/shared-helpers/src/locales/es.json b/shared-helpers/src/locales/es.json index 1ed6c96b47..d6cb01f423 100644 --- a/shared-helpers/src/locales/es.json +++ b/shared-helpers/src/locales/es.json @@ -1000,6 +1000,8 @@ "listings.priorityUnits": "Viviendas prioritarias", "listings.priorityUnitsDescription": "Esta edificación cuenta con viviendas apartadas si alguna de las siguientes condiciones se aplican a usted o a alguna persona de su hogar:", "listings.processInfo": "Información sobre el proceso", + "listings.propertyName": "Nombre de la propiedad", + "listings.popertyName.helper": "Ingrese el nombre completo o parcial de la propiedad", "listings.publicLottery.header": "Lotería pública", "listings.remainingUnitsAfterPreferenceConsideration": "Después de que se hayan tomado en consideración a los poseedores de preferencias, todas las viviendas restantes estarán a disposición de otros solicitantes calificados.", "listings.remainingUnitsAfterPrograms": "Una vez que se hayan considerado a todos los titulares de preferencias, las unidades restantes estarán disponibles para otros solicitantes calificados.", diff --git a/shared-helpers/src/locales/tl.json b/shared-helpers/src/locales/tl.json index 144c6f0cdd..d65a8ad960 100644 --- a/shared-helpers/src/locales/tl.json +++ b/shared-helpers/src/locales/tl.json @@ -965,6 +965,8 @@ "listings.priorityUnits": "Mga Prayorida na Unit", "listings.priorityUnitsDescription": "Ang gusaling ito ay may mga unit na nagbubukod sa alinman sa mga sumusunod na angkop sa iyo o sa isang tao sa iyong sambahayan:", "listings.processInfo": "Impormasyon ng Proseso", + "listings.propertyName": "Pangalan ng Ari-arian", + "listings.popertyName.helper": "Ilagay ang buo o bahagyang pangalan ng property", "listings.publicLottery.header": "Pampublikong Lottery", "listings.remainingUnitsAfterPreferenceConsideration": "Pagkatapos na isaalang-alang ang lahat ng preference holder, ang anumang natitirang mga unit ay magiging available sa iba pang mga kwalipikadong aplikante.", "listings.remainingUnitsAfterPrograms": "Matapos isaalang-alang ang lahat ng mga may hawak ng kagustuhan, ang anumang natitirang mga yunit ay magiging available sa iba pang mga kwalipikadong aplikante.", diff --git a/shared-helpers/src/locales/vi.json b/shared-helpers/src/locales/vi.json index a8950e4109..550bd2b36a 100644 --- a/shared-helpers/src/locales/vi.json +++ b/shared-helpers/src/locales/vi.json @@ -1003,6 +1003,8 @@ "listings.priorityUnits": "Các Căn nhà Ưu tiên", "listings.priorityUnitsDescription": "Tòa nhà này có các căn nhà ở được dành riêng cho quý vị nếu bất kỳ điều nào sau đây đúng với quý vị hoặc một người nào đó trong hộ gia đình của quý vị:", "listings.processInfo": "Thông tin về Quy trình", + "listings.propertyName": "Tên bất động sản", + "listings.popertyName.helper": "Nhập tên bất động sản đầy đủ hoặc một phần", "listings.publicLottery.header": "Xổ số Công cộng", "listings.remainingUnitsAfterPreferenceConsideration": "Sau khi tất cả những người nắm giữ phiếu chọn ưu tiên đã được xem xét, bất kỳ căn nhà còn lại sẽ dành cho các ứng viên hội đủ điều kiện khác.", "listings.remainingUnitsAfterPrograms": "Sau khi tất cả các chủ sở hữu ưu tiên đã được xem xét, mọi đơn vị còn lại sẽ được cung cấp cho những người nộp đơn đủ điều kiện khác.", diff --git a/shared-helpers/src/locales/zh.json b/shared-helpers/src/locales/zh.json index 590562d552..b84d1ed092 100644 --- a/shared-helpers/src/locales/zh.json +++ b/shared-helpers/src/locales/zh.json @@ -1003,6 +1003,8 @@ "listings.priorityUnits": "優先單位", "listings.priorityUnitsDescription": "如果以下任何一項適用於您或您的家人,則此樓宇有預留的單位:", "listings.processInfo": "申請過程資訊", + "listings.propertyName": "物業名稱", + "listings.popertyName.helper": "輸入完整或部分屬性名稱", "listings.publicLottery.header": "公開抽籤", "listings.remainingUnitsAfterPreferenceConsideration": "在考慮所有優先權持有人之後,任何剩餘單位將提供給其他符合資格的申請人。", "listings.remainingUnitsAfterPrograms": "申請表中的一個或多個問題將有助於確定您是否有資格參加上述住房計劃。在您提交申請後,物業經理將要求您提供文件或其他形式的驗證來驗證您的住房計畫資格。",