sgnm-neo4j-excel
Version:
neo4j excel module for nestJs
285 lines (284 loc) • 11.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assignDtoPropToEntity = assignDtoPropToEntity;
exports.createDynamicCyperCreateQuery = createDynamicCyperCreateQuery;
exports.createDynamicCyperObject = createDynamicCyperObject;
exports.updateNodeQuery = updateNodeQuery;
exports.dynamicLabelAdder = dynamicLabelAdder;
exports.dynamicNotLabelAdder = dynamicNotLabelAdder;
exports.dynamicOrLabelAdder = dynamicOrLabelAdder;
exports.dynamicFilterPropertiesAdder = dynamicFilterPropertiesAdder;
exports.dynamicUpdatePropertyAdder = dynamicUpdatePropertyAdder;
exports.changeObjectKeyName = changeObjectKeyName;
exports.dynamicUpdatePropertyAdderAndAddParameterKey = dynamicUpdatePropertyAdderAndAddParameterKey;
exports.dynamicFilterPropertiesAdderAndAddParameterKey = dynamicFilterPropertiesAdderAndAddParameterKey;
exports.filterArrayForEmptyString = filterArrayForEmptyString;
exports.dynamicOrderByColumnAdder = dynamicOrderByColumnAdder;
const common_1 = require("@nestjs/common");
const neo4j_driver_1 = require("neo4j-driver");
const custom_error_object_1 = require("../constant/custom.error.object");
const filter_properties_type_enum_1 = require("../constant/filter.properties.type.enum");
function assignDtoPropToEntity(entity, dto) {
Object.entries(dto).forEach((element) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException(custom_error_object_1.undefined_value_recieved, 400);
}
if (element[0] != "parentId" &&
element[0] != "labels" &&
element[0] != "parentKey") {
entity[element[0]] = dto[element[0]];
}
});
return entity;
}
function createDynamicCyperCreateQuery(entity, labels) {
let uniqueLabels = [...new Set(labels)];
let optionalLabels = "";
if (uniqueLabels && uniqueLabels.length > 0) {
uniqueLabels.map((item) => {
if (item.trim() === "") {
optionalLabels = optionalLabels;
}
else {
optionalLabels = optionalLabels + ":" + item;
}
});
}
let dynamicQueryParameter = `CREATE (node${optionalLabels} {`;
Object.entries(entity).forEach((element, index) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException(custom_error_object_1.undefined_value_recieved, 400);
}
if (index === 0) {
dynamicQueryParameter += ` ${element[0]}` + `: $` + `${element[0]}`;
}
else {
dynamicQueryParameter += `,${element[0]}` + `: $` + `${element[0]}`;
}
if (Object.keys(entity).length === index + 1) {
dynamicQueryParameter += ` }) return node`;
}
});
return dynamicQueryParameter;
}
function createDynamicCyperObject(entity) {
const dynamicObject = {};
Object.entries(entity).forEach((element) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException(custom_error_object_1.undefined_value_recieved, 400);
}
dynamicObject[element[0]] = entity[element[0]];
});
return dynamicObject;
}
function updateNodeQuery(id, dto) {
id = (0, neo4j_driver_1.int)(id);
let dynamicQueryParameter = ` match (node {isDeleted: false}) where id(node) = ${id} set `;
Object.keys(dto).forEach((element, index) => {
if (Object.keys(dto).length === index + 1) {
dynamicQueryParameter += `node.${element}` + `= $` + `${element}`;
}
else {
dynamicQueryParameter += `node.${element}` + `= $` + `${element} ,`;
}
});
dynamicQueryParameter += ` return node`;
return dynamicQueryParameter;
}
function dynamicLabelAdder(labels) {
let uniqueLabels = [...new Set(labels)];
let optionalLabels = "";
if (uniqueLabels && uniqueLabels.length > 0) {
uniqueLabels.map((item) => {
if (item.trim() === "") {
optionalLabels = optionalLabels;
}
else {
optionalLabels = optionalLabels + ":" + item;
}
});
}
return optionalLabels;
}
function dynamicNotLabelAdder(queryNodeName, notLabels) {
let uniqueOrLabels = [...new Set(notLabels)];
let optionalLabels = "";
const notLabelsWithoutEmptyString = uniqueOrLabels.filter((item) => {
if (item.trim() !== "") {
return item;
}
});
if (notLabelsWithoutEmptyString && notLabelsWithoutEmptyString.length > 0) {
notLabelsWithoutEmptyString.map((item, index) => {
if (index === 0) {
optionalLabels = optionalLabels + `not ${queryNodeName}:${item} `;
}
else {
optionalLabels = optionalLabels + `and not ${queryNodeName}:${item} `;
}
});
}
return optionalLabels;
}
function dynamicOrLabelAdder(queryNodeName, notLabels) {
let uniqueNotLabels = [...new Set(notLabels)];
let optionalLabels = "";
const notLabelsWithoutEmptyString = uniqueNotLabels.filter((item) => {
if (item.trim() !== "") {
return item;
}
});
if (notLabelsWithoutEmptyString && notLabelsWithoutEmptyString.length > 0) {
notLabelsWithoutEmptyString.map((item, index) => {
if (index === 0) {
optionalLabels = optionalLabels + ` ${queryNodeName}:${item} `;
}
else {
optionalLabels = optionalLabels + `or ${queryNodeName}:${item} `;
}
});
}
return optionalLabels;
}
function dynamicFilterPropertiesAdder(filterProperties, filterPropertiesType = filter_properties_type_enum_1.FilterPropertiesType.NODE) {
if ((!filterProperties || Object.keys(filterProperties).length === 0) &&
filterPropertiesType === filter_properties_type_enum_1.FilterPropertiesType.NODE) {
return ")";
}
let dynamicQueryParameter = "";
Object.entries(filterProperties).forEach((element, index) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException("undefined_value_recieved", 400);
}
if (index === 0) {
dynamicQueryParameter += ` { ${element[0]}` + `: $` + `${element[0]}`;
}
else {
dynamicQueryParameter += `,${element[0]}` + `: $` + `${element[0]}`;
}
if (Object.keys(filterProperties).length === index + 1) {
if (filterPropertiesType === filter_properties_type_enum_1.FilterPropertiesType.NODE) {
dynamicQueryParameter += ` })`;
}
else {
dynamicQueryParameter += ` }`;
}
}
});
return dynamicQueryParameter;
}
function dynamicUpdatePropertyAdder(queryNodeName, updateProperties) {
let dynamicQueryParameter = "";
Object.entries(updateProperties).forEach((element, index) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException(custom_error_object_1.undefined_value_recieved, 400);
}
if (Object.keys(updateProperties).length === index + 1) {
dynamicQueryParameter +=
`${queryNodeName}.${element[0]}` + `= $` + `${element[0]}`;
}
else {
dynamicQueryParameter +=
`${queryNodeName}.${element[0]}` + `= $` + `${element[0]} ,`;
}
});
return dynamicQueryParameter;
}
function changeObjectKeyName(obj1, addedToKeyString = "1") {
const changedObject = Object.fromEntries(Object.entries(obj1).map(([key, value]) => [`${key}${addedToKeyString}`, value]));
return changedObject;
}
function dynamicUpdatePropertyAdderAndAddParameterKey(queryNodeName, updateProperties, parameterKey = "1") {
let dynamicQueryParameter = "";
Object.entries(updateProperties).forEach((element, index) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException(custom_error_object_1.undefined_value_recieved, 400);
}
if (Object.keys(updateProperties).length === index + 1) {
dynamicQueryParameter +=
`${queryNodeName}.${element[0]}` +
`= $` +
`${element[0]}` +
parameterKey;
}
else {
dynamicQueryParameter +=
`${queryNodeName}.${element[0]}` +
`= $` +
`${element[0]}` +
parameterKey +
`,`;
}
});
return dynamicQueryParameter;
}
function dynamicFilterPropertiesAdderAndAddParameterKey(filterProperties, filterPropertiesType = filter_properties_type_enum_1.FilterPropertiesType.NODE, parameterKey = "1") {
if ((!filterProperties || Object.keys(filterProperties).length === 0) &&
filterPropertiesType === filter_properties_type_enum_1.FilterPropertiesType.NODE) {
return ")";
}
let dynamicQueryParameter = "";
Object.entries(filterProperties).forEach((element, index) => {
if (element[1] === null || element[1] === undefined) {
throw new common_1.HttpException("undefined_value_recieved", 400);
}
if (index === 0) {
dynamicQueryParameter +=
` { ${element[0]}` + `: $` + `${element[0]}` + parameterKey;
}
else {
dynamicQueryParameter +=
`,${element[0]}` + `: $` + `${element[0]}` + parameterKey;
}
if (Object.keys(filterProperties).length === index + 1) {
if (filterPropertiesType === filter_properties_type_enum_1.FilterPropertiesType.NODE) {
dynamicQueryParameter += ` })`;
}
else {
dynamicQueryParameter += ` }`;
}
}
});
return dynamicQueryParameter;
}
function filterArrayForEmptyString(array) {
let arrayWithoutEmptyString;
if (array.length > 0) {
arrayWithoutEmptyString = array.filter((item) => {
if (item.trim() !== "" || item !== undefined || item !== null) {
return item;
}
});
}
else {
arrayWithoutEmptyString = [];
}
return arrayWithoutEmptyString;
}
function dynamicOrderByColumnAdder(queryNodeName, orderByColumnArray) {
let orderByArray = [];
if (typeof orderByColumnArray === 'string') {
orderByArray.push(orderByColumnArray);
}
else {
orderByArray = orderByColumnArray;
}
let optionalLabels = "ORDER BY";
let uniqueorderByColumnArray = [...new Set(orderByArray)];
const uniqueorderByColumnArrayWithoutEmptyString = uniqueorderByColumnArray.filter((item) => {
if (item.trim() !== "") {
return item;
}
});
if (uniqueorderByColumnArrayWithoutEmptyString && uniqueorderByColumnArrayWithoutEmptyString.length > 0) {
uniqueorderByColumnArrayWithoutEmptyString.map((item, index) => {
if (index === 0) {
optionalLabels = optionalLabels + ` toLower(${queryNodeName}.${item}) `;
}
else {
optionalLabels = optionalLabels + `, toLower(${queryNodeName}.${item}) `;
}
});
}
return optionalLabels;
}