From c4d4ac0e27496bf78845f3c215718f66794117c2 Mon Sep 17 00:00:00 2001 From: Andrea Gueugnaut Date: Thu, 6 Feb 2025 17:09:51 +0100 Subject: [PATCH] fix(server): group creation now accepts the multi-owners filter correctly --- server/src/models/HousingFiltersApi.ts | 10 ++++++++-- server/src/utils/validators.ts | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/src/models/HousingFiltersApi.ts b/server/src/models/HousingFiltersApi.ts index 8e929aba0..899a06802 100644 --- a/server/src/models/HousingFiltersApi.ts +++ b/server/src/models/HousingFiltersApi.ts @@ -6,7 +6,13 @@ import { } from '@zerologementvacant/models'; import { EnergyConsumptionGradesApi } from './HousingApi'; import { body, ValidationChain } from 'express-validator'; -import { isArrayOf, isInteger, isString, isUUID } from '~/utils/validators'; +import { + isArrayOf, + isBoolean, + isInteger, + isString, + isUUID +} from '~/utils/validators'; export interface HousingFiltersApi extends Pick { @@ -57,7 +63,7 @@ const validators = (property = 'filters'): ValidationChain[] => [ .optional(), body(`${property}.ownerKinds`).custom(isArrayOf(isString)).optional(), body(`${property}.ownerAges`).custom(isArrayOf(isString)).optional(), - body(`${property}.multiOwners`).custom(isArrayOf(isString)).optional(), + body(`${property}.multiOwners`).custom(isArrayOf(isBoolean)).optional(), body(`${property}.beneficiaryCounts`).custom(isArrayOf(isString)).optional(), body(`${property}.housingKinds`).custom(isArrayOf(isString)).optional(), body(`${property}.cadastralClassificiations`) diff --git a/server/src/utils/validators.ts b/server/src/utils/validators.ts index 1b5342de6..43a6d3d86 100644 --- a/server/src/utils/validators.ts +++ b/server/src/utils/validators.ts @@ -30,6 +30,10 @@ export function isString(value: unknown): value is string { return typeof value === 'string'; } +export function isBoolean(value: unknown): value is boolean { + return typeof value === 'boolean'; +} + export function isCommaDelimitedString(value: unknown): value is string { const pattern = /^[-\w]+(,[-\w]+)*$/; return isString(value) && validator.matches(value, pattern);