-
Vytor Calixto authoredVytor Calixto authored
state.js 1.58 KiB
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;