typecql
Version:
ORM for CQL databases.
77 lines • 3.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.insertFetch = insertFetch;
const replaceUppersInObject_1 = require("../formating/replaceUppersInObject");
const mergePrimaryKeysDefaults_1 = require("../formating/mergePrimaryKeysDefaults");
const getDefaultTableValues_1 = require("../formating/getDefaultTableValues");
const log_1 = require("../../logging/log");
async function insertFetch(client, data, table, options, writeFactory, settings) {
const { returning, replace, returnRaw } = options;
(0, getDefaultTableValues_1.getTableDefaultValuesObject)(data, table.tableName);
(0, mergePrimaryKeysDefaults_1.mergePrimaryKeysDefaults)(data, table.tableName);
const query = writeFactory.InsertQuery(data, options);
try {
if (!replace) {
const result = await client.execute(query, Object.values(data), {
prepare: true,
consistency: options?.consistency,
});
(0, log_1.TypeCQLLOG)({
query,
params: Object.values(data),
filename: __filename,
type: 'log',
globalOptions: settings?.logging,
localOptions: options?.logging,
});
const wasApplied = result.wasApplied();
const row = result.rows?.[0];
delete row?.["'[applied]'"];
if (!returning) {
return { wasApplied };
}
if (returnRaw === true) {
return (0, replaceUppersInObject_1.formatObjectWithSettings)(wasApplied === true ? data : row, table.tableName, settings, client);
}
return {
row: (0, replaceUppersInObject_1.formatObjectWithSettings)(wasApplied === true ? data : row, table.tableName, settings, client),
wasApplied,
};
}
await client.execute(query, Object.values(data), {
prepare: true,
consistency: options?.consistency,
});
(0, log_1.TypeCQLLOG)({
query,
params: Object.values(data),
filename: __filename,
type: 'log',
globalOptions: settings?.logging,
localOptions: options?.logging,
});
if (!returning) {
return { wasApplied: true };
}
if (returnRaw === true) {
return (0, replaceUppersInObject_1.formatObjectWithSettings)(data, table.tableName, settings, client);
}
return {
row: (0, replaceUppersInObject_1.formatObjectWithSettings)(data, table.tableName, settings, client),
wasApplied: true,
};
}
catch (error) {
(0, log_1.TypeCQLLOG)({
query,
params: Object.values(data),
filename: __filename,
type: 'error',
globalOptions: settings?.logging,
localOptions: options?.logging,
error,
});
throw error;
}
}
//# sourceMappingURL=insertFetch.js.map