diff --git a/src/libs/routes/cub.js b/src/libs/routes/cub.js index 844f08034fd5b833f41ee171eb152a52ff8dc53c..ce74bc0e9650cb2851622a8234d4b633a331f670 100644 --- a/src/libs/routes/cub.js +++ b/src/libs/routes/cub.js @@ -133,18 +133,44 @@ rqf.addField({ }); cubApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { - req.sql.from('cub') - .field('cub.estado_id', 'cod_uf') - .field('estado.sigla', 'sigla_uf') - .field('cub.tipo_preco', 'tipo_preco') - .field('cub.preco', 'preco') - .join('estado', null, 'cub.estado_id=estado.id') - .group('cub.ano_censo') - .group('cub.mes_censo') - .group('cub.estado_id') - .group('estado.sigla') - .group('cub.tipo_preco') - .group('cub.preco') + if (req.filter.size || req.filter.dims) { + if ('state' in req.filter || 'state' in req.dims) { + req.sql.from('cub') + .field('cub.estado_id', 'cod_uf') + .field('estado.sigla', 'sigla_uf') + .field('cub.tipo_preco', 'tipo_preco') + .field('cub.preco', 'preco') + .join('estado', null, 'cub.estado_id=estado.id') + .group('cub.ano_censo') + .group('cub.mes_censo') + .group('cub.estado_id') + .group('estado.sigla') + .group('cub.tipo_preco') + .group('cub.preco') + } else { + req.sql.from('cub') + .field("'Brasil'", 'sigla_uf') + .field("cub.tipo_preco", 'tipo_preco') + .field('AVG(cub.preco)', 'preco') + .join('estado', null, 'cub.estado_id=estado.id') + .group('cub.ano_censo') + .group('cub.mes_censo') + .group('cub.tipo_preco') + } + } else { + req.sql.from('cub') + .field('cub.estado_id', 'cod_uf') + .field('estado.sigla', 'sigla_uf') + .field('cub.tipo_preco', 'tipo_preco') + .field('cub.preco', 'preco') + .join('estado', null, 'cub.estado_id=estado.id') + .group('cub.ano_censo') + .group('cub.mes_censo') + .group('cub.estado_id') + .group('estado.sigla') + .group('cub.tipo_preco') + .group('cub.preco') + } next(); }, query, addMissing(rqf), id2str.transform(), response('cub'));