Newer
Older
transform-rnsr / locals.js
@Nicolas Thouvenin Nicolas Thouvenin on 17 Nov 2022 1 KB first import
const handle1 = {};
const handle2= {};

function hierachy(data, feed) {
  if (this.isLast()) {
    return feed.close();
  }
  if (data.token) {
    if (data.token[1] === 0) {
      handle2[data.value.numero_national_de_structure] = data.value.libelle
      data.value.regroupe.forEach((child)=> {
        if (!handle1[child]) {
          handle1[child] = [];
        }
        handle1[child].push(data.value.numero_national_de_structure);
      })
    }
    if (data.token[1] === 1) {
      const structure_englobante = handle1[data.value.numero_national_de_structure] && handle1[data.value.numero_national_de_structure][0] ? handle1[data.value.numero_national_de_structure][0] : 'n/a';
      data.value.structure_englobante = { id: structure_englobante, value: handle2[structure_englobante] };
      data.value.structuration_hierachique = [data.value.structure_englobante];
      let id = structure_englobante;
      let i = 0;
      while (id && handle1[id] && handle1[id][0] && i < 5 ) {
        data.value.structuration_hierachique.unshift({ id: handle1[id][0], value: handle2[handle1[id][0]] });
        id = handle1[id][0];
        i++;
      }
      data.value.structures_rattachees = data.value.regroupe.map(id => ({ id, value: handle2[id] }));
      delete data.value.regroupe;
    }
    feed.send(data);
  }
}

module.exports = {
  hierachy,
};