55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.default = sqlDeleteGenerator;
|
|
const sql_equality_parser_1 = __importDefault(require("../../../utils/sql-equality-parser"));
|
|
/**
|
|
* # SQL Delete Generator
|
|
*/
|
|
function sqlDeleteGenerator({ tableName, deleteKeyValues, dbFullName, data, }) {
|
|
const finalDbName = dbFullName ? `${dbFullName}.` : "";
|
|
try {
|
|
let queryStr = `DELETE FROM ${finalDbName}${tableName}`;
|
|
let deleteBatch = [];
|
|
let queryArr = [];
|
|
if (data) {
|
|
Object.keys(data).forEach((ky) => {
|
|
let value = data[ky];
|
|
const parsedValue = typeof value == "number" ? String(value) : value;
|
|
if (!parsedValue)
|
|
return;
|
|
if (parsedValue.match(/%/)) {
|
|
deleteBatch.push(`${ky} LIKE ?`);
|
|
queryArr.push(parsedValue);
|
|
}
|
|
else {
|
|
deleteBatch.push(`${ky}=?`);
|
|
queryArr.push(parsedValue);
|
|
}
|
|
});
|
|
}
|
|
else if (deleteKeyValues) {
|
|
deleteKeyValues.forEach((ky) => {
|
|
let value = ky.value;
|
|
const parsedValue = typeof value == "number" ? String(value) : value;
|
|
if (!parsedValue)
|
|
return;
|
|
const operator = (0, sql_equality_parser_1.default)(ky.operator || "EQUAL");
|
|
deleteBatch.push(`${ky.key} ${operator} ?`);
|
|
queryArr.push(parsedValue);
|
|
});
|
|
}
|
|
queryStr += ` WHERE ${deleteBatch.join(" AND ")}`;
|
|
return {
|
|
query: queryStr,
|
|
values: queryArr,
|
|
};
|
|
}
|
|
catch (error) {
|
|
console.log(`SQL delete gen ERROR: ${error.message}`);
|
|
return undefined;
|
|
}
|
|
}
|