mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
fix(immoscout): map exclusioncriteria swapflat to mobile API value swap_flat (#332)
The web UI encodes the 'no swap flats' filter as exclusioncriteria=swapflat, but the mobile API only accepts swap_flat. Unknown values are not ignored by the API - the whole search silently returns 0 results, so any saved search with this filter never finds a single listing. Map the value during web-to-mobile conversion and leave all other exclusioncriteria values (e.g. projectlisting, which both APIs share) untouched.
This commit is contained in:
@@ -103,6 +103,13 @@ const EQUIPMENT_MAP = {
|
||||
lodgerflat: 'lodgerflat',
|
||||
};
|
||||
|
||||
// The web UI uses "swapflat", but the mobile API only understands "swap_flat".
|
||||
// An unknown value is not ignored: the API silently returns 0 results for the
|
||||
// whole search. Other values (e.g. "projectlisting") are identical on both APIs.
|
||||
const EXCLUSION_CRITERIA_MAP = {
|
||||
swapflat: 'swap_flat',
|
||||
};
|
||||
|
||||
const REAL_ESTATE_TYPE = {
|
||||
'haus-mieten': 'houserent',
|
||||
'wohnung-mieten': 'apartmentrent',
|
||||
@@ -251,6 +258,9 @@ export function convertWebToMobile(webUrl) {
|
||||
...(currentEquipmentParams ?? []),
|
||||
...items.map((item) => EQUIPMENT_MAP[item.toLowerCase()]).filter(Boolean),
|
||||
];
|
||||
} else if (key === 'exclusioncriteria') {
|
||||
const items = [].concat(val).flatMap((v) => `${v}`.split(','));
|
||||
mobileParams[PARAM_NAME_MAP[key]] = items.map((item) => EXCLUSION_CRITERIA_MAP[item.toLowerCase()] ?? item);
|
||||
} else {
|
||||
mobileParams[PARAM_NAME_MAP[key]] = val;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user