This commit is contained in:
Benjamin Toby
2025-01-14 00:01:02 +01:00
parent 8f00f333aa
commit d586de0639
90 changed files with 533 additions and 960 deletions
+9 -13
View File
@@ -3,6 +3,7 @@
import _ from "lodash";
import serverError from "../../backend/serverError";
import runQuery from "../../backend/db/runQuery";
import { DSQL_TableSchemaType, GetReturn } from "../../../types";
type Param = {
query: string;
@@ -31,11 +32,6 @@ export default async function apiGet({
return { success: false, msg: "Wrong Input." };
}
/**
* Create new user folder and file
*
* @description Create new user folder and file
*/
let results;
try {
@@ -49,10 +45,7 @@ export default async function apiGet({
local: useLocal,
});
/** @type {import("../../../types").DSQL_TableSchemaType | undefined} */
let tableSchema:
| import("../../../types").DSQL_TableSchemaType
| undefined;
let tableSchema: DSQL_TableSchemaType | undefined;
if (dbSchema) {
const targetTable = dbSchema.tables.find(
@@ -77,20 +70,23 @@ export default async function apiGet({
results = result;
/** @type {import("../../../types").GetReturn} */
const resObject: import("../../../types").GetReturn = {
const resObject: GetReturn = {
success: true,
payload: results,
schema: tableName && tableSchema ? tableSchema : undefined,
};
return resObject;
} catch (/** @type {any} */ error: any) {
} catch (error: any) {
serverError({
component: "/api/query/get/lines-85-94",
message: error.message,
});
return { success: false, payload: null, error: error.message };
return {
success: false,
payload: null,
error: error.message,
};
}
}
@@ -26,7 +26,7 @@ export default async function handleSocialDb({
useLocal,
}: HandleSocialDbFunctionParams): Promise<APILoginFunctionReturn> {
try {
const existingSocialIdUserQuery = `SELECT * FROM users WHERE social_id = ? AND social_login='1' AND social_platform = ? `;
const existingSocialIdUserQuery = `SELECT * FROM datasquirel.users WHERE social_id = ? AND social_login='1' AND social_platform = ? `;
const existingSocialIdUserValues = [
social_id.toString(),
social_platform,
@@ -60,7 +60,7 @@ export default async function handleSocialDb({
};
}
const existingEmailOnlyQuery = `SELECT * FROM users WHERE email='${finalEmail}'`;
const existingEmailOnlyQuery = `SELECT * FROM datasquirel.users WHERE email='${finalEmail}'`;
let existingEmailOnly = await varDatabaseDbHandler({
database: database ? database : "datasquirel",
@@ -76,7 +76,7 @@ export default async function handleSocialDb({
};
}
const foundUserQuery = `SELECT * FROM users WHERE email=? AND social_login='1' AND social_platform=? AND social_id=?`;
const foundUserQuery = `SELECT * FROM datasquirel.users WHERE email=? AND social_login='1' AND social_platform=? AND social_id=?`;
const foundUserQueryValues = [finalEmail, social_platform, social_id];
const foundUser = await varDatabaseDbHandler({
@@ -134,7 +134,7 @@ export default async function handleSocialDb({
await addMariadbUser({ userId: newUser.insertId, useLocal });
}
const newUserQueriedQuery = `SELECT * FROM users WHERE id='${newUser.insertId}'`;
const newUserQueriedQuery = `SELECT * FROM datasquirel.users WHERE id='${newUser.insertId}'`;
const newUserQueried = await varDatabaseDbHandler({
database: database ? database : "datasquirel",
@@ -30,11 +30,13 @@ export default async function loginSocialUser({
additionalFields,
useLocal,
}: Param): Promise<APILoginFunctionReturn> {
const foundUserQuery = `SELECT * FROM users WHERE email=? AND social_id=? AND social_platform=?`;
const finalDbName = database ? database : "datasquirel";
const foundUserQuery = `SELECT * FROM \`${finalDbName}\`.\`users\` WHERE email=? AND social_id=? AND social_platform=?`;
const foundUserValues = [user.email, user.social_id, social_platform];
const foundUser = await varDatabaseDbHandler({
database: database ? database : "datasquirel",
database: finalDbName,
queryString: foundUserQuery,
queryValuesArray: foundUserValues,
useLocal,
@@ -46,7 +46,7 @@ export default async function apiCreateUser({
payload.password = hashedPassword;
const fieldsQuery = `SHOW COLUMNS FROM users`;
const fieldsQuery = `SHOW COLUMNS FROM ${dbFullName}.users`;
let fields = await varDatabaseDbHandler({
queryString: fieldsQuery,
@@ -100,7 +100,7 @@ export default async function apiCreateUser({
};
}
const existingUserQuery = `SELECT * FROM users WHERE email = ?${
const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE email = ?${
payload.username ? " OR username = ?" : ""
}`;
const existingUserValues = payload.username
@@ -140,7 +140,7 @@ export default async function apiCreateUser({
});
if (addUser?.insertId) {
const newlyAddedUserQuery = `SELECT id,first_name,last_name,email,username,phone,image,image_thumbnail,city,state,country,zip_code,address,verification_status,more_user_data FROM users WHERE id='${addUser.insertId}'`;
const newlyAddedUserQuery = `SELECT id,first_name,last_name,email,username,phone,image,image_thumbnail,city,state,country,zip_code,address,verification_status,more_user_data FROM ${dbFullName}.users WHERE id='${addUser.insertId}'`;
const newlyAddedUser = await varDatabaseDbHandler({
queryString: newlyAddedUserQuery,
@@ -16,7 +16,7 @@ export default async function apiDeleteUser({
deletedUserId,
useLocal,
}: Param): Promise<Return> {
const existingUserQuery = `SELECT * FROM users WHERE id = ?`;
const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`;
const existingUserValues = [deletedUserId];
const existingUser = await varDatabaseDbHandler({
@@ -13,13 +13,17 @@ export default async function apiGetUser({
userId,
useLocal,
}: APIGetUserFunctionParams): Promise<GetUserFunctionReturn> {
const query = `SELECT ${fields.join(",")} FROM users WHERE id=?`;
const finalDbName = dbFullName.replace(/[^a-z0-9_]/g, "");
const query = `SELECT ${fields.join(
","
)} FROM ${finalDbName}.users WHERE id=?`;
const API_USER_ID = userId || process.env.DSQL_API_USER_ID;
let foundUser = await varDatabaseDbHandler({
queryString: query,
queryValuesArray: [API_USER_ID],
database: dbFullName.replace(/[^a-z0-9_]/g, ""),
database: finalDbName,
useLocal,
});
@@ -24,7 +24,7 @@ export default async function apiLoginUser({
social,
useLocal,
}: APILoginFunctionParams): Promise<APILoginFunctionReturn> {
const dbFullName = database;
const dbFullName = database.replace(/[^a-z0-9_]/g, "");
/**
* Check input validity
@@ -55,9 +55,9 @@ export default async function apiLoginUser({
: null;
let foundUser = await varDatabaseDbHandler({
queryString: `SELECT * FROM users WHERE email = ? OR username = ?`,
queryString: `SELECT * FROM ${dbFullName}.users WHERE email = ? OR username = ?`,
queryValuesArray: [email, username],
database: dbFullName.replace(/[^a-z0-9_]/g, ""),
database: dbFullName,
useLocal,
});
@@ -108,9 +108,9 @@ export default async function apiLoginUser({
if (isPasswordCorrect && email_login) {
const resetTempCode = await varDatabaseDbHandler({
queryString: `UPDATE users SET ${email_login_field} = '' WHERE email = ? OR username = ?`,
queryString: `UPDATE ${dbFullName}.users SET ${email_login_field} = '' WHERE email = ? OR username = ?`,
queryValuesArray: [email, username],
database: dbFullName.replace(/[^a-z0-9_]/g, ""),
database: dbFullName,
useLocal,
});
}
@@ -20,7 +20,7 @@ export default async function apiReauthUser({
let foundUser =
existingUser?.id && existingUser.id.toString().match(/./)
? await varDatabaseDbHandler({
queryString: `SELECT * FROM users WHERE id=?`,
queryString: `SELECT * FROM ${database}.users WHERE id=?`,
queryValuesArray: [existingUser.id.toString()],
database,
useLocal,
@@ -46,7 +46,7 @@ export default async function apiSendEmailCode({
}
const createdAt = Date.now();
const foundUserQuery = `SELECT * FROM users WHERE email = ?`;
const foundUserQuery = `SELECT * FROM ${database}.users WHERE email = ?`;
const foundUserValues = [email];
let foundUser = await varDatabaseDbHandler({
@@ -107,13 +107,13 @@ export default async function apiSendEmailCode({
if (!info?.accepted) throw new Error("Mail not Sent!");
const setTempCodeQuery = `UPDATE users SET ${email_login_field} = ? WHERE email = ?`;
const setTempCodeQuery = `UPDATE ${database}.users SET ${email_login_field} = ? WHERE email = ?`;
const setTempCodeValues = [tempCode + `-${createdAt}`, email];
let setTempCode = await varDatabaseDbHandler({
queryString: setTempCodeQuery,
queryValuesArray: setTempCodeValues,
database: database,
database,
useLocal,
});
@@ -25,7 +25,7 @@ export default async function apiUpdateUser({
useLocal,
dbSchema,
}: Param): Promise<Return> {
const existingUserQuery = `SELECT * FROM users WHERE id = ?`;
const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`;
const existingUserValues = [updatedUserId];
const existingUser = await varDatabaseDbHandler({
@@ -107,8 +107,7 @@ export default async function addDbEntry({
)
: await dbHandler({
paradigm: "Read Only",
database: dbFullName,
queryString: `SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`,
queryString: `SELECT * FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`,
queryValues: [duplicateColumnValue],
});
@@ -234,7 +233,7 @@ export default async function addDbEntry({
////////////////////////////////////////
const query = `INSERT INTO \`${tableName}\` (${insertKeysArray.join(
const query = `INSERT INTO \`${dbFullName}\`.\`${tableName}\` (${insertKeysArray.join(
","
)}) VALUES (${insertValuesArray.map(() => "?").join(",")})`;
const queryValuesArray = insertValuesArray;
@@ -243,7 +242,6 @@ export default async function addDbEntry({
? await dbHandler(query, queryValuesArray)
: await dbHandler({
paradigm,
database: dbFullName,
queryString: query,
queryValues: queryValuesArray,
});
@@ -47,14 +47,13 @@ export default async function deleteDbEntry({
*
* @description
*/
const query = `DELETE FROM ${tableName} WHERE \`${identifierColumnName}\`=?`;
const query = `DELETE FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${identifierColumnName}\`=?`;
const deletedEntry = isMaster
? await dbHandler(query, [identifierValue])
: await dbHandler({
paradigm,
queryString: query,
database: dbFullName,
queryValues: [identifierValue],
});
@@ -84,7 +84,6 @@ export default async function runQuery({
result = await varReadOnlyDatabaseDbHandler({
queryString: formattedQuery,
queryValuesArray: queryValuesArray?.map((vl) => String(vl)),
database: dbFullName,
tableSchema,
useLocal: local,
});
@@ -92,7 +91,6 @@ export default async function runQuery({
result = await fullAccessDbHandler({
queryString: formattedQuery,
queryValuesArray: queryValuesArray?.map((vl) => String(vl)),
database: dbFullName,
tableSchema,
local,
});
@@ -164,7 +164,7 @@ export default async function updateDbEntry({
////////////////////////////////////////
////////////////////////////////////////
const query = `UPDATE ${tableName} SET ${updateKeyValueArray.join(
const query = `UPDATE \`${dbFullName}\`.\`${tableName}\` SET ${updateKeyValueArray.join(
","
)} WHERE \`${identifierColumnName}\`=?`;
@@ -174,7 +174,6 @@ export default async function updateDbEntry({
? await dbHandler(query, updateValues)
: await dbHandler({
paradigm,
database: dbFullName,
queryString: query,
queryValues: updateValues,
});
+2 -19
View File
@@ -1,20 +1,6 @@
import fs from "fs";
import serverError from "./serverError";
import mysql from "serverless-mysql";
import grabDbSSL from "../../utils/backend/grabDbSSL";
const connection = mysql({
config: {
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: process.env.DSQL_DB_NAME,
charset: "utf8mb4",
ssl: grabDbSSL(),
},
});
/**
* # Main DB Handler Function
*/
@@ -26,11 +12,6 @@ export default async function dbHandler(...args: any[]) {
"utf8"
);
/**
* Declare variables
*
* @description Declare "results" variable
*/
let results;
/**
@@ -39,6 +20,8 @@ export default async function dbHandler(...args: any[]) {
* @description Fetch data from db if no cache
*/
try {
const connection = global.DSQL_DB_CONN;
results = await new Promise((resolve, reject) => {
connection.query(
...args,
@@ -7,7 +7,6 @@ import serverError from "./serverError";
type Param = {
queryString: string;
database: string;
local?: boolean;
tableSchema?: import("../../types").DSQL_TableSchemaType | null;
queryValuesArray?: string[];
@@ -18,7 +17,6 @@ type Param = {
*/
export default async function fullAccessDbHandler({
queryString,
database,
tableSchema,
queryValuesArray,
local,
@@ -42,7 +40,6 @@ export default async function fullAccessDbHandler({
? await LOCAL_DB_HANDLER(queryString, queryValuesArray)
: await DSQL_USER_DB_HANDLER({
paradigm: "Full Access",
database,
queryString,
queryValues: queryValuesArray,
});
@@ -1,6 +1,6 @@
import fs from "fs";
import serverError from "./serverError";
import NO_DB_HANDLER from "../../../package-shared/utils/backend/global-db/NO_DB_HANDLER";
import NO_DB_HANDLER from "@/package-shared/utils/backend/global-db/NO_DB_HANDLER";
/**
* # No Database DB Handler
@@ -33,7 +33,6 @@ export default async function varDatabaseDbHandler({
? true
: false;
/** @type {any} */
const FINAL_DB_HANDLER: any = useLocal
? LOCAL_DB_HANDLER
: isMaster
@@ -58,7 +57,6 @@ export default async function varDatabaseDbHandler({
? await FINAL_DB_HANDLER(queryString, queryValuesArray)
: await FINAL_DB_HANDLER({
paradigm: "Full Access",
database,
queryString,
queryValues: queryValuesArray,
});
@@ -67,11 +65,11 @@ export default async function varDatabaseDbHandler({
? await FINAL_DB_HANDLER(queryString)
: await FINAL_DB_HANDLER({
paradigm: "Full Access",
database,
queryString,
});
}
} catch (error: any) {
console.log(`varDatabaseDbHandler Error: ${error.message}`);
serverError({
component: "varDatabaseDbHandler/lines-29-32",
message: error.message,
@@ -8,7 +8,6 @@ import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER";
type Param = {
queryString: string;
database: string;
queryValuesArray?: string[];
tableSchema?: import("../../types").DSQL_TableSchemaType;
useLocal?: boolean;
@@ -20,7 +19,6 @@ type Param = {
*/
export default async function varReadOnlyDatabaseDbHandler({
queryString,
database,
queryValuesArray,
tableSchema,
useLocal,
@@ -42,7 +40,6 @@ export default async function varReadOnlyDatabaseDbHandler({
? await LOCAL_DB_HANDLER(queryString, queryValuesArray)
: await DSQL_USER_DB_HANDLER({
paradigm: "Read Only",
database,
queryString,
queryValues: queryValuesArray,
});