UNPKG

@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
"use strict"; 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;