44 lines
1.2 KiB
JavaScript
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 });
|
|
}
|
|
}
|