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

View File

@ -24,7 +24,8 @@ const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabas
function loginSocialUser(_a) { function loginSocialUser(_a) {
return __awaiter(this, arguments, void 0, function* ({ user, social_platform, invitation, database, additionalFields, useLocal, }) { return __awaiter(this, arguments, void 0, function* ({ user, social_platform, invitation, database, additionalFields, useLocal, }) {
const finalDbName = database ? database : "datasquirel"; const finalDbName = database ? database : "datasquirel";
const foundUserQuery = `SELECT * FROM \`${finalDbName}\`.\`users\` WHERE email=? AND social_id=? AND social_platform=?`; const dbAppend = database ? `\`${finalDbName}\`.` : "";
const foundUserQuery = `SELECT * FROM ${dbAppend}\`users\` WHERE email=? AND social_id=? AND social_platform=?`;
const foundUserValues = [user.email, user.social_id, social_platform]; const foundUserValues = [user.email, user.social_id, social_platform];
const foundUser = yield (0, varDatabaseDbHandler_1.default)({ const foundUser = yield (0, varDatabaseDbHandler_1.default)({
database: finalDbName, database: finalDbName,
@ -40,7 +41,6 @@ function loginSocialUser(_a) {
let csrfKey = Math.random().toString(36).substring(2) + let csrfKey = Math.random().toString(36).substring(2) +
"-" + "-" +
Math.random().toString(36).substring(2); Math.random().toString(36).substring(2);
/** @type {import("../../../types").DATASQUIREL_LoggedInUser} */
let userPayload = { let userPayload = {
id: foundUser[0].id, id: foundUser[0].id,
first_name: foundUser[0].first_name, first_name: foundUser[0].first_name,
@ -70,7 +70,6 @@ function loginSocialUser(_a) {
useLocal, useLocal,
}); });
} }
/** @type {import("../../../types").APILoginFunctionReturn} */
let result = { let result = {
success: true, success: true,
payload: userPayload, payload: userPayload,

View File

@ -60,7 +60,6 @@ function apiGoogleLogin(_a) {
* @description Create new user folder and file * @description Create new user folder and file
*/ */
const { given_name, family_name, email, sub, picture } = gUser; const { given_name, family_name, email, sub, picture } = gUser;
/** @type {Object<string, any>} */
let payloadObject = { let payloadObject = {
email: email, email: email,
first_name: given_name, first_name: given_name,

View File

@ -22,7 +22,7 @@ const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handle
*/ */
function varDatabaseDbHandler(_a) { function varDatabaseDbHandler(_a) {
return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, database, tableSchema, useLocal, debug, }) { return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, database, tableSchema, useLocal, debug, }) {
let CONNECTION = (0, grab_dsql_connection_1.default)({ fa: true }); let CONNECTION = (0, grab_dsql_connection_1.default)({ fa: true, local: useLocal });
if (useLocal) if (useLocal)
CONNECTION = (0, grab_dsql_connection_1.default)({ local: true }); CONNECTION = (0, grab_dsql_connection_1.default)({ local: true });
if (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/)) if (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))

View File

@ -9,8 +9,25 @@ const serverless_mysql_1 = __importDefault(require("serverless-mysql"));
* # Grab General CONNECTION for DSQL * # Grab General CONNECTION for DSQL
*/ */
function grabDSQLConnection(param) { function grabDSQLConnection(param) {
if (param === null || param === void 0 ? void 0 : param.local) {
return (global.DSQL_DB_CONN ||
(0, serverless_mysql_1.default)({
config: {
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: (param === null || param === void 0 ? void 0 : 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 === null || param === void 0 ? void 0 : param.ro) { if (param === null || param === void 0 ? void 0 : param.ro) {
return (DSQL_READ_ONLY_DB_CONN || return (global.DSQL_READ_ONLY_DB_CONN ||
(0, serverless_mysql_1.default)({ (0, serverless_mysql_1.default)({
config: { config: {
host: process.env.DSQL_DB_HOST, host: process.env.DSQL_DB_HOST,

View File

@ -59,7 +59,6 @@ function googleAuth(_a) {
/** /**
* Initialize HTTP response variable * Initialize HTTP response variable
*/ */
/** @type {import("../../package-shared/types").APILoginFunctionReturn} */
let httpResponse = { let httpResponse = {
success: false, success: false,
}; };

View File

@ -1,6 +1,9 @@
import addAdminUserOnLogin from "../../backend/addAdminUserOnLogin"; import addAdminUserOnLogin from "../../backend/addAdminUserOnLogin";
import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler"; import varDatabaseDbHandler from "../../backend/varDatabaseDbHandler";
import { APILoginFunctionReturn } from "../../../types"; import {
APILoginFunctionReturn,
DATASQUIREL_LoggedInUser,
} from "../../../types";
type Param = { type Param = {
user: { user: {
@ -31,8 +34,9 @@ export default async function loginSocialUser({
useLocal, useLocal,
}: Param): Promise<APILoginFunctionReturn> { }: Param): Promise<APILoginFunctionReturn> {
const finalDbName = database ? database : "datasquirel"; 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 foundUserValues = [user.email, user.social_id, social_platform];
const foundUser = await varDatabaseDbHandler({ const foundUser = await varDatabaseDbHandler({
@ -53,8 +57,7 @@ export default async function loginSocialUser({
"-" + "-" +
Math.random().toString(36).substring(2); Math.random().toString(36).substring(2);
/** @type {import("../../../types").DATASQUIREL_LoggedInUser} */ let userPayload: DATASQUIREL_LoggedInUser = {
let userPayload: import("../../../types").DATASQUIREL_LoggedInUser = {
id: foundUser[0].id, id: foundUser[0].id,
first_name: foundUser[0].first_name, first_name: foundUser[0].first_name,
last_name: foundUser[0].last_name, last_name: foundUser[0].last_name,
@ -86,8 +89,7 @@ export default async function loginSocialUser({
}); });
} }
/** @type {import("../../../types").APILoginFunctionReturn} */ let result: APILoginFunctionReturn = {
let result: import("../../../types").APILoginFunctionReturn = {
success: true, success: true,
payload: userPayload, payload: userPayload,
csrf: csrfKey, csrf: csrfKey,

View File

@ -65,7 +65,6 @@ export default async function apiGoogleLogin({
const { given_name, family_name, email, sub, picture } = gUser; const { given_name, family_name, email, sub, picture } = gUser;
/** @type {Object<string, any>} */
let payloadObject: { [s: string]: any } = { let payloadObject: { [s: string]: any } = {
email: email, email: email,
first_name: given_name, first_name: given_name,

View File

@ -23,7 +23,7 @@ export default async function varDatabaseDbHandler({
useLocal, useLocal,
debug, debug,
}: Param): Promise<any> { }: Param): Promise<any> {
let CONNECTION = grabDSQLConnection({ fa: true }); let CONNECTION = grabDSQLConnection({ fa: true, local: useLocal });
if (useLocal) CONNECTION = grabDSQLConnection({ local: true }); if (useLocal) CONNECTION = grabDSQLConnection({ local: true });
if (database?.match(/^datasquirel$/)) CONNECTION = grabDSQLConnection(); if (database?.match(/^datasquirel$/)) CONNECTION = grabDSQLConnection();

View File

@ -23,9 +23,29 @@ type Param = {
* # Grab General CONNECTION for DSQL * # Grab General CONNECTION for DSQL
*/ */
export default function grabDSQLConnection(param?: Param): ServerlessMysql { 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) { if (param?.ro) {
return ( return (
DSQL_READ_ONLY_DB_CONN || global.DSQL_READ_ONLY_DB_CONN ||
mysql({ mysql({
config: { config: {
host: process.env.DSQL_DB_HOST, host: process.env.DSQL_DB_HOST,

View File

@ -1,6 +1,6 @@
{ {
"name": "@moduletrace/datasquirel", "name": "@moduletrace/datasquirel",
"version": "3.7.4", "version": "3.7.5",
"description": "Cloud-based SQL data management tool", "description": "Cloud-based SQL data management tool",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {

View File

@ -77,11 +77,9 @@ export default async function googleAuth({
* Initialize HTTP response variable * Initialize HTTP response variable
*/ */
/** @type {import("../../package-shared/types").APILoginFunctionReturn} */ let httpResponse: APILoginFunctionReturn = {
let httpResponse: import("../../package-shared/types").APILoginFunctionReturn = success: false,
{ };
success: false,
};
/** /**
* Check for local DB settings * Check for local DB settings