Files
pedwfrontend/pages/api/auth/resolve-locale.js
T

44 lines
1.2 KiB
JavaScript

import { getPortalLogin } from "../../../actions/services/accountService";
import { consoleLogger } from "../../../actions/core/logger";
const WELSH_LANGUAGE_CODE = 846040000;
const resolveRequestLocale = (req) =>
req?.query?.locale ||
req?.body?.locale ||
req?.cookies?.pedw_locale ||
"en";
export default async function handler(req, res) {
if (req.method !== "POST") {
return res.status(405).json({ message: "Method not allowed" });
}
const email = String(req.body?.email || "")
.trim()
.toLowerCase();
const sessionLocale = resolveRequestLocale(req);
if (!email) {
return res.status(200).json({ locale: sessionLocale });
}
try {
const portalUserObj = await getPortalLogin(email);
const preferredLanguage =
portalUserObj?.value?.[0]?.pinswg_preferredlanguage;
const locale =
preferredLanguage === WELSH_LANGUAGE_CODE
? "cy"
: preferredLanguage != null
? "en"
: sessionLocale;
return res.status(200).json({ locale });
} catch (error) {
consoleLogger(error);
return res.status(200).json({ locale: sessionLocale });
}
}