This commit is contained in:
Benjamin Toby
2025-07-09 20:30:45 +01:00
parent ccb5605b58
commit c37d105dee
264 changed files with 2389 additions and 3743 deletions
+25 -13
View File
@@ -14,9 +14,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = addAdminUserOnLogin;
const serverError_1 = __importDefault(require("./serverError"));
const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER"));
const addDbEntry_1 = __importDefault(require("./db/addDbEntry"));
const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER"));
const dbHandler_1 = __importDefault(require("./dbHandler"));
/**
* Add Admin User on Login
* ==============================================================================
@@ -27,15 +26,14 @@ const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-d
*/
function addAdminUserOnLogin(_a) {
return __awaiter(this, arguments, void 0, function* ({ query, user, }) {
var _b;
try {
const finalDbHandler = global.DSQL_USE_LOCAL
? LOCAL_DB_HANDLER_1.default
: DB_HANDLER_1.default;
const { invite, database_access, priviledge, email } = query;
const lastInviteTimeQuery = `SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`;
const lastInviteTimeValues = [invite, email];
const lastInviteTimeArray = yield finalDbHandler(lastInviteTimeQuery, lastInviteTimeValues);
const lastInviteTimeArray = (yield (0, dbHandler_1.default)({
query: lastInviteTimeQuery,
values: lastInviteTimeValues,
}));
if (!lastInviteTimeArray || !lastInviteTimeArray[0]) {
throw new Error("No Invitation Found");
}
@@ -44,9 +42,15 @@ function addAdminUserOnLogin(_a) {
////////////////////////////////////////////////
const invitingUserDbQuery = `SELECT first_name,last_name,email FROM users WHERE id=?`;
const invitingUserDbValues = [invite];
const invitingUserDb = yield finalDbHandler(invitingUserDbQuery, invitingUserDbValues);
const invitingUserDb = (yield (0, dbHandler_1.default)({
query: invitingUserDbQuery,
values: invitingUserDbValues,
}));
if (invitingUserDb === null || invitingUserDb === void 0 ? void 0 : invitingUserDb[0]) {
const existingUserUser = yield finalDbHandler(`SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`, [invite, user.id, email]);
const existingUserUser = (yield (0, dbHandler_1.default)({
query: `SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`,
values: [invite, user.id, email],
}));
if (existingUserUser === null || existingUserUser === void 0 ? void 0 : existingUserUser[0]) {
console.log("User already added");
}
@@ -72,8 +76,14 @@ function addAdminUserOnLogin(_a) {
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
const dbTableData = yield finalDbHandler(`SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]);
const clearEntries = yield finalDbHandler(`DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?`, [invite, user.id]);
const dbTableData = (yield (0, dbHandler_1.default)({
query: `SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`,
values: [invite, email],
}));
const clearEntries = (yield (0, dbHandler_1.default)({
query: `DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?`,
values: [invite, user.id],
}));
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
@@ -97,11 +107,13 @@ function addAdminUserOnLogin(_a) {
}
}
}
const inviteAccepted = yield finalDbHandler(`UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]);
const inviteAccepted = (yield (0, dbHandler_1.default)({
query: `UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`,
values: [invite, email],
}));
}
}
catch (error) {
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Add Admin User On Login Error`, error);
(0, serverError_1.default)({
component: "addAdminUserOnLogin",
message: error.message,
+8 -12
View File
@@ -14,12 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = addMariadbUser;
const generate_password_1 = __importDefault(require("generate-password"));
const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER"));
const NO_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/NO_DB_HANDLER"));
const addDbEntry_1 = __importDefault(require("./db/addDbEntry"));
const encrypt_1 = __importDefault(require("../dsql/encrypt"));
const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER"));
const grab_sql_key_name_1 = __importDefault(require("../../utils/grab-sql-key-name"));
const dbHandler_1 = __importDefault(require("./dbHandler"));
/**
* # Add Mariadb User
*/
@@ -37,17 +35,15 @@ function addMariadbUser(_a) {
});
const encryptedPassword = (0, encrypt_1.default)({ data: password });
const createMariadbUsersQuery = `CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`;
if (global.DSQL_USE_LOCAL) {
yield (0, LOCAL_DB_HANDLER_1.default)(createMariadbUsersQuery);
}
else {
yield (0, NO_DB_HANDLER_1.default)(createMariadbUsersQuery);
}
yield (0, dbHandler_1.default)({
query: createMariadbUsersQuery,
});
const updateUserQuery = `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?`;
const updateUserValues = [username, encryptedPassword, userId];
const updateUser = global.DSQL_USE_LOCAL
? yield (0, LOCAL_DB_HANDLER_1.default)(updateUserQuery, updateUserValues)
: yield (0, DB_HANDLER_1.default)(updateUserQuery, updateUserValues);
yield (0, dbHandler_1.default)({
query: updateUserQuery,
values: updateUserValues,
});
const addMariadbUser = yield (0, addDbEntry_1.default)({
tableName: "mariadb_users",
data: {
@@ -1,5 +1,5 @@
type Param = {
userId: number;
userId?: number | string;
database: string;
payload?: {
[s: string]: any;
+5 -5
View File
@@ -14,12 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = addUsersTableToDb;
const serverError_1 = __importDefault(require("./serverError"));
const DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DB_HANDLER"));
const addDbEntry_1 = __importDefault(require("./db/addDbEntry"));
const createDbFromSchema_1 = __importDefault(require("../../shell/createDbFromSchema"));
const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER"));
const grabNewUsersTableSchema_1 = __importDefault(require("./grabNewUsersTableSchema"));
const grab_required_database_schemas_1 = require("../../shell/createDbFromSchema/grab-required-database-schemas");
const dbHandler_1 = __importDefault(require("./dbHandler"));
/**
* # Add User Table to Database
*/
@@ -45,9 +44,10 @@ function addUsersTableToDb(_a) {
targetDatabase.tables.push(userPreset);
}
(0, grab_required_database_schemas_1.writeUpdatedDbSchema)({ dbSchema: targetDatabase, userId });
const targetDb = global.DSQL_USE_LOCAL
? yield (0, LOCAL_DB_HANDLER_1.default)(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database])
: yield (0, DB_HANDLER_1.default)(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]);
const targetDb = (yield (0, dbHandler_1.default)({
query: `SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`,
values: [userId, database],
}));
if (targetDb === null || targetDb === void 0 ? void 0 : targetDb[0]) {
const newTableEntry = yield (0, addDbEntry_1.default)({
dbFullName: "datasquirel",
@@ -21,7 +21,6 @@ const grabAuthDirs = () => {
};
exports.grabAuthDirs = grabAuthDirs;
const initAuthFiles = () => {
var _a;
try {
const authDirs = (0, exports.grabAuthDirs)();
if (!fs_1.default.existsSync(authDirs.root))
@@ -32,7 +31,6 @@ const initAuthFiles = () => {
}
catch (error) {
console.log(`Error initializing Auth Files: ${error.message}`);
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Error Initializing Auth Files`, error);
return false;
}
};
+12 -10
View File
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = createDbSchemaFromDb;
const varDatabaseDbHandler_1 = __importDefault(require("../../functions/backend/varDatabaseDbHandler"));
const dbHandler_1 = __importDefault(require("../../functions/backend/dbHandler"));
const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEntry"));
const slugToCamelTitle_1 = __importDefault(require("../../shell/utils/slugToCamelTitle"));
const grab_dsql_schema_index_comment_1 = __importDefault(require("../../shell/utils/grab-dsql-schema-index-comment"));
@@ -35,10 +35,10 @@ function createDbSchemaFromDb(_a) {
});
if (!targetDb)
throw new Error(`Target Db not found!`);
const existingTables = yield (0, varDatabaseDbHandler_1.default)({
const existingTables = (yield (0, dbHandler_1.default)({
database: database.db_full_name,
queryString: `SHOW TABLES FROM ${database.db_full_name}`,
});
query: `SHOW TABLES FROM ${database.db_full_name}`,
}));
if (!existingTables)
throw new Error("No Existing Tables");
for (let i = 0; i < existingTables.length; i++) {
@@ -60,10 +60,10 @@ function createDbSchemaFromDb(_a) {
fields: [],
indexes: [],
};
const tableColumns = yield (0, varDatabaseDbHandler_1.default)({
const tableColumns = (yield (0, dbHandler_1.default)({
database: database.db_full_name,
queryString: `SHOW COLUMNS FROM ${database.db_full_name}.${tableName}`,
});
query: `SHOW COLUMNS FROM ${database.db_full_name}.${tableName}`,
}));
if (tableColumns) {
for (let k = 0; k < tableColumns.length; k++) {
const tableColumn = tableColumns[k];
@@ -88,10 +88,10 @@ function createDbSchemaFromDb(_a) {
tableObject.fields.push(fieldObject);
}
}
const tableIndexes = yield (0, varDatabaseDbHandler_1.default)({
const tableIndexes = (yield (0, dbHandler_1.default)({
database: database.db_full_name,
queryString: `SHOW INDEXES FROM ${database.db_full_name}.${tableName}`,
});
query: `SHOW INDEXES FROM ${database.db_full_name}.${tableName}`,
}));
if (tableIndexes) {
for (let m = 0; m < tableIndexes.length; m++) {
const indexObject = tableIndexes[m];
@@ -106,6 +106,8 @@ function createDbSchemaFromDb(_a) {
indexTableFields: [],
};
const targetTableFieldObject = tableColumns === null || tableColumns === void 0 ? void 0 : tableColumns.filter((col) => col.Field === Column_name)[0];
if (!targetTableFieldObject)
continue;
const existingIndexField = (_e = tableObject.indexes) === null || _e === void 0 ? void 0 : _e.filter((indx) => indx.indexName == Key_name);
if (existingIndexField && existingIndexField[0]) {
(_f = existingIndexField[0].indexTableFields) === null || _f === void 0 ? void 0 : _f.push({
+6 -11
View File
@@ -37,12 +37,6 @@ function addDbEntry(_a) {
label: "isMaster",
});
}
const DB_CONN = isMaster
? global.DSQL_DB_CONN
: global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN;
const DB_RO_CONN = isMaster
? global.DSQL_DB_CONN
: global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
let newData = lodash_1.default.cloneDeep(data);
if (newData) {
newData = (0, purge_default_fields_1.default)(newData);
@@ -55,7 +49,9 @@ function addDbEntry(_a) {
typeof duplicateColumnName === "string" &&
newData) {
const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
const duplicateValue = yield (0, conn_db_handler_1.default)(DB_RO_CONN, checkDuplicateQuery, [duplicateColumnValue]);
const duplicateValue = yield (0, conn_db_handler_1.default)(null, checkDuplicateQuery, [
duplicateColumnValue,
]);
if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) {
return {
success: false,
@@ -78,7 +74,7 @@ function addDbEntry(_a) {
}
}
function generateQuery(data) {
var _a, _b, _c;
var _a, _b;
const dataKeys = Object.keys(data);
let insertKeysArray = [];
let insertValuesArray = [];
@@ -131,7 +127,6 @@ function addDbEntry(_a) {
}
catch (error) {
console.log("DSQL: Error in parsing data keys =>", error.message);
(_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error parsing Data Keys`, error);
continue;
}
}
@@ -149,7 +144,7 @@ function addDbEntry(_a) {
if (newData) {
const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData);
const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`;
const newInsert = yield (0, conn_db_handler_1.default)(DB_CONN, query, queryValuesArray, debug);
const newInsert = yield (0, conn_db_handler_1.default)(null, query, queryValuesArray, debug);
return {
success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId),
payload: newInsert,
@@ -177,7 +172,7 @@ function addDbEntry(_a) {
.join(",")}`;
console.log("query", query);
console.log("batchQueryValuesArray", batchQueryValuesArray);
const newInsert = yield (0, conn_db_handler_1.default)(DB_CONN, query, batchQueryValuesArray.flat(), debug);
const newInsert = yield (0, conn_db_handler_1.default)(null, query, batchQueryValuesArray.flat(), debug);
if (debug) {
(0, debug_log_1.default)({
log: newInsert,
+2 -6
View File
@@ -21,21 +21,17 @@ const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-han
*/
function deleteDbEntry(_a) {
return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, identifierColumnName, identifierValue, forceLocal, }) {
var _b;
try {
const isMaster = forceLocal
? true
: (0, check_if_is_master_1.default)({ dbContext, dbFullName });
const DB_CONN = isMaster
? global.DSQL_DB_CONN
: global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN;
/**
* Execution
*
* @description
*/
const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
const deletedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, [
const deletedEntry = yield (0, conn_db_handler_1.default)(null, query, [
identifierValue,
]);
/**
@@ -44,7 +40,7 @@ function deleteDbEntry(_a) {
return deletedEntry;
}
catch (error) {
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Deleting Entry`, error);
console.log("Error Deleting Entry =>", error.message);
return null;
}
});
+1 -2
View File
@@ -8,7 +8,6 @@ type Param = {
dbSchema?: import("../../../types").DSQL_DatabaseSchemaType;
queryValuesArray?: (string | number)[];
tableName?: string;
forceLocal?: boolean;
};
type Return = {
result: any;
@@ -17,5 +16,5 @@ type Return = {
/**
* # Run DSQL users queries
*/
export default function runQuery({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, forceLocal, }: Param): Promise<Return>;
export default function runQuery({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, }: Param): Promise<Return>;
export {};
+7 -10
View File
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.DbContextsArray = void 0;
exports.default = runQuery;
const fullAccessDbHandler_1 = __importDefault(require("../fullAccessDbHandler"));
const varReadOnlyDatabaseDbHandler_1 = __importDefault(require("../varReadOnlyDatabaseDbHandler"));
const dbHandler_1 = __importDefault(require("../dbHandler"));
const serverError_1 = __importDefault(require("../serverError"));
const addDbEntry_1 = __importDefault(require("./addDbEntry"));
const updateDbEntry_1 = __importDefault(require("./updateDbEntry"));
@@ -26,7 +26,7 @@ exports.DbContextsArray = ["Master", "Dsql User"];
* # Run DSQL users queries
*/
function runQuery(_a) {
return __awaiter(this, arguments, void 0, function* ({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, forceLocal, }) {
return __awaiter(this, arguments, void 0, function* ({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, }) {
/**
* Declare variables
*
@@ -60,7 +60,7 @@ function runQuery(_a) {
try {
if (typeof query === "string") {
const formattedQuery = (0, trim_sql_1.default)(query);
if (debug && global.DSQL_USE_LOCAL) {
if (debug) {
console.log("runQuery:formattedQuery", formattedQuery);
}
/**
@@ -72,11 +72,9 @@ function runQuery(_a) {
throw new Error("Wrong Input!");
}
if (readOnly) {
result = yield (0, varReadOnlyDatabaseDbHandler_1.default)({
queryString: formattedQuery,
queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)),
tableSchema,
forceLocal,
result = yield (0, dbHandler_1.default)({
query: formattedQuery,
values: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)),
});
}
else {
@@ -84,7 +82,6 @@ function runQuery(_a) {
queryString: formattedQuery,
queryValuesArray: queryValuesArray === null || queryValuesArray === void 0 ? void 0 : queryValuesArray.map((vl) => String(vl)),
tableSchema,
forceLocal,
});
}
}
@@ -144,7 +141,7 @@ function runQuery(_a) {
component: "functions/backend/runQuery",
message: err.message,
});
if (debug && global.DSQL_USE_LOCAL) {
if (debug) {
console.log("runQuery:error", err.message);
}
result = null;
+1 -4
View File
@@ -40,9 +40,6 @@ function updateDbEntry(_a) {
const isMaster = forceLocal
? true
: (0, check_if_is_master_1.default)({ dbContext, dbFullName });
const DB_CONN = isMaster
? global.DSQL_DB_CONN
: global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
@@ -128,7 +125,7 @@ function updateDbEntry(_a) {
////////////////////////////////////////
const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`;
updateValues.push(identifierValue);
const updatedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, updateValues);
const updatedEntry = yield (0, conn_db_handler_1.default)(null, query, updateValues);
/**
* Return statement
*/
+15 -2
View File
@@ -1,11 +1,24 @@
type Param = {
import { DSQL_TableSchemaType } from "../../types";
import { ConnectionConfig } from "mariadb";
type Param<T extends {
[k: string]: any;
} = {
[k: string]: any;
}> = {
query: string;
values?: string[] | object;
noErrorLogs?: boolean;
database?: string;
tableSchema?: DSQL_TableSchemaType;
config?: ConnectionConfig;
};
/**
* # Main DB Handler Function
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
*/
export default function dbHandler({ query, values, noErrorLogs, }: Param): Promise<any[] | object | null>;
export default function dbHandler<T extends {
[k: string]: any;
} = {
[k: string]: any;
}>({ query, values, noErrorLogs, database, config, }: Param<T>): Promise<T[] | T | null>;
export {};
+13 -16
View File
@@ -21,24 +21,26 @@ const grab_dsql_connection_1 = __importDefault(require("../../utils/grab-dsql-co
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
*/
function dbHandler(_a) {
return __awaiter(this, arguments, void 0, function* ({ query, values, noErrorLogs, }) {
var _b;
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
return __awaiter(this, arguments, void 0, function* ({ query, values, noErrorLogs, database, config, }) {
let CONNECTION;
let results;
try {
CONNECTION = yield (0, grab_dsql_connection_1.default)({ database, config });
if (query && values) {
results = yield CONNECTION.query(query, values);
const queryResults = yield CONNECTION.query(query, values);
results = queryResults[0];
}
else {
results = yield CONNECTION.query(query);
const queryResults = yield CONNECTION.query(query);
results = queryResults[0];
}
}
catch (error) {
if (!noErrorLogs) {
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `DB Handler Error...`, error);
}
if (process.env.FIRST_RUN) {
return null;
console.log("Connection Info =>", CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.info);
if (error.message &&
typeof error.message == "string" &&
error.message.match(/Access denied for user.*password/i)) {
throw new Error("Authentication Failed!");
}
if (!noErrorLogs) {
console.log("ERROR in dbHandler =>", error.message);
@@ -54,12 +56,7 @@ function dbHandler(_a) {
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
}
if (results) {
if (Array.isArray(results)) {
return Array.from(results);
}
else {
return results;
}
return results;
}
else {
return null;
@@ -2,10 +2,9 @@ type Param = {
queryString: string;
tableSchema?: import("../../types").DSQL_TableSchemaType | null;
queryValuesArray?: string[];
forceLocal?: boolean;
};
/**
* # Full Access Db Handler
*/
export default function fullAccessDbHandler({ queryString, tableSchema, queryValuesArray, forceLocal, }: Param): Promise<any>;
export default function fullAccessDbHandler({ queryString, tableSchema, queryValuesArray, }: Param): Promise<any>;
export {};
@@ -20,29 +20,25 @@ const serverError_1 = __importDefault(require("./serverError"));
* # Full Access Db Handler
*/
function fullAccessDbHandler(_a) {
return __awaiter(this, arguments, void 0, function* ({ queryString, tableSchema, queryValuesArray, forceLocal, }) {
var _b;
return __awaiter(this, arguments, void 0, function* ({ queryString, tableSchema, queryValuesArray, }) {
/**
* Declare variables
*
* @description Declare "results" variable
*/
let results;
const DB_CONN = forceLocal
? global.DSQL_DB_CONN
: global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN;
/**
* Fetch from db
*
* @description Fetch data from db if no cache
*/
try {
results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray);
results = yield (0, conn_db_handler_1.default)(null, queryString, queryValuesArray);
////////////////////////////////////////
}
catch (error) {
////////////////////////////////////////
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Full Access DB Handler Error`, error);
console.log("Full Access DB Handler Error =>", error.message);
(0, serverError_1.default)({
component: "fullAccessDbHandler",
message: error.message,
@@ -0,0 +1,6 @@
type HandleBackupParams = {
appBackup?: boolean;
userId?: string | number;
};
export default function handleBackup({ appBackup, userId, }: HandleBackupParams): Promise<void>;
export {};
+62
View File
@@ -0,0 +1,62 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = handleBackup;
const grab_user_resource_1 = __importDefault(require("@/src/functions/db/grab-user-resource"));
const add_backup_1 = __importDefault(require("@/src/functions/api/su/add-backup"));
const grab_config_1 = __importDefault(require("@/package-shared/utils/backend/config/grab-config"));
const delete_backup_1 = __importDefault(require("@/src/functions/api/su/add-backup/delete-backup"));
function handleBackup(_a) {
return __awaiter(this, arguments, void 0, function* ({ appBackup, userId, }) {
var _b;
const { appConfig } = (0, grab_config_1.default)();
const maxBackups = ((_b = appConfig.main.max_backups) === null || _b === void 0 ? void 0 : _b.value) || 20;
const { count: existingAppBackupsCount } = yield (0, grab_user_resource_1.default)({
tableName: "backups",
isSuperUser: true,
query: {
query: {
user_id: {
nullValue: appBackup ? true : undefined,
value: appBackup ? undefined : String(userId),
},
},
},
countOnly: true,
});
if (existingAppBackupsCount && existingAppBackupsCount >= maxBackups) {
const { single: oldestAppBackup } = yield (0, grab_user_resource_1.default)({
tableName: "backups",
isSuperUser: true,
query: {
query: {
user_id: {
nullValue: appBackup ? true : undefined,
value: appBackup ? undefined : String(userId),
},
},
order: {
field: "id",
strategy: "ASC",
},
limit: 1,
},
});
if (oldestAppBackup === null || oldestAppBackup === void 0 ? void 0 : oldestAppBackup.id) {
yield (0, delete_backup_1.default)({ backup: oldestAppBackup });
}
}
yield (0, add_backup_1.default)({ targetUserId: userId });
});
}
@@ -4,8 +4,9 @@ export type HandleNodemailerParam = Mail.Options & {
senderName?: string;
alias?: string | null;
options?: SMTPTransport.Options;
verifyOnly?: boolean;
};
/**
* # Handle mails With Nodemailer
*/
export default function handleNodemailer(params: HandleNodemailerParam): Promise<SMTPTransport.SentMessageInfo | undefined>;
export default function handleNodemailer(params: HandleNodemailerParam): Promise<SMTPTransport.SentMessageInfo | boolean | undefined>;
+11 -7
View File
@@ -21,16 +21,20 @@ const nodemailer_1 = __importDefault(require("nodemailer"));
*/
function handleNodemailer(params) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b;
var _a, _b, _c;
if (!process.env.DSQL_MAIL_HOST ||
!process.env.DSQL_MAIL_EMAIL ||
!process.env.DSQL_MAIL_PASSWORD) {
return undefined;
}
let transporter = nodemailer_1.default.createTransport(Object.assign({ host: process.env.DSQL_MAIL_HOST, port: 465, secure: true, auth: {
user: process.env.DSQL_MAIL_EMAIL,
pass: process.env.DSQL_MAIL_PASSWORD,
} }, params.options));
let transporter = nodemailer_1.default.createTransport(Object.assign(Object.assign({ host: process.env.DSQL_MAIL_HOST, port: 465, secure: true }, params.options), { auth: Object.assign({ user: process.env.DSQL_MAIL_EMAIL, pass: process.env.DSQL_MAIL_PASSWORD }, (_a = params.options) === null || _a === void 0 ? void 0 : _a.auth) }));
if (params.verifyOnly) {
const isMailServerValid = yield transporter.verify();
if (!isMailServerValid) {
return false;
}
return true;
}
const sender = (() => {
var _a;
if ((_a = params.alias) === null || _a === void 0 ? void 0 : _a.match(/support/i))
@@ -43,9 +47,9 @@ function handleNodemailer(params) {
: undefined;
let finalHtml = mailRoot
? mailRoot
.replace(/{{email_body}}/, ((_a = params.html) === null || _a === void 0 ? void 0 : _a.toString()) || "")
.replace(/{{email_body}}/, ((_b = params.html) === null || _b === void 0 ? void 0 : _b.toString()) || "")
.replace(/{{issue_date}}/, Date().substring(0, 24))
: (_b = params.html) === null || _b === void 0 ? void 0 : _b.toString();
: (_c = params.html) === null || _c === void 0 ? void 0 : _c.toString();
try {
let mailObject = {};
mailObject["from"] = `"${params.senderName || "Datasquirel"}" <${sender}>`;
@@ -28,6 +28,8 @@ function suDbHandler(_a) {
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
bigIntAsNumber: true,
metaAsArray: true,
});
// const connection = mariadb.createPool({
// host: process.env.DSQL_DB_HOST,
@@ -1,5 +1,5 @@
type Param = {
userId: number | string;
userId?: number | string;
database: string;
newFields?: string[];
newPayload?: {
@@ -22,7 +22,7 @@ const grab_required_database_schemas_1 = require("../../shell/createDbFromSchema
*/
function updateUsersTableSchema(_a) {
return __awaiter(this, arguments, void 0, function* ({ userId, database, newFields, newPayload, dbId, }) {
var _b, _c;
var _b;
try {
const dbFullName = database;
let targetDatabase = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({
@@ -51,7 +51,7 @@ function updateUsersTableSchema(_a) {
return `Done!`;
}
catch (error) {
(_c = global.ERROR_CALLBACK) === null || _c === void 0 ? void 0 : _c.call(global, `Error Updating User Table Schema`, error);
console.log("Error Updating User Table Schema =>", error.message);
(0, serverError_1.default)({
component: "addUsersTableToDb",
message: error.message,
@@ -30,6 +30,8 @@ function userDbHandler(_a) {
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
bigIntAsNumber: true,
metaAsArray: true,
});
const results = yield (0, conn_db_handler_1.default)(connection, query);
return results;
@@ -1,13 +0,0 @@
import { DSQL_TableSchemaType } from "../../types";
type Param = {
queryString: string;
queryValuesArray?: any[];
database?: string;
tableSchema?: DSQL_TableSchemaType;
debug?: boolean;
};
/**
* # DB handler for specific database
*/
export default function varDatabaseDbHandler({ queryString, queryValuesArray, database, tableSchema, debug, }: Param): Promise<any>;
export {};
@@ -1,65 +0,0 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = varDatabaseDbHandler;
const parseDbResults_1 = __importDefault(require("./parseDbResults"));
const serverError_1 = __importDefault(require("./serverError"));
const grab_dsql_connection_1 = __importDefault(require("../../utils/grab-dsql-connection"));
const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler"));
/**
* # DB handler for specific database
*/
function varDatabaseDbHandler(_a) {
return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, database, tableSchema, debug, }) {
var _b;
let CONNECTION = yield (0, grab_dsql_connection_1.default)({ fa: true });
if (global.DSQL_USE_LOCAL)
CONNECTION = yield (0, grab_dsql_connection_1.default)({ local: true });
if (database === null || database === void 0 ? void 0 : database.match(/^datasquirel$/))
CONNECTION = yield (0, grab_dsql_connection_1.default)();
if (debug) {
console.log(`varDatabaseDbHandler:query:`, queryString);
console.log(`varDatabaseDbHandler:values:`, queryValuesArray);
}
let results = yield (0, conn_db_handler_1.default)(CONNECTION, queryString, queryValuesArray);
if (debug) {
console.log(`varDatabaseDbHandler:results:`, results);
}
if (results && tableSchema) {
try {
const unparsedResults = results;
const parsedResults = yield (0, parseDbResults_1.default)({
unparsedResults: unparsedResults,
tableSchema: tableSchema,
});
return parsedResults;
}
catch (error) {
console.log("\x1b[31mvarDatabaseDbHandler ERROR\x1b[0m =>", database, error);
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `VarDb Handler Error`, error);
(0, serverError_1.default)({
component: "varDatabaseDbHandler/lines-52-53",
message: error.message,
});
return null;
}
}
else if (results) {
return results;
}
else {
return null;
}
});
}
@@ -1,12 +0,0 @@
type Param = {
queryString: string;
queryValuesArray?: string[];
tableSchema?: import("../../types").DSQL_TableSchemaType;
forceLocal?: boolean;
};
/**
* # Read Only Db Handler with Varaibles
* @returns
*/
export default function varReadOnlyDatabaseDbHandler({ queryString, queryValuesArray, tableSchema, forceLocal, }: Param): Promise<any>;
export {};
@@ -1,56 +0,0 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = varReadOnlyDatabaseDbHandler;
const serverError_1 = __importDefault(require("./serverError"));
const parseDbResults_1 = __importDefault(require("./parseDbResults"));
const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler"));
/**
* # Read Only Db Handler with Varaibles
* @returns
*/
function varReadOnlyDatabaseDbHandler(_a) {
return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, tableSchema, forceLocal, }) {
var _b;
let results;
const DB_CONN = forceLocal
? global.DSQL_DB_CONN
: global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
try {
results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray);
}
catch (error) {
(0, serverError_1.default)({
component: "varReadOnlyDatabaseDbHandler",
message: error.message,
noMail: true,
});
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `VarReadOnlyDB Handler Error`, error);
return error.message;
}
finally {
}
if (results) {
const unparsedResults = results;
const parsedResults = yield (0, parseDbResults_1.default)({
unparsedResults: unparsedResults,
tableSchema: tableSchema,
});
return parsedResults;
}
else {
return null;
}
});
}