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({
|
||||
id: z.nativeEnum(FacilityEnum),
|
||||
id: z.number(),
|
||||
name: z.string(),
|
||||
public: z.boolean(),
|
||||
sortOrder: z.number(),
|
||||
@@ -389,6 +389,9 @@ const hotelFactsSchema = z.object({
|
||||
yearBuilt: z.string(),
|
||||
})
|
||||
|
||||
type DetailedFacility = { id: FacilityEnum } & z.infer<
|
||||
typeof detailedFacilitySchema
|
||||
>
|
||||
export const hotelAttributesSchema = z.object({
|
||||
accessibilityElevatorPitchText: z.string().optional(),
|
||||
address: addressSchema,
|
||||
@@ -396,11 +399,15 @@ export const hotelAttributesSchema = z.object({
|
||||
cityName: z.string(),
|
||||
conferencesAndMeetings: facilitySchema.optional(),
|
||||
contactInformation: contactInformationSchema,
|
||||
detailedFacilities: z
|
||||
.array(detailedFacilitySchema)
|
||||
.transform((facilities) =>
|
||||
facilities.sort((a, b) => b.sortOrder - a.sortOrder)
|
||||
),
|
||||
detailedFacilities: z.array(detailedFacilitySchema).transform(
|
||||
(facilities) =>
|
||||
facilities
|
||||
// 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(),
|
||||
galleryImages: z.array(imageSchema).optional(),
|
||||
healthAndWellness: facilitySchema.optional(),
|
||||
|
||||
Reference in New Issue
Block a user