datasquirel/package-shared/functions/backend/db/deleteDbEntry.ts
Benjamin Toby c37d105dee Updates
2025-07-09 20:30:45 +01:00

58 lines
1.6 KiB
TypeScript

import { DSQL_TableSchemaType, PostInsertReturn } from "../../../types";
import checkIfIsMaster from "../../../utils/check-if-is-master";
import connDbHandler from "../../../utils/db/conn-db-handler";
import { DbContextsArray } from "./runQuery";
type Param<T extends { [k: string]: any } = any, K extends string = string> = {
dbContext?: (typeof DbContextsArray)[number];
dbFullName?: string;
tableName: K;
tableSchema?: DSQL_TableSchemaType;
identifierColumnName: keyof T;
identifierValue: string | number;
forceLocal?: boolean;
};
/**
* # Delete DB Entry Function
* @description
*/
export default async function deleteDbEntry<
T extends { [k: string]: any } = any,
K extends string = string
>({
dbContext,
dbFullName,
tableName,
identifierColumnName,
identifierValue,
forceLocal,
}: Param<T, K>): Promise<PostInsertReturn | null> {
try {
const isMaster = forceLocal
? true
: checkIfIsMaster({ dbContext, dbFullName });
/**
* Execution
*
* @description
*/
const query = `DELETE FROM ${
isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`
}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
const deletedEntry = await connDbHandler(null, query, [
identifierValue,
]);
/**
* Return statement
*/
return deletedEntry;
} catch (error: any) {
console.log("Error Deleting Entry =>", error.message);
return null;
}
}