Skip to content
Snippets Groups Projects
Commit fa34d3ec authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

[ci skip]Basic logic to add missing objects

parent e29f4e24
No related branches found
No related tags found
2 merge requests!116Release v1.0.0,!97Issue 366
Pipeline #
......@@ -454,27 +454,73 @@ enrollmentApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
.where('matricula.tipo<=3');
next();
}, query, (req, res, next) => {
// Grafo
//TODO: USE UMA MATRIZ EM VEZ DISSO
let G = {};
let dims = Object.keys(req.dims).filter(i => {return i !== 'size';});
// FIXME: No momento, só funciona para duas dimensões (padrão para o LDE)
if(dims.length > 2) next();
if(req.filter.min_year != req.filter.max_year) next();
let result = req.result;
let dimsValues = {};
result.forEach((result) => {
result.forEach((r) => {
dims.forEach((dim) => {
let rqfName = rqf.fieldValues[dim].resultField;
if(typeof dimsValues[rqfName] === 'undefined') {
dimsValues[rqfName] = [];
}
if(dimsValues[rqfName].indexOf(result[rqfName]) === -1) {
dimsValues[rqfName].push(result[rqfName]);
if(dimsValues[rqfName].indexOf(r[rqfName]) === -1) {
dimsValues[rqfName].push(r[rqfName]);
}
})
});
console.log('DIMS VALUES');
console.log(dimsValues);
let G = {};
let rqfName = rqf.fieldValues[dims[0]].resultField;
let rqfName2 = rqf.fieldValues[dims[1]].resultField;
G[rqfName] = {};
dimsValues[rqfName].forEach((value) => {
let secondDim = {};
dimsValues[rqfName2].forEach((dValue) => {
secondDim[dValue] = false;
});
G[rqfName][value] = {};
G[rqfName][value][rqfName2] = secondDim;
});
result.forEach((r) => {
let resultDim1 = r[rqfName];
let resultDim2 = r[rqfName2];
G[rqfName][resultDim1][rqfName2][resultDim2] = true;
});
Object.keys(G[rqfName]).forEach((dim1Value) => {
Object.keys(G[rqfName][dim1Value][rqfName2]).forEach((dim2Value) => {
let value = G[rqfName][dim1Value][rqfName2][dim2Value];
console.log(rqfName);
console.log(dim1Value);
console.log(rqfName2);
console.log(dim2Value);
if(!value) {
let newEntry = Object.assign({}, result[0], {[rqfName]: parseInt(dim1Value, 10), [rqfName2]: parseInt(dim2Value, 10), total: 0});
console.log(newEntry);
// result.push(newEntry);
let index = 0;
for(let i = 0; i < result.length; ++i) {
let r = result[i];
index = i;
if(r[rqfName] > newEntry[rqfName]) break;
if(r[rqfName] == newEntry[rqfName] && r[rqfName2] > newEntry[rqfName2]) break;
}
let newResult = [...result.slice(0, index), newEntry, ...result.slice(index, result.length)];
result = newResult;
}
});
});
req.result = result;
next();
}, id2str.transform(false), response('enrollment'));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment