This commit is contained in:
Benjamin Toby
2025-06-04 08:43:16 +01:00
parent 1364074c2c
commit 761348de08
37 changed files with 577 additions and 140 deletions
@@ -7,13 +7,14 @@ import connDbHandler from "../../../utils/db/conn-db-handler";
import checkIfIsMaster from "../../../utils/check-if-is-master";
import { DbContextsArray } from "./runQuery";
import debugLog from "../../../utils/logging/debug-log";
import { PostInsertReturn } from "../../../types";
type Param = {
type Param<T extends { [k: string]: any } = any> = {
dbContext?: (typeof DbContextsArray)[number];
paradigm?: "Read Only" | "Full Access";
dbFullName?: string;
tableName: string;
data: any;
data: T;
tableSchema?: import("../../../types").DSQL_TableSchemaType;
duplicateColumnName?: string;
duplicateColumnValue?: string;
@@ -27,7 +28,7 @@ type Param = {
/**
* Add a db Entry Function
*/
export default async function addDbEntry({
export default async function addDbEntry<T extends { [k: string]: any } = any>({
dbContext,
paradigm,
dbFullName,
@@ -41,10 +42,7 @@ export default async function addDbEntry({
encryptionSalt,
forceLocal,
debug,
}: Param): Promise<any> {
/**
* Initialize variables
*/
}: Param<T>): Promise<PostInsertReturn | null> {
const isMaster = forceLocal
? true
: checkIfIsMaster({ dbContext, dbFullName });
@@ -64,10 +62,6 @@ export default async function addDbEntry({
? global.DSQL_DB_CONN
: global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
if (data?.["date_created_timestamp"]) delete data["date_created_timestamp"];
if (data?.["date_updated_timestamp"]) delete data["date_updated_timestamp"];
if (data?.["date_updated"]) delete data["date_updated"];
@@ -75,10 +69,6 @@ export default async function addDbEntry({
if (data?.["date_created"]) delete data["date_created"];
if (data?.["date_created_code"]) delete data["date_created_code"];
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
if (duplicateColumnName && typeof duplicateColumnName === "string") {
const checkDuplicateQuery = `SELECT * FROM ${
isMaster ? "" : `\`${dbFullName}\`.`
@@ -107,11 +97,6 @@ export default async function addDbEntry({
}
}
/**
* Declare variables
*
* @description Declare "results" variable
*/
const dataKeys = Object.keys(data);
let insertKeysArray = [];
@@ -120,7 +105,6 @@ export default async function addDbEntry({
for (let i = 0; i < dataKeys.length; i++) {
try {
const dataKey = dataKeys[i];
// @ts-ignore
let value = data?.[dataKey];
const targetFieldSchemaArray = tableSchema
@@ -186,8 +170,6 @@ export default async function addDbEntry({
}
}
////////////////////////////////////////
if (!data?.["date_created"]) {
insertKeysArray.push("`date_created`");
insertValuesArray.push(Date());
@@ -198,8 +180,6 @@ export default async function addDbEntry({
insertValuesArray.push(Date.now());
}
////////////////////////////////////////
if (!data?.["date_updated"]) {
insertKeysArray.push("`date_updated`");
insertValuesArray.push(Date());
@@ -210,8 +190,6 @@ export default async function addDbEntry({
insertValuesArray.push(Date.now());
}
////////////////////////////////////////
const query = `INSERT INTO ${
isMaster ? "" : `\`${dbFullName}\`.`
}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray
@@ -254,8 +232,5 @@ export default async function addDbEntry({
});
}
/**
* Return statement
*/
return newInsert;
}
@@ -4,8 +4,9 @@ import encrypt from "../../dsql/encrypt";
import checkIfIsMaster from "../../../utils/check-if-is-master";
import connDbHandler from "../../../utils/db/conn-db-handler";
import { DbContextsArray } from "./runQuery";
import { PostInsertReturn } from "../../../types";
type Param = {
type Param<T extends { [k: string]: any } = any> = {
dbContext?: (typeof DbContextsArray)[number];
dbFullName?: string;
tableName: string;
@@ -13,7 +14,7 @@ type Param = {
encryptionSalt?: string;
data: any;
tableSchema?: import("../../../types").DSQL_TableSchemaType;
identifierColumnName: string;
identifierColumnName: keyof T;
identifierValue: string | number;
forceLocal?: boolean;
};
@@ -22,7 +23,9 @@ type Param = {
* # Update DB Function
* @description
*/
export default async function updateDbEntry({
export default async function updateDbEntry<
T extends { [k: string]: any } = any
>({
dbContext,
dbFullName,
tableName,
@@ -33,7 +36,7 @@ export default async function updateDbEntry({
encryptionKey,
encryptionSalt,
forceLocal,
}: Param): Promise<object | null> {
}: Param<T>): Promise<PostInsertReturn | null> {
/**
* Check if data is valid
*/
@@ -157,9 +160,9 @@ export default async function updateDbEntry({
const query = `UPDATE ${
isMaster ? "" : `\`${dbFullName}\`.`
}\`${tableName}\` SET ${updateKeyValueArray.join(
","
)} WHERE \`${identifierColumnName}\`=?`;
}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${
identifierColumnName as string
}\`=?`;
updateValues.push(identifierValue);