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

:bug: Fix bug in reqQueryFields when repeating values in query parameters

parent 2daa5fd3
No related branches found
No related tags found
1 merge request!116Release v1.0.0
Pipeline #
......@@ -174,35 +174,37 @@ class ReqQueryFields {
// "Constrói" o SQL
return (req, res, next) => {
// Foreach no campos
Object.keys(this.fields).map((key, index) => {
let hasJoined = {};
Object.keys(this.fields).forEach((key) => {
// Campo
let field = this.fields[key];
log.debug(field);
// `param` aqui é o atributo no objeto `req` (dims, filter, search, ...)
let param = req[field.name];
log.debug('param');
log.debug(param);
// log.debug('param');
// log.debug(param);
// Fazemos um foreach nos parametros dentro do atributo
Object.keys(param).map((k, i) => {
Object.keys(param).forEach((k) => {
let values = _.merge(this.fieldValues, field.values);
log.debug('ValueS');
log.debug(values);
log.debug('k');
log.debug(k);
// log.debug('ValueS');
// log.debug(values);
// log.debug('k');
// log.debug(k);
if(typeof values[k] !== 'undefined') {
// Clonamos para não alterar o original
let value = _.clone(values[k]);
log.debug(value);
// log.debug('value');
// log.debug(value);
// log.debug(hasJoined);
// Checa se não fizemos o join para este valor e se é necessário fazer
if(!value.hasJoined && typeof value.join !== 'undefined') {
if(!hasJoined[value.name] && typeof value.join !== 'undefined') {
let foreignTable = '';
if(value.join.foreignTable) foreignTable = value.join.foreignTable+'.';
// Fazemos o join
req.sql.join(value.table, null, foreignTable+value.join.foreign+'='+value.table+'.'+value.join.primary);
// Marcamos o join como feito para não ter problemas
value.hasJoined = true;
if(typeof this.fieldValues !== 'undefined' && typeof this.fieldValues[k] !== 'undefined') this.fieldValues[k].hasJoined = true;
if(typeof field.values !== 'undefined' && typeof field.values[k] !== 'undefined') field.values[k].hasJoined = true;
hasJoined[value.name] = true;
// values[k].hasJoined = true;
}
// Se o valor é um campo a ser incluído no SELECT
if(typeof field.field !== 'undefined' && field.field) {
......
......@@ -47,7 +47,7 @@ describe('request enrollments', () => {
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('id');
res.body.result[0].should.have.property('description');
res.body.result[0].should.have.property('name');
done();
});
});
......
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