Merged in feat/SW-3549-pass-scandic-token (pull request #2989)
Feat/SW-3549 pass scandic token * WIP pass scandic token * pass scandic token when booking * Merge branch 'master' of bitbucket.org:scandic-swap/web into feat/SW-3549-pass-scandic-token * pass user token when doing availability search * undo changes * merge * Merged in fix/sw-3551-rsc-bookingflowconfig (pull request #2988) fix(SW-3551): Fix issue with BookingConfigProvider in RSC * wip move config to pages * Move config providing to pages * Merged in fix/update-promo-error-modal-text (pull request #2990) fix: update promo error modal text * fix: update promo error modal text Approved-by: Emma Zettervall * Merged in fix/sw-3514-missing-membership-input-for-multiroom (pull request #2991) fix(SW-3514): Show join Scandic Friends card for SAS multiroom * Show join card for room 2+ Approved-by: Hrishikesh Vaipurkar * Merged in feat/lokalise-rebuild (pull request #2993) Feat/lokalise rebuild * chore(lokalise): update translation ids * chore(lokalise): easier to switch between projects * chore(lokalise): update translation ids * . * . * . * . * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * . * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * chore(lokalise): new translations * merge * switch to errors for missing id's * merge * sync translations Approved-by: Linus Flood * Merged in feat/SW-3552-logout-from-social-session-when- (pull request #2994) feat(SW-3552): Removed scandic session on logout Approved-by: Joakim Jäderberg * merge * replace getRedemptionTokenSafely() with context based instead * Refactor user verification and error handling across multiple components; implement safeTry utility for safer async calls * Refactor user verification and error handling across multiple components; implement safeTry utility for safer async calls * merge * Merge branch 'master' of bitbucket.org:scandic-swap/web into feat/SW-3549-pass-scandic-token * add booking scope remove unused getMembershipNumber() Approved-by: Anton Gunnarsson Approved-by: Hrishikesh Vaipurkar
This commit is contained in:
@@ -6,6 +6,7 @@ import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
import { login } from "@scandic-hotels/common/constants/routes/handleAuth"
|
||||
import { createLogger } from "@scandic-hotels/common/logger/createLogger"
|
||||
import { createContext } from "@scandic-hotels/trpc/context"
|
||||
import { getVerifiedUser } from "@scandic-hotels/trpc/routers/user/utils/getVerifiedUser"
|
||||
import {
|
||||
appServerClient,
|
||||
configureServerClient,
|
||||
@@ -23,6 +24,21 @@ export async function createAppContext() {
|
||||
const webviewTokenCookie = cookie.get("webviewToken")
|
||||
const loginType = headersList.get("loginType")
|
||||
|
||||
async function getUserSession(): Promise<Session | null> {
|
||||
const session = await auth()
|
||||
const webToken = webviewTokenCookie?.value
|
||||
if (!session?.token && !webToken) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
session ||
|
||||
({
|
||||
token: { access_token: webToken, loginType },
|
||||
} as Session)
|
||||
)
|
||||
}
|
||||
|
||||
const ctx = createContext({
|
||||
app: "scandic-web",
|
||||
lang: headersList.get("x-lang") as Lang,
|
||||
@@ -31,19 +47,38 @@ export async function createAppContext() {
|
||||
url: headersList.get("x-url")!,
|
||||
webToken: webviewTokenCookie?.value,
|
||||
contentType: headersList.get("x-contenttype")!,
|
||||
auth: async () => {
|
||||
const session = await auth()
|
||||
const webToken = webviewTokenCookie?.value
|
||||
if (!session?.token && !webToken) {
|
||||
auth: async () => await getUserSession(),
|
||||
getScandicUserToken: async () => {
|
||||
const session = await getUserSession()
|
||||
return session?.token?.access_token ?? null
|
||||
},
|
||||
getUserPointsBalance: async () => {
|
||||
const session = await getUserSession()
|
||||
if (!session) return null
|
||||
|
||||
const user = await getVerifiedUser({
|
||||
token: {
|
||||
expires_at: session.token.expires_at ?? 0,
|
||||
access_token: session.token.access_token,
|
||||
},
|
||||
})
|
||||
|
||||
if (!user) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
session ||
|
||||
({
|
||||
token: { access_token: webToken, loginType },
|
||||
} as Session)
|
||||
)
|
||||
return user.membership?.currentPoints ?? 0
|
||||
},
|
||||
getScandicUser: async () => {
|
||||
const session = await getUserSession()
|
||||
if (!session) return null
|
||||
|
||||
return await getVerifiedUser({
|
||||
token: {
|
||||
expires_at: session.token.expires_at ?? 0,
|
||||
access_token: session.token.access_token,
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user