This commit is contained in:
Benjamin Toby
2025-01-20 08:12:01 +01:00
parent 3dd1d08a5b
commit fdd3913f4f
11 changed files with 55 additions and 22 deletions
@@ -1,6 +1,9 @@
import addAdminUserOnLogin from "../../backend/addAdminUserOnLogin";
import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler";
import { APILoginFunctionReturn } from "../../../types";
import {
APILoginFunctionReturn,
DATASQUIREL_LoggedInUser,
} from "../../../types";
type Param = {
user: {
@@ -31,8 +34,9 @@ export default async function loginSocialUser({
useLocal,
}: Param): Promise<APILoginFunctionReturn> {
const finalDbName = database ? database : "datasquirel";
const dbAppend = database ? `\`${finalDbName}\`.` : "";
const foundUserQuery = `SELECT * FROM \`${finalDbName}\`.\`users\` WHERE email=? AND social_id=? AND social_platform=?`;
const foundUserQuery = `SELECT * FROM ${dbAppend}\`users\` WHERE email=? AND social_id=? AND social_platform=?`;
const foundUserValues = [user.email, user.social_id, social_platform];
const foundUser = await varDatabaseDbHandler({
@@ -53,8 +57,7 @@ export default async function loginSocialUser({
"-" +
Math.random().toString(36).substring(2);
/** @type {import("../../../types").DATASQUIREL_LoggedInUser} */
let userPayload: import("../../../types").DATASQUIREL_LoggedInUser = {
let userPayload: DATASQUIREL_LoggedInUser = {
id: foundUser[0].id,
first_name: foundUser[0].first_name,
last_name: foundUser[0].last_name,
@@ -86,8 +89,7 @@ export default async function loginSocialUser({
});
}
/** @type {import("../../../types").APILoginFunctionReturn} */
let result: import("../../../types").APILoginFunctionReturn = {
let result: APILoginFunctionReturn = {
success: true,
payload: userPayload,
csrf: csrfKey,
@@ -65,7 +65,6 @@ export default async function apiGoogleLogin({
const { given_name, family_name, email, sub, picture } = gUser;
/** @type {Object<string, any>} */
let payloadObject: { [s: string]: any } = {
email: email,
first_name: given_name,
@@ -23,7 +23,7 @@ export default async function varDatabaseDbHandler({
useLocal,
debug,
}: Param): Promise<any> {
let CONNECTION = grabDSQLConnection({ fa: true });
let CONNECTION = grabDSQLConnection({ fa: true, local: useLocal });
if (useLocal) CONNECTION = grabDSQLConnection({ local: true });
if (database?.match(/^datasquirel$/)) CONNECTION = grabDSQLConnection();
+21 -1
View File
@@ -23,9 +23,29 @@ type Param = {
* # Grab General CONNECTION for DSQL
*/
export default function grabDSQLConnection(param?: Param): ServerlessMysql {
if (param?.local) {
return (
global.DSQL_DB_CONN ||
mysql({
config: {
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: param?.noDb
? undefined
: process.env.DSQL_DB_NAME,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
},
})
);
}
if (param?.ro) {
return (
DSQL_READ_ONLY_DB_CONN ||
global.DSQL_READ_ONLY_DB_CONN ||
mysql({
config: {
host: process.env.DSQL_DB_HOST,