refactor(SW-188): reintroduce tempHotelData

This commit is contained in:
Chuma McPhoy
2024-08-14 09:54:06 +02:00
parent bd5e754d8a
commit 400c0b48e4
8 changed files with 1327 additions and 9815 deletions

View File

@@ -37,7 +37,7 @@ const AddressSchema = z.object({
const ContactInformationSchema = z.object({
phoneNumber: z.string(),
faxNumber: z.string(),
faxNumber: z.string().optional(),
email: z.string(),
websiteUrl: z.string(),
})
@@ -183,15 +183,15 @@ const HealthFacilitySchema = z.object({
ordinary: z.object({
alwaysOpen: z.boolean(),
isClosed: z.boolean(),
openingTime: z.string(),
closingTime: z.string(),
openingTime: z.string().optional(),
closingTime: z.string().optional(),
sortOrder: z.number().optional(),
}),
weekends: z.object({
alwaysOpen: z.boolean(),
isClosed: z.boolean(),
openingTime: z.string(),
closingTime: z.string(),
openingTime: z.string().optional(),
closingTime: z.string().optional(),
sortOrder: z.number().optional(),
}),
}),
@@ -232,12 +232,12 @@ const ParkingPricingSchema = z.object({
currency: z.string(),
range: z.object({
min: z.number(),
max: z.number(),
max: z.number().optional(),
}),
ordinary: z.array(
z.object({
period: z.string(),
amount: z.number(),
amount: z.number().optional(),
startTime: z.string(),
endTime: z.string(),
})
@@ -245,35 +245,37 @@ const ParkingPricingSchema = z.object({
weekend: z.array(
z.object({
period: z.string(),
amount: z.number(),
startTime: z.string(),
endTime: z.string(),
})
),
}),
requestedCurrency: z.object({
currency: z.string(),
range: z.object({
min: z.number(),
max: z.number(),
}),
ordinary: z.array(
z.object({
period: z.string(),
amount: z.number(),
startTime: z.string(),
endTime: z.string(),
})
),
weekend: z.array(
z.object({
period: z.string(),
amount: z.number(),
amount: z.number().optional(),
startTime: z.string(),
endTime: z.string(),
})
),
}),
requestedCurrency: z
.object({
currency: z.string(),
range: z.object({
min: z.number(),
max: z.number(),
}),
ordinary: z.array(
z.object({
period: z.string(),
amount: z.number(),
startTime: z.string(),
endTime: z.string(),
})
),
weekend: z.array(
z.object({
period: z.string(),
amount: z.number(),
startTime: z.string(),
endTime: z.string(),
})
),
})
.optional(),
})
const ParkingSchema = z.object({
@@ -459,7 +461,7 @@ export const getHotelDataSchema = z.object({
parking: z.array(ParkingSchema),
specialNeedGroups: z.array(SpecialNeedGroupSchema),
socialMedia: SocialMediaSchema,
meta: MetaSchema,
meta: MetaSchema.optional(),
isActive: z.boolean(),
}),
relationships: RelationshipsSchema,

View File

@@ -15,7 +15,7 @@ import {
RoomSchema,
} from "./output"
import tempFilterData from "./tempFilterData.json"
// import tempHotelData from "./tempHotelData.json"
import tempHotelData from "./tempHotelData.json"
import tempRatesData from "./tempRatesData.json"
export const hotelQueryRouter = router({
@@ -33,43 +33,53 @@ export const hotelQueryRouter = router({
params.set("include", include.join(","))
}
const apiResponse = await api.get(
`${api.endpoints.v1.hotels}/${hotelId}`,
{
cache: "no-store",
headers: {
Authorization: `Bearer ${ctx.serviceToken}`,
},
},
params
// Enable once Hotel API has support for service token.
// const apiResponse = await api.get(
// `${api.endpoints.v1.hotels}/${hotelId}`,
// {
// cache: "no-store",
// headers: {
// Authorization: `Bearer ${ctx.serviceToken}`,
// },
// },
// params
// )
// if (!apiResponse.ok) {
// console.info(`API Response Failed - Getting Hotel`)
// console.error(apiResponse)
// return null
// }
// const apiJson = await apiResponse.json()
// const validatedHotelData = getHotelDataSchema.safeParse(apiJson)
const { included, ...apiJsonWithoutIncluded } = tempHotelData
const validatedHotelData = getHotelDataSchema.safeParse(
apiJsonWithoutIncluded
)
if (!apiResponse.ok) {
console.info(`API Response Failed - Getting Hotel`)
console.error(apiResponse)
return null
}
const apiJson = await apiResponse.json()
const validatedHotelData = getHotelDataSchema.safeParse(apiJson)
if (!validatedHotelData.success) {
console.error(`Get Individual Hotel Data - Verified Data Error`)
console.error(validatedHotelData.error)
throw badRequestError()
}
const included = validatedHotelData.data.included || []
// const included = validatedHotelData.data.included || []
const roomCategories = included
.filter((item) => item.type === "roomcategories")
.map((roomCategory) => {
const validatedRoom = RoomSchema.safeParse(roomCategory)
if (!validatedRoom.success) {
console.error(`Get Room Category Data - Verified Data Error`)
console.error(validatedRoom.error)
throw badRequestError()
}
return validatedRoom.data
})
? included
.filter((item) => item.type === "roomcategories")
.map((roomCategory) => {
const validatedRoom = RoomSchema.safeParse(roomCategory)
if (!validatedRoom.success) {
console.error(`Get Room Category Data - Verified Data Error`)
console.error(validatedRoom.error)
throw badRequestError()
}
return validatedRoom.data
})
: []
return {
hotel: validatedHotelData.data.data.attributes,

File diff suppressed because it is too large Load Diff