feat(SW-176): refactor
This commit is contained in:
@@ -28,7 +28,7 @@ export default async function SelectHotelPage({
|
|||||||
hotelId: "879",
|
hotelId: "879",
|
||||||
})
|
})
|
||||||
|
|
||||||
const availability = await serverClient().hotel.availability({
|
const availability = await serverClient().hotel.availability.get({
|
||||||
cityId: "8ec4bba3-1c38-4606-82d1-bbe3f6738e54",
|
cityId: "8ec4bba3-1c38-4606-82d1-bbe3f6738e54",
|
||||||
roomStayStartDate: "2024-11-01",
|
roomStayStartDate: "2024-11-01",
|
||||||
roomStayEndDate: "2024-11-02",
|
roomStayEndDate: "2024-11-02",
|
||||||
|
|||||||
@@ -218,97 +218,100 @@ export const hotelQueryRouter = router({
|
|||||||
roomCategories,
|
roomCategories,
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
availability: serviceProcedure
|
availability: router({
|
||||||
.input(getAvailabilityInputSchema)
|
get: serviceProcedure
|
||||||
.query(async ({ input, ctx }) => {
|
.input(getAvailabilityInputSchema)
|
||||||
const { cityId, roomStayStartDate, roomStayEndDate, adults } = input
|
.query(async ({ input, ctx }) => {
|
||||||
const params: Record<string, string | number> = {
|
const { cityId, roomStayStartDate, roomStayEndDate, adults } = input
|
||||||
roomStayStartDate,
|
const params: Record<string, string | number> = {
|
||||||
roomStayEndDate,
|
roomStayStartDate,
|
||||||
adults,
|
roomStayEndDate,
|
||||||
}
|
adults,
|
||||||
availabilityCounter.add(1, {
|
}
|
||||||
cityId,
|
availabilityCounter.add(1, {
|
||||||
roomStayStartDate,
|
|
||||||
roomStayEndDate,
|
|
||||||
adults,
|
|
||||||
})
|
|
||||||
console.info(
|
|
||||||
"api.hotels.availability start",
|
|
||||||
JSON.stringify({ query: { cityId, params } })
|
|
||||||
)
|
|
||||||
const apiResponse = await api.get(
|
|
||||||
`${api.endpoints.v0.availability}/${cityId}`,
|
|
||||||
{
|
|
||||||
cache: "no-store",
|
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${ctx.serviceToken}`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
params
|
|
||||||
)
|
|
||||||
if (!apiResponse.ok) {
|
|
||||||
const text = await apiResponse.text()
|
|
||||||
availabilityFailCounter.add(1, {
|
|
||||||
cityId,
|
cityId,
|
||||||
roomStayStartDate,
|
roomStayStartDate,
|
||||||
roomStayEndDate,
|
roomStayEndDate,
|
||||||
adults,
|
adults,
|
||||||
error_type: "http_error",
|
|
||||||
error: JSON.stringify({
|
|
||||||
status: apiResponse.status,
|
|
||||||
statusText: apiResponse.statusText,
|
|
||||||
text,
|
|
||||||
}),
|
|
||||||
})
|
})
|
||||||
console.error(
|
console.info(
|
||||||
"api.hotels.availability error",
|
"api.hotels.availability start",
|
||||||
JSON.stringify({
|
JSON.stringify({ query: { cityId, params } })
|
||||||
query: { cityId, params },
|
)
|
||||||
error: {
|
const apiResponse = await api.get(
|
||||||
|
`${api.endpoints.v0.availability}/${cityId}`,
|
||||||
|
{
|
||||||
|
cache: "no-store",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${ctx.serviceToken}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
params
|
||||||
|
)
|
||||||
|
if (!apiResponse.ok) {
|
||||||
|
const text = await apiResponse.text()
|
||||||
|
availabilityFailCounter.add(1, {
|
||||||
|
cityId,
|
||||||
|
roomStayStartDate,
|
||||||
|
roomStayEndDate,
|
||||||
|
adults,
|
||||||
|
error_type: "http_error",
|
||||||
|
error: JSON.stringify({
|
||||||
status: apiResponse.status,
|
status: apiResponse.status,
|
||||||
statusText: apiResponse.statusText,
|
statusText: apiResponse.statusText,
|
||||||
text,
|
text,
|
||||||
},
|
}),
|
||||||
})
|
})
|
||||||
)
|
console.error(
|
||||||
return null
|
"api.hotels.availability error",
|
||||||
}
|
JSON.stringify({
|
||||||
const apiJson = await apiResponse.json()
|
query: { cityId, params },
|
||||||
const validateAvailabilityData = getAvailabilitySchema.safeParse(apiJson)
|
error: {
|
||||||
if (!validateAvailabilityData.success) {
|
status: apiResponse.status,
|
||||||
availabilityFailCounter.add(1, {
|
statusText: apiResponse.statusText,
|
||||||
|
text,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
const apiJson = await apiResponse.json()
|
||||||
|
const validateAvailabilityData =
|
||||||
|
getAvailabilitySchema.safeParse(apiJson)
|
||||||
|
if (!validateAvailabilityData.success) {
|
||||||
|
availabilityFailCounter.add(1, {
|
||||||
|
cityId,
|
||||||
|
roomStayStartDate,
|
||||||
|
roomStayEndDate,
|
||||||
|
adults,
|
||||||
|
error_type: "validation_error",
|
||||||
|
error: JSON.stringify(validateAvailabilityData.error),
|
||||||
|
})
|
||||||
|
console.error(
|
||||||
|
"api.hotels.availability validation error",
|
||||||
|
JSON.stringify({
|
||||||
|
query: { cityId, params },
|
||||||
|
error: validateAvailabilityData.error,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
throw badRequestError()
|
||||||
|
}
|
||||||
|
availabilitySuccessCounter.add(1, {
|
||||||
cityId,
|
cityId,
|
||||||
roomStayStartDate,
|
roomStayStartDate,
|
||||||
roomStayEndDate,
|
roomStayEndDate,
|
||||||
adults,
|
adults,
|
||||||
error_type: "validation_error",
|
|
||||||
error: JSON.stringify(validateAvailabilityData.error),
|
|
||||||
})
|
})
|
||||||
console.error(
|
console.info(
|
||||||
"api.hotels.availability validation error",
|
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
query: { cityId, params },
|
query: { cityId, params: params },
|
||||||
error: validateAvailabilityData.error,
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
throw badRequestError()
|
return {
|
||||||
}
|
availability: validateAvailabilityData.data,
|
||||||
availabilitySuccessCounter.add(1, {
|
}
|
||||||
cityId,
|
}),
|
||||||
roomStayStartDate,
|
}),
|
||||||
roomStayEndDate,
|
|
||||||
adults,
|
|
||||||
})
|
|
||||||
console.info(
|
|
||||||
JSON.stringify({
|
|
||||||
query: { cityId, params: params },
|
|
||||||
})
|
|
||||||
)
|
|
||||||
return {
|
|
||||||
availability: validateAvailabilityData.data,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
rates: router({
|
rates: router({
|
||||||
get: publicProcedure
|
get: publicProcedure
|
||||||
.input(getRatesInputSchema)
|
.input(getRatesInputSchema)
|
||||||
|
|||||||
Reference in New Issue
Block a user