const express = require('express'); const stateApp = express.Router(); const libs = `${process.cwd()}/libs`; const squel = require('squel'); const query = require(`${libs}/middlewares/query`); const response = require(`${libs}/middlewares/response`); const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`); let rqf = new ReqQueryFields(); rqf.addField({ name: 'filter', field: false, where: true }).addValue({ name: 'id', table: 'estado', tableField: 'id', where: { relation: '=', type: 'integer', field: 'id' } }).addValue({ name: 'region', table: 'regiao', tableField: 'nome', resultField: 'region_name', where: { relation: '=', type: 'integer', field: 'regiao_id', table: 'estado' }, join: { primary: 'id', foreign: 'regiao_id', foreignTable: 'estado' } }).addField({ name: 'search', field: false, where: true }).addValueToField({ name: 'name', table: 'estado', tableField: 'nome', where: { relation: 'LIKE', type: 'string', field: 'nome' } }, 'search'); stateApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('estado') .field('estado.id') .group('estado.id') .field('regiao_id', 'region_id') .group('regiao_id') .field('estado.nome', 'name') .group('estado.nome') .field('estado.sigla', 'abbreviation') .group('estado.sigla'); next(); }, query, response('state')); module.exports = stateApp;