Merged in fix/detailed-facilities-validation (pull request #1108)
fix(SW-1260): allow unrecognized hotel facilities * fix(SW-1260): allow unrecognized hotel facilities Before this we only allowed hotel facilities that we know about (ID:s in an enum). Now we instead allow everything, but filter away the ones we don't know about. Approved-by: Christel Westerberg
This commit is contained in:
@@ -124,7 +124,7 @@ const hotelContentSchema = z.object({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const detailedFacilitySchema = z.object({
|
const detailedFacilitySchema = z.object({
|
||||||
id: z.nativeEnum(FacilityEnum),
|
id: z.number(),
|
||||||
name: z.string(),
|
name: z.string(),
|
||||||
public: z.boolean(),
|
public: z.boolean(),
|
||||||
sortOrder: z.number(),
|
sortOrder: z.number(),
|
||||||
@@ -389,6 +389,9 @@ const hotelFactsSchema = z.object({
|
|||||||
yearBuilt: z.string(),
|
yearBuilt: z.string(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
type DetailedFacility = { id: FacilityEnum } & z.infer<
|
||||||
|
typeof detailedFacilitySchema
|
||||||
|
>
|
||||||
export const hotelAttributesSchema = z.object({
|
export const hotelAttributesSchema = z.object({
|
||||||
accessibilityElevatorPitchText: z.string().optional(),
|
accessibilityElevatorPitchText: z.string().optional(),
|
||||||
address: addressSchema,
|
address: addressSchema,
|
||||||
@@ -396,11 +399,15 @@ export const hotelAttributesSchema = z.object({
|
|||||||
cityName: z.string(),
|
cityName: z.string(),
|
||||||
conferencesAndMeetings: facilitySchema.optional(),
|
conferencesAndMeetings: facilitySchema.optional(),
|
||||||
contactInformation: contactInformationSchema,
|
contactInformation: contactInformationSchema,
|
||||||
detailedFacilities: z
|
detailedFacilities: z.array(detailedFacilitySchema).transform(
|
||||||
.array(detailedFacilitySchema)
|
(facilities) =>
|
||||||
.transform((facilities) =>
|
facilities
|
||||||
facilities.sort((a, b) => b.sortOrder - a.sortOrder)
|
// Filter away facilities with ID:s that we don't recognize
|
||||||
),
|
.filter(
|
||||||
|
(f) => f.id !== undefined && f.id !== null && f.id in FacilityEnum
|
||||||
|
)
|
||||||
|
.sort((a, b) => b.sortOrder - a.sortOrder) as DetailedFacility[]
|
||||||
|
),
|
||||||
gallery: gallerySchema.optional(),
|
gallery: gallerySchema.optional(),
|
||||||
galleryImages: z.array(imageSchema).optional(),
|
galleryImages: z.array(imageSchema).optional(),
|
||||||
healthAndWellness: facilitySchema.optional(),
|
healthAndWellness: facilitySchema.optional(),
|
||||||
|
|||||||
Reference in New Issue
Block a user