news-analyze/server/api/user/loadInfo.ts

60 lines
1.6 KiB
TypeScript

/*// Fixed data for testing
export default defineEventHandler(async (event) => {
return {
doNotShowLangPrefPopUp: false,
email: "test@yuanhau.com",
name: "Howard",
useCustomGroqKey: true,
translate: {
enabled: true,
lang: "en",
provider: "google", // Default provider
},
};
});
*/
import sql from "~/server/components/postgres";
import getUserTokenMinusSQLInjection from "~/server/components/getUserToken";
export default defineEventHandler(async (event) => {
try {
const token = await getUserTokenMinusSQLInjection(event);
if (token.error.length !== 0) {
return {
error: token.error,
};
}
const fetchMainData = await sql`
SELECT * FROM users
WHERE username = ${token.user}
`;
const fetchOtherUserData = await sql`
SELECT * FROM user_other_data
WHERE username = ${token.user}
`;
if (fetchMainData.length === 0 || fetchOtherUserData.length === 0) {
return {
error: "ERR_USER_DOESNT_EXIST",
};
}
return {
doNotShowLangPrefPopUp:
fetchOtherUserData[0].remove_translate_popup || false,
email: fetchMainData[0].email || "",
name: fetchMainData[0].firstname || "",
useCustomGroqKey:
fetchOtherUserData[0].groq_api_key.length !== 0 || false,
translate: {
enabled: fetchOtherUserData[0].translate_enabled || false,
lang: "en",
provider: fetchOtherUserData[0].translate_provider || "google",
},
};
} catch (e) {
console.log(e);
return {
error: "ERR_SERVER_SIDE",
e: e.message,
};
}
});