@icon-solutions/balthazar-query-builder
Version:
This package is a query-builder used to convert data from the segment-builder into SQL-queries.
56 lines (55 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.naceQueryBuilder = void 0;
const separateAndOr_1 = require("../separateAndOr/separateAndOr");
const addToQueryArray_1 = require("../addToQueryArray/addToQueryArray");
/**
* Håndterer bygging av spørring for Naces.
* @param {Array<Array<Parameter> | Parameter>} data Strukturerte data som gjenspeiler dataenes
* AND- / OR-struktur. I dette tilfellet tar Nace kun hensyn til OR.
* @param {Array<string>} queryArray Tabell hvor spørringen for Naces legges inn.
*/
const naceQueryBuilder = (data, queryArray) => {
console.log("[queryDataBuilder.ts] NACE data: ", data, ", queryArray: ", queryArray);
const queryString = [];
const seperatedAndOr = (0, separateAndOr_1.seperateAndOr)(data);
const or = seperatedAndOr.or;
/**
* Konstant som angir hvor mange Nace-kolonner vi skal søke igjennom
* (Company.NACE, Company.NACE1, Company.NACE2). Dersom flere kolonner legges til
* må en legge til numberOfNaceColumns med tilsvarende.
*/
const numberOfNaceColumns = 3;
queryString.push('(');
if (or.length > 0) {
for (var i = 0; i < numberOfNaceColumns; i++) {
// i tilsvarer hvilket nummber av Nace-kolonne som det skal legges inn data for
if (i === 0) {
queryString.push('Company.NACE IN');
queryString.push('(');
}
else {
queryString.push(' OR ');
queryString.push('Company.NACE' + i + ' IN');
queryString.push('(');
}
;
for (var j = 0; j < or.length; j++) {
// Sjekker om det er siste OR
if (j === (or.length - 1)) {
queryString.push("'" + or[j].value + "'" + ')');
}
else {
queryString.push("'" + or[j].value + "'" + ', ');
}
;
}
;
}
;
}
;
queryString.push(')');
(0, addToQueryArray_1.addToQueryArray)(queryString, queryArray);
};
exports.naceQueryBuilder = naceQueryBuilder;