feat(SW-176): filter in route

This commit is contained in:
Fredrik Thorsson
2024-09-03 15:18:38 +02:00
parent 87de043598
commit a3e540baa6
4 changed files with 18 additions and 40 deletions

View File

@@ -37,6 +37,8 @@ import {
import tempFilterData from "./tempFilterData.json"
import tempRatesData from "./tempRatesData.json"
import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel"
const meter = metrics.getMeter("trpc.hotels")
const getHotelCounter = meter.createCounter("trpc.hotel.get")
const getHotelSuccessCounter = meter.createCounter("trpc.hotel.get-success")
@@ -234,24 +236,16 @@ export const hotelQueryRouter = router({
attachedProfileId,
} = input
// TODO: remove undefined type from params
const params: Record<string, string | number | undefined> = {
const params: Record<string, string | number> = {
roomStayStartDate,
roomStayEndDate,
adults,
children,
promotionCode,
reservationProfileType,
attachedProfileId,
}
availabilityCounter.add(1, {
cityId,
roomStayStartDate,
roomStayEndDate,
adults,
children,
promotionCode,
reservationProfileType,
attachedProfileId,
})
console.info(
"api.hotels.availability start",
@@ -260,7 +254,6 @@ export const hotelQueryRouter = router({
const apiResponse = await api.get(
`${api.endpoints.v0.availability}/${cityId}`,
{
cache: "no-store",
headers: {
Authorization: `Bearer ${ctx.serviceToken}`,
},
@@ -274,10 +267,6 @@ export const hotelQueryRouter = router({
roomStayStartDate,
roomStayEndDate,
adults,
children,
promotionCode,
reservationProfileType,
attachedProfileId,
error_type: "http_error",
error: JSON.stringify({
status: apiResponse.status,
@@ -307,10 +296,6 @@ export const hotelQueryRouter = router({
roomStayStartDate,
roomStayEndDate,
adults,
children,
promotionCode,
reservationProfileType,
attachedProfileId,
error_type: "validation_error",
error: JSON.stringify(validateAvailabilityData.error),
})
@@ -328,18 +313,20 @@ export const hotelQueryRouter = router({
roomStayStartDate,
roomStayEndDate,
adults,
children,
promotionCode,
reservationProfileType,
attachedProfileId,
})
console.info(
"api.hotels.availability success",
JSON.stringify({
query: { cityId, params: params },
})
)
return {
availability: validateAvailabilityData.data,
availability: validateAvailabilityData.data.data
.filter(
(hotels) =>
hotels.attributes.status === AvailabilityEnum.Available
)
.flatMap((hotels) => hotels.attributes),
}
}),
}),