106 lines
4.7 KiB
JavaScript
106 lines
4.7 KiB
JavaScript
"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 = updateDbEntry;
|
|
const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master"));
|
|
const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler"));
|
|
const lodash_1 = __importDefault(require("lodash"));
|
|
const purge_default_fields_1 = __importDefault(require("../../../utils/purge-default-fields"));
|
|
const grab_parsed_value_1 = __importDefault(require("./grab-parsed-value"));
|
|
/**
|
|
* # Update DB Function
|
|
* @description
|
|
*/
|
|
function updateDbEntry(_a) {
|
|
return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, }) {
|
|
/**
|
|
* Check if data is valid
|
|
*/
|
|
if (!data || !Object.keys(data).length) {
|
|
return {
|
|
success: false,
|
|
payload: undefined,
|
|
msg: "No data provided",
|
|
};
|
|
}
|
|
const isMaster = forceLocal
|
|
? true
|
|
: (0, check_if_is_master_1.default)({ dbContext, dbFullName });
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
let newData = lodash_1.default.cloneDeep(data);
|
|
newData = (0, purge_default_fields_1.default)(newData);
|
|
/**
|
|
* Declare variables
|
|
*
|
|
* @description Declare "results" variable
|
|
*/
|
|
const dataKeys = Object.keys(newData);
|
|
let updateKeyValueArray = [];
|
|
let updateValues = [];
|
|
for (let i = 0; i < dataKeys.length; i++) {
|
|
try {
|
|
const dataKey = dataKeys[i];
|
|
let value = newData[dataKey];
|
|
const parsedValue = (0, grab_parsed_value_1.default)({
|
|
dataKey,
|
|
encryptionKey,
|
|
encryptionSalt,
|
|
tableSchema,
|
|
value,
|
|
});
|
|
if (typeof parsedValue == "undefined")
|
|
continue;
|
|
updateKeyValueArray.push(`\`${dataKey}\`=?`);
|
|
if (typeof parsedValue == "number") {
|
|
updateValues.push(String(parsedValue));
|
|
}
|
|
else {
|
|
updateValues.push(parsedValue);
|
|
}
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
}
|
|
catch ( /** @type {any} */error) {
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
console.log("DSQL: Error in parsing data keys in update function =>", error.message);
|
|
continue;
|
|
}
|
|
}
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
updateKeyValueArray.push(`date_updated='${Date()}'`);
|
|
updateKeyValueArray.push(`date_updated_code='${Date.now()}'`);
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`;
|
|
updateValues.push(identifierValue);
|
|
const updatedEntry = yield (0, conn_db_handler_1.default)(null, query, updateValues);
|
|
/**
|
|
* Return statement
|
|
*/
|
|
return {
|
|
success: Boolean(updatedEntry === null || updatedEntry === void 0 ? void 0 : updatedEntry.affectedRows),
|
|
payload: updatedEntry,
|
|
queryObject: {
|
|
sql: query,
|
|
params: updateValues,
|
|
},
|
|
debug: debug ? { data, newData } : undefined,
|
|
};
|
|
});
|
|
}
|