Bug Fixes

This commit is contained in:
Benjamin Toby
2024-11-05 15:18:40 +01:00
parent 3cdf78e58d
commit 748ff55092
507 changed files with 3719 additions and 1231 deletions
+10 -6
View File
@@ -25,7 +25,9 @@ async function createDbFromSchema({ userId, dbFnArg }) {
* @description Grab Schema
*/
const path = userId
? `../jsonData/dbSchemas/users/user-${userId}/main.json`
? `${String(
process.env.DSQL_USER_DB_SCHEMA_PATH
)}/user-${userId}/main.json`
: "../jsonData/dbSchemas/main.json";
/** @type {import("../package-shared/types").DSQL_DatabaseSchemaType[]} */
const dbSchema = require(path);
@@ -113,11 +115,13 @@ async function createDbFromSchema({ userId, dbFnArg }) {
}
}
const recordedDbEntryArray = await varDatabaseDbHandler({
database: "datasquirel",
queryString: `SELECT * FROM user_databases WHERE db_full_name = ?`,
queryValuesArray: [dbFullName],
});
const recordedDbEntryArray = userId
? await varDatabaseDbHandler({
database: "datasquirel",
queryString: `SELECT * FROM user_databases WHERE db_full_name = ?`,
queryValuesArray: [dbFullName],
})
: undefined;
const recordedDbEntry = recordedDbEntryArray?.[0];
@@ -1,15 +1,17 @@
// @ts-check
const fs = require("fs");
require("dotenv").config({ path: "../../../.env" });
const hashPassword = require("datasquirel/functions/hashPassword");
const path = require("path");
require("dotenv").config({ path: "../../../.env" });
const fs = require("fs");
const hashPassword = require("datasquirel/functions/hashPassword");
const { execSync } = require("child_process");
const encrypt = require("../../../package-shared/functions/backend/encrypt");
const addMariadbUser = require("../../../package-shared/functions/backend/addMariadbUser");
const DB_HANDLER = require("../../../package-shared/utils/backend/global-db/DB_HANDLER");
const addDbEntry = require("../../../package-shared/functions/backend/db/addDbEntry");
const updateDbEntry = require("../../../package-shared/functions/backend/db/updateDbEntry");
const EJSON = require("../../../package-shared/utils/ejson");
const tmpDir = process.argv[process.argv.length - 1];
/**
* # Create New User
@@ -21,9 +23,17 @@ async function createUser() {
* @description Check if request body is valid
*/
try {
const userObj = JSON.parse(
fs.readFileSync(path.resolve(__dirname, "./new-user.json"), "utf-8")
);
const isTmpDir = Boolean(tmpDir?.match(/\.json$/));
const targetPath = isTmpDir
? path.resolve(process.cwd(), tmpDir)
: path.resolve(__dirname, "./new-user.json");
const userObj = EJSON.parse(fs.readFileSync(targetPath, "utf-8"));
if (typeof userObj !== "object" || Array.isArray(userObj))
throw new Error("User Object Invalid!");
console.log("userObj", userObj);
const ROOT_DIR = path.resolve(__dirname, "../../../");
@@ -37,7 +47,6 @@ async function createUser() {
const email = userObj.email;
const password = userObj.password;
const username = userObj.username;
const id = userObj.id || undefined;
if (!email?.match(/.*@.*\..*/)) return false;
@@ -90,7 +99,7 @@ async function createUser() {
*
* @description Create new user folder and file
*/
let newUserSchemaFolderPath = `./jsonData/dbSchemas/users/user-${newUser.insertId}`;
let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.insertId}`;
let newUserMediaFolderPath = path.join(
STATIC_ROOT,
`images/user-images/user-${newUser.insertId}`
@@ -149,6 +158,12 @@ async function createUser() {
},
});
if (isTmpDir) {
try {
fs.unlinkSync(path.resolve(process.cwd(), tmpDir));
} catch (error) {}
}
return true;
} catch (/** @type {any} */ error) {
console.log(`Error in creating user => ${error.message}`);
@@ -1,15 +1,13 @@
// @ts-check
const fs = require("fs");
require("dotenv").config({ path: "../../../.env" });
const hashPassword = require("datasquirel/functions/hashPassword");
const path = require("path");
const { execSync } = require("child_process");
const encrypt = require("../../../package-shared/functions/backend/encrypt");
const addMariadbUser = require("../../../package-shared/functions/backend/addMariadbUser");
const DB_HANDLER = require("../../../package-shared/utils/backend/global-db/DB_HANDLER");
const addDbEntry = require("../../../package-shared/functions/backend/db/addDbEntry");
require("dotenv").config({ path: "../../../.env" });
const fs = require("fs");
const hashPassword = require("datasquirel/functions/hashPassword");
const updateDbEntry = require("../../../package-shared/functions/backend/db/updateDbEntry");
const EJSON = require("../../../package-shared/utils/ejson");
const tmpDir = process.argv[process.argv.length - 1];
/**
* # Create New User
@@ -21,9 +19,14 @@ async function createUser() {
* @description Check if request body is valid
*/
try {
const updateUserObj = JSON.parse(
fs.readFileSync(path.resolve(__dirname, "./new-user.json"), "utf-8")
);
const isTmpDir = Boolean(tmpDir?.match(/\.json$/));
const targetPath = isTmpDir
? path.resolve(process.cwd(), tmpDir)
: path.resolve(__dirname, "./update-user.json");
const updateUserObj = EJSON.parse(fs.readFileSync(targetPath, "utf-8"));
if (typeof updateUserObj !== "object" || Array.isArray(updateUserObj))
throw new Error("Update User Object Invalid!");
let hashedPassword = updateUserObj.password
? hashPassword({
@@ -48,6 +51,12 @@ async function createUser() {
if (!newUser?.affectedRows) return false;
if (isTmpDir) {
try {
fs.unlinkSync(path.resolve(process.cwd(), tmpDir));
} catch (error) {}
}
return true;
} catch (/** @type {any} */ error) {
console.log(`Error in creating user => ${error.message}`);
+3 -1
View File
@@ -103,7 +103,9 @@ async function recoverMainJsonFromDb() {
}
fs.writeFileSync(
`./../jsonData/dbSchemas/users/user-${userId}/main.json`,
`${String(
process.env.DSQL_USER_DB_SCHEMA_PATH
)}/user-${userId}/main.json`,
JSON.stringify(dbWrite, null, 4),
"utf-8"
);
+1 -1
View File
@@ -18,7 +18,7 @@ async function updateChildrenTablesOnDb() {
* @description Grab Schema
*/
try {
const rootDir = "./../jsonData/dbSchemas/users";
const rootDir = String(process.env.DSQL_USER_DB_SCHEMA_PATH);
const userFolders = fs.readdirSync(rootDir);
for (let i = 0; i < userFolders.length; i++) {
+3 -18
View File
@@ -242,7 +242,9 @@ module.exports = async function updateTable({
].fields;
fs.writeFileSync(
`./../jsonData/dbSchemas/users/user-${userId}/main.json`,
`${String(
process.env.DSQL_USER_DB_SCHEMA_PATH
)}/user-${userId}/main.json`,
JSON.stringify(userSchemaData),
"utf8"
);
@@ -539,23 +541,6 @@ module.exports = async function updateTable({
database: dbFullName,
queryString: finalQueryString,
});
/**
* @description Delete foreignKey from User db schema if INSERT fails
*/
// if (!addForeignKey?.serverStatus) {
// const userSchemaData = dbSchema;
// const targetDbIndex = userSchemaData.findIndex((db) => db.dbFullName === dbFullName);
// const targetTableIndex = userSchemaData[targetDbIndex].tables.findIndex((table) => table.tableName === tableName);
// const targetFieldIndex = userSchemaData[targetDbIndex].tables[targetTableIndex].fields.findIndex((field) => field.fieldName === fieldName);
// console.log(userSchemaData[targetDbIndex].tables[targetTableIndex].fields[targetFieldIndex]);
// delete userSchemaData[targetDbIndex].tables[targetTableIndex].fields[targetFieldIndex].foreignKey;
// fs.writeFileSync(`./../jsonData/dbSchemas/users/user-${userId}/main.json`, JSON.stringify(userSchemaData), "utf8");
// }
}
////////////////////////////////////////
+1 -1
View File
@@ -11,7 +11,7 @@ const dbHandler = require("./dbHandler");
* @param {string} params.queryString - SQL string
* @param {string[]} [params.queryValuesArray] - Values Array
* @param {string} [params.database] - Database name
* @param {DSQL_TableSchemaType} [params.tableSchema] - Table schema
* @param {import("@/package-shared/types").DSQL_TableSchemaType} [params.tableSchema] - Table schema
* @returns {Promise<any>}
*/
module.exports = async function varDatabaseDbHandler({