These are now defined in Netlify UI for dedicated environments (test, stage, production): AUTH_URL NEXTAUTH_URL PUBLIC_URL Code now falls back to incoming request host. Mainly used for deployment previews which do not have Akamai in front, meaning we do not need the above workaround as incoming request host matches the actual public facing host. When Akamai is in front, we lose the public facing host in Netlify's routing layer as they internally use `x-forwarded-for` and we can't claim it for our usage.
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
import { NextRequest } from "next/server"
|
|
import { env } from "process"
|
|
|
|
import { Lang } from "@/constants/languages"
|
|
import { profile } from "@/constants/routes/myPages"
|
|
import { serverClient } from "@/lib/trpc/server"
|
|
import { getPublicURL } from "@/server/utils"
|
|
|
|
export async function GET(
|
|
request: NextRequest,
|
|
{ params }: { params: { lang: string } }
|
|
) {
|
|
const publicURL = getPublicURL(request)
|
|
|
|
console.log(`[add-card] callback started`)
|
|
const lang = params.lang as Lang
|
|
const returnUrl = new URL(`${publicURL}/${profile[lang ?? Lang.en]}`)
|
|
|
|
try {
|
|
const searchParams = request.nextUrl.searchParams
|
|
const success = searchParams.get("success")
|
|
const failure = searchParams.get("failure")
|
|
const cancel = searchParams.get("cancel")
|
|
const trxId = searchParams.get("datatransTrxId")
|
|
|
|
if (success) {
|
|
if (trxId) {
|
|
const saveCardSuccess = await serverClient().user.creditCard.save({
|
|
transactionId: trxId,
|
|
})
|
|
|
|
if (saveCardSuccess) {
|
|
console.log(`[add-card] planet success: card saved success`)
|
|
returnUrl.searchParams.set("success", "true")
|
|
} else {
|
|
console.log(`[add-card] planet success: card saved fail`)
|
|
returnUrl.searchParams.set("failure", "true")
|
|
}
|
|
} else {
|
|
console.log(`[add-card] planet success: missing datatransTrxId`)
|
|
returnUrl.searchParams.set("error", "true")
|
|
}
|
|
} else if (failure) {
|
|
console.log(`[add-card] planet fail`)
|
|
returnUrl.searchParams.set("failure", "true")
|
|
} else if (cancel) {
|
|
console.log(`[add-card] planet cancel`)
|
|
returnUrl.searchParams.set("cancel", "true")
|
|
}
|
|
} catch (e) {
|
|
console.error(`[add-card] error saving credit card`, e)
|
|
returnUrl.searchParams.set("error", "true")
|
|
}
|
|
|
|
console.log(`[add-card] redirecting to: ${returnUrl}`)
|
|
return Response.redirect(returnUrl)
|
|
}
|