From e0fe5ff0d5614fce82ddba460809383648928790 Mon Sep 17 00:00:00 2001 From: Niclas Edenvin Date: Tue, 6 May 2025 11:07:04 +0200 Subject: [PATCH] fix(SW-2614): send language to API We were missing the language param on some endpoints. We are still missing it on some, but I left those without when we don't need it, e.g. when only caring about the IDs in the response. --- .../MyStay/GuestDetails/index.tsx | 1 + .../ChangeDates/Steps/Confirmation/index.tsx | 1 + .../server/routers/booking/input.ts | 1 + .../server/routers/booking/mutation.ts | 19 +++++++++++++------ .../server/routers/booking/query.ts | 8 ++++++-- apps/scandic-web/server/routers/user/query.ts | 14 ++++++++++++-- apps/scandic-web/server/routers/user/utils.ts | 15 +++++++++++++-- 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/apps/scandic-web/components/HotelReservation/MyStay/GuestDetails/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/GuestDetails/index.tsx index 3b8be970f..0f17411a5 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/GuestDetails/index.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/GuestDetails/index.tsx @@ -112,6 +112,7 @@ export default function GuestDetails({ phoneNumber: data.phoneNumber, countryCode: data.countryCode, }, + language: lang, }) } diff --git a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/NotCancelled/ManageStay/Actions/ChangeDates/Steps/Confirmation/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/NotCancelled/ManageStay/Actions/ChangeDates/Steps/Confirmation/index.tsx index 40b7c1c5f..57af899cc 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/NotCancelled/ManageStay/Actions/ChangeDates/Steps/Confirmation/index.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/Actions/NotCancelled/ManageStay/Actions/ChangeDates/Steps/Confirmation/index.tsx @@ -89,6 +89,7 @@ export default function Confirmation({ refId: bookedRoom.refId, checkInDate, checkOutDate, + language: lang, }) } diff --git a/apps/scandic-web/server/routers/booking/input.ts b/apps/scandic-web/server/routers/booking/input.ts index 79a46afc5..290a1622a 100644 --- a/apps/scandic-web/server/routers/booking/input.ts +++ b/apps/scandic-web/server/routers/booking/input.ts @@ -157,6 +157,7 @@ export const updateBookingInput = z.object({ countryCode: z.string().optional(), }) .optional(), + language: z.nativeEnum(Lang).transform((val) => langToApiLang[val]), }) // Query diff --git a/apps/scandic-web/server/routers/booking/mutation.ts b/apps/scandic-web/server/routers/booking/mutation.ts index 09c75c9bd..a9d1c6686 100644 --- a/apps/scandic-web/server/routers/booking/mutation.ts +++ b/apps/scandic-web/server/routers/booking/mutation.ts @@ -151,10 +151,13 @@ export const bookingMutationRouter = router({ .mutation(async function ({ ctx, input }) { const accessToken = ctx.session?.token.access_token ?? ctx.serviceToken const { confirmationNumber } = ctx - const { refId, ...body } = input + const { language, refId, ...body } = input const addPackageCounter = createCounter("trpc.booking", "package.add") - const metricsAddPackage = addPackageCounter.init({ confirmationNumber }) + const metricsAddPackage = addPackageCounter.init({ + confirmationNumber, + language, + }) metricsAddPackage.start() @@ -167,7 +170,8 @@ export const bookingMutationRouter = router({ { headers, body: body, - } + }, + { language } ) if (!apiResponse.ok) { @@ -192,11 +196,12 @@ export const bookingMutationRouter = router({ .mutation(async function ({ ctx, input }) { const accessToken = ctx.session?.token.access_token ?? ctx.serviceToken const { confirmationNumber } = ctx - const { refId, language, ...body } = input + const { language, refId, ...body } = input const guaranteeBookingCounter = createCounter("trpc.booking", "guarantee") const metricsGuaranteeBooking = guaranteeBookingCounter.init({ confirmationNumber, + language, }) metricsGuaranteeBooking.start() @@ -236,11 +241,12 @@ export const bookingMutationRouter = router({ .mutation(async function ({ ctx, input }) { const accessToken = ctx.session?.token.access_token || ctx.serviceToken const { confirmationNumber } = ctx - const { refId, ...body } = input + const { language, refId, ...body } = input const updateBookingCounter = createCounter("trpc.booking", "update") const metricsUpdateBooking = updateBookingCounter.init({ confirmationNumber, + language, }) metricsUpdateBooking.start() @@ -252,7 +258,8 @@ export const bookingMutationRouter = router({ headers: { Authorization: `Bearer ${accessToken}`, }, - } + }, + { language } ) if (!apiResponse.ok) { diff --git a/apps/scandic-web/server/routers/booking/query.ts b/apps/scandic-web/server/routers/booking/query.ts index 66cd08f06..b24fe05a2 100644 --- a/apps/scandic-web/server/routers/booking/query.ts +++ b/apps/scandic-web/server/routers/booking/query.ts @@ -7,6 +7,7 @@ import { safeProtectedServiceProcedure, serviceProcedure, } from "@/server/trpc" +import { toApiLang } from "@/server/utils" import { getBookedHotelRoom } from "@/utils/booking" @@ -208,11 +209,13 @@ export const bookingQueryRouter = router({ .input(getBookingStatusInput) .concat(refIdPlugin.toConfirmationNumber) .query(async function ({ ctx }) { - const { confirmationNumber } = ctx + const { confirmationNumber, lang } = ctx + const language = toApiLang(lang) const getBookingStatusCounter = createCounter("trpc.booking", "status") const metricsGetBookingStatus = getBookingStatusCounter.init({ confirmationNumber, + language, }) metricsGetBookingStatus.start() @@ -223,7 +226,8 @@ export const bookingQueryRouter = router({ headers: { Authorization: `Bearer ${ctx.serviceToken}`, }, - } + }, + { language } ) if (!apiResponse.ok) { diff --git a/apps/scandic-web/server/routers/user/query.ts b/apps/scandic-web/server/routers/user/query.ts index 269809cab..625a2aa10 100644 --- a/apps/scandic-web/server/routers/user/query.ts +++ b/apps/scandic-web/server/routers/user/query.ts @@ -6,6 +6,7 @@ import { router, safeProtectedProcedure, } from "@/server/trpc" +import { toApiLang } from "@/server/utils" import { isValidSession } from "@/utils/session" import { getFriendsMembership, getMembershipCards } from "@/utils/user" @@ -154,7 +155,8 @@ export const userQueryRouter = router({ const previousStaysData = await getPreviousStays( ctx.session.token.access_token, - 1 + 1, + ctx.lang ) if (!previousStaysData) { metricsUserTrackingInfo.success({ @@ -199,6 +201,7 @@ export const userQueryRouter = router({ const data = await getPreviousStays( ctx.session.token.access_token, limit, + language, cursor ) @@ -231,6 +234,7 @@ export const userQueryRouter = router({ const data = await getUpcomingStays( ctx.session.token.access_token, limit, + language, cursor ) @@ -258,7 +262,7 @@ export const userQueryRouter = router({ friendTransactions: languageProtectedProcedure .input(friendTransactionsInput) .query(async ({ ctx, input }) => { - const { limit, page } = input + const { limit, page, lang } = input const friendTransactionsCounter = createCounter( "trpc.user.transactions", @@ -268,16 +272,22 @@ export const userQueryRouter = router({ const metricsFriendTransactions = friendTransactionsCounter.init({ limit, page, + lang, }) metricsFriendTransactions.start() + const language = lang ?? ctx.lang + const apiResponse = await api.get( api.endpoints.v1.Profile.Transaction.friendTransactions, { headers: { Authorization: `Bearer ${ctx.session.token.access_token}`, }, + }, + { + language: toApiLang(language), } ) diff --git a/apps/scandic-web/server/routers/user/utils.ts b/apps/scandic-web/server/routers/user/utils.ts index da9f02311..b6c83fd3e 100644 --- a/apps/scandic-web/server/routers/user/utils.ts +++ b/apps/scandic-web/server/routers/user/utils.ts @@ -5,6 +5,7 @@ import { env } from "@/env/server" import * as api from "@/lib/api" import { dt } from "@/lib/dt" import { createCounter } from "@/server/telemetry" +import { toApiLang } from "@/server/utils" import { cache } from "@/utils/cache" import { encrypt } from "@/utils/encryption" @@ -114,17 +115,22 @@ export async function getMembershipNumber( export async function getPreviousStays( accessToken: string, limit: number = 10, + language: Lang, cursor?: string ) { const getPreviousStaysCounter = createCounter("user", "getPreviousStays") const metricsGetPreviousStays = getPreviousStaysCounter.init({ limit, cursor, + language, }) metricsGetPreviousStays.start() - const params: Record = { limit: String(limit) } + const params: Record = { + limit: String(limit), + language: toApiLang(language), + } if (cursor) { params.offset = cursor @@ -161,17 +167,22 @@ export async function getPreviousStays( export async function getUpcomingStays( accessToken: string, limit: number = 10, + language: Lang, cursor?: string ) { const getUpcomingStaysCounter = createCounter("user", "getUpcomingStays") const metricsGetUpcomingStays = getUpcomingStaysCounter.init({ limit, cursor, + language, }) metricsGetUpcomingStays.start() - const params: Record = { limit: String(limit) } + const params: Record = { + limit: String(limit), + language: toApiLang(language), + } if (cursor) { params.offset = cursor