Skip to content
Snippets Groups Projects
Commit f198f763 authored by Hamer Iboshi's avatar Hamer Iboshi
Browse files

Merge branch 'school_number_count' into feature_multiple_where

parents a3c91fbb a1e89273
No related branches found
No related tags found
3 merge requests!116Release v1.0.0,!47School number count,!44Feature multiple where
......@@ -223,6 +223,7 @@ class ReqQueryFields {
if(value.where.type === 'integer') whereValue = parseInt(whereValue, 10);
if(value.where.type === 'double') whereValue = parseFloat(whereValue);
if(value.where.type === 'string') whereValue = '%'+whereValue+'%';
if(value.where.type === 'boolean') whereValue = (whereValue.toLowerCase() === 'true' || parseInt(whereValue, 10) === 1);
let tbl = value.where.table || value.table;
let whereField = (value.where.type === 'string')? 'LOWER('+tbl+'.'+value.where.field+')' : tbl+'.'+value.where.field;
let lower = (value.where.type === 'string') ? ' LOWER(?) ' : ' ? ';
......
......@@ -13,6 +13,56 @@ const response = require(`${libs}/middlewares/response`);
const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
let rqf = new ReqQueryFields();
let rqfCount = new ReqQueryFields();
// Return location
schoolApp.get('/location', (req, res, next) => {
req.result = [
{id: 1, name: 'Urbana'},
{id: 2, name: 'Rural'}
];
next();
}, response('location'));
schoolApp.get('/adm_dependency', (req, res, next) => {
req.sql.from('dependencia_adm')
.field('id')
.field('nome', 'name')
.where('id <= 4');
next();
}, query, response('adm_dependency'));
schoolApp.get('/adm_dependency_detailed', (req, res, next) => {
req.sql.from('dependencia_adm')
.field('id', 'id')
.field('nome', 'name');
next();
}, query, response('adm_dependency_detailed'));
schoolApp.get('/agreement', (req, res, next) => {
req.result = [
{id: 1, name: 'Estadual'},
{id: 2, name: 'Municipal'},
{id: 3, name: 'Estadual e Municipal'}
];
next();
}, response('agreement'));
schoolApp.get('/cook_room', (req, res, next) => {
req.result = [
{id: 0, name: 'Não'},
{id: 1, name: 'Sim'}
];
next();
}, response('cook_room'));
schoolApp.get('/government_agreement', (req, res, next) => {
req.result = [
{id: 0, name: 'Não'},
{id: 1, name: 'Sim'}
];
next();
}, response('government_agreement'));
rqf.addField({
name: 'filter',
......@@ -72,6 +122,373 @@ rqf.addField({
}
});
rqfCount.addField({
name: 'filter',
field: false,
where: true
}).addField({
name: 'dims',
field: true,
where: false
}).addValue({
name: 'id',
table: 'escola',
tableField: 'id',
where: {
relation: '=',
type: 'integer',
field: 'id'
}
}).addValue({
name: 'city',
table: 'municipio',
tableField: 'nome',
resultField: 'city_name',
where: {
relation: '=',
type: 'integer',
field: 'municipio_id',
table: 'escola'
},
join: {
primary: 'id',
foreign: 'municipio_id',
foreignTable: 'escola'
}
}).addValue({
name: 'state',
table: 'estado',
tableField: 'nome',
resultField: 'state_name',
where: {
relation: '=',
type: 'integer',
field: 'estado_id',
table: 'escola'
},
join: {
primary: 'id',
foreign: 'estado_id',
foreignTable: 'escola'
}
}).addValue({
name: 'region',
table: 'regiao',
tableField: 'nome',
resultField: 'region_name',
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'regiao_id',
foreignTable: 'escola'
}
}).addValue({
name: 'year',
table: 'escola',
tableField: 'ano_censo',
resultField: 'year',
where: {
relation: '=',
type: 'integer',
field: 'ano_censo',
table: 'escola'
}
}).addValue({
name: 'adm_dependency',
table: 'dependencia_adm',
tableField: 'nome',
resultField: 'adm_dependency_name',
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'dependencia_adm_id',
foreignTable: 'escola'
}
}).addValue({
name: 'adm_dependency_detailed',
table: 'dependencia_adm',
tableField: 'nome',
resultField: 'adm_dependency_detailed_name',
where: {
relation: '=',
type: 'integer',
field: 'id'
},
join: {
primary: 'id',
foreign: 'dependencia_adm_priv',
foreignTable: 'escola'
}
}).addValue({
name: 'location',
table: 'escola',
tableField: 'cod_localizacao',
resultField: 'cod_localizacao',
where: {
relation: '=',
type: 'integer',
field: 'cod_localizacao'
}
}).addValue({
name: 'cook_room',
table: 'escola',
tableField: 'cozinha',
resultField: 'cook_room_name',
where: {
relation: '=',
type: 'boolean',
field: 'cozinha'
}
}).addValue({
name: 'government_agreement',
table: 'escola',
tableField: 'conveniada_pp',
resultField: 'government_agreement_name',
where: {
relation: '=',
type: 'boolean',
field: 'conveniada_pp'
}
}).addValue({
name: 'informatics_lab',
table: 'escola',
tableField: 'lab_informatica',
resultField: 'informatics_lab_name',
where: {
relation: '=',
type: 'boolean',
field: 'lab_informatica'
}
}).addValue({
name: 'science_lab',
table: 'escola',
tableField: 'lab_ciencias',
resultField: 'informatics_lab_name',
where: {
relation: '=',
type: 'boolean',
field: 'lab_ciencias'
}
}).addValue({
name: 'special_attendence_room',
table: 'escola',
tableField: 'sala_atendimento_especial',
resultField: 'special_attendence_room_name',
where: {
relation: '=',
type: 'boolean',
field: 'sala_atendimento_especial'
}
}).addValue({
name: 'indor_sports_court',
table: 'escola',
tableField: 'quadra_esportes_coberta',
resultField: 'indor_sports_court_name',
where: {
relation: '=',
type: 'boolean',
field: 'quadra_esportes_coberta'
}
}).addValue({
name: 'education_eja',
table: 'escola',
tableField: 'ensino_eja',
resultField: 'education_eja_name',
where: {
relation: '=',
type: 'boolean',
field: 'ensino_eja'
}
}).addValue({
name: 'education_professional',
table: 'escola',
tableField: 'educacao_profissional',
resultField: 'education_professional_name',
where: {
relation: '=',
type: 'boolean',
field: 'educacao_profissional'
}
}).addValue({
name: 'education_middle_school',
table: 'escola',
tableField: 'reg_medio_medio',
resultField: 'education_middle_school_name',
where: {
relation: '=',
type: 'boolean',
field: 'reg_medio_medio'
}
}).addValue({
name: 'education_end_elementary_school',
table: 'escola',
tableField: 'reg_fund_af',
resultField: 'education_end_elementary_school_name',
where: {
relation: '=',
type: 'boolean',
field: 'reg_fund_af'
}
}).addValue({
name: 'education_begin_elementary_school',
table: 'escola',
tableField: 'reg_fund_ai',
resultField: 'education_begin_elementary_school_name',
where: {
relation: '=',
type: 'boolean',
field: 'reg_fund_ai'
}
}).addValue({
name: 'education_preschool_child',
table: 'escola',
tableField: 'reg_infantil_preescola',
resultField: 'education_preschool_child_name',
where: {
relation: '=',
type: 'boolean',
field: 'reg_infantil_preescola'
}
}).addValue({
name: 'directors_room',
table: 'escola',
tableField: 'sala_diretoria',
resultField: 'directors_room_name',
where: {
relation: '=',
type: 'boolean',
field: 'sala_diretoria'
}
}).addValue({
name: 'teacher_room',
table: 'escola',
tableField: 'sala_professor',
resultField: 'teacher_room_name',
where: {
relation: '=',
type: 'boolean',
field: 'sala_professor'
}
}).addValue({
name: 'playground',
table: 'escola',
tableField: 'parque_infantil',
resultField: 'playground_name',
where: {
relation: '=',
type: 'boolean',
field: 'parque_infantil'
}
}).addValue({
name: 'nusery',
table: 'escola',
tableField: 'bercario',
resultField: 'nusery_name',
where: {
relation: '=',
type: 'boolean',
field: 'bercario'
}
}).addValue({
name: 'toilet_inside_building',
table: 'escola',
tableField: 'sanitario_dentro_predio',
resultField: 'toilet_inside_building_name',
where: {
relation: '=',
type: 'boolean',
field: 'sanitario_dentro_predio'
}
}).addValue({
name: 'wastepipe',
table: 'escola',
tableField: 'esgoto_sanitario',
resultField: 'wastepipe_name',
where: {
relation: '=',
type: 'boolean',
field: 'esgoto_sanitario'
}
}).addValue({
name: 'water',
table: 'escola',
tableField: 'fornecimento_agua',
resultField: 'water_name',
where: {
relation: '=',
type: 'boolean',
field: 'fornecimento_agua '
}
}).addValue({
name: 'energy',
table: 'escola',
tableField: 'fornecimento_energia',
resultField: 'energy_name',
where: {
relation: '=',
type: 'boolean',
field: 'fornecimento_energia '
}
}).addValue({
name: 'broadband',
table: 'escola',
tableField: 'internet_banda_larga',
resultField: 'broadband_name',
where: {
relation: '=',
type: 'boolean',
field: 'internet_banda_larga '
}
}).addValue({
name: 'restroom_pne',
table: 'escola',
tableField: 'sanitario_pne',
resultField: 'restroom_pne_name',
where: {
relation: '=',
type: 'boolean',
field: 'sanitario_pne '
}
}).addValue({
name: 'denpendency_pne',
table: 'escola',
tableField: 'dependencias_pne',
resultField: 'denpendency_pne_name',
where: {
relation: '=',
type: 'boolean',
field: 'dependencias_pne '
}
}).addValue({
name: 'agreement',
table: 'escola',
tableField: 'tipo_convenio_pp',
resultField: 'agreement_name',
where: {
relation: '=',
type: 'integer',
field: 'tipo_convenio_pp'
}
}).addValue({
name: 'building_school',
table: 'escola',
tableField: 'local_func_predio_escolar',
resultField: 'building_school_name',
where: {
relation: '=',
type: 'boolean',
field: 'local_func_predio_escolar'
}
});
schoolApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
console.log(req.filter);
if(typeof req.filter === 'undefined' || Object.keys(req.filter).length === 0) {
......@@ -90,4 +507,16 @@ schoolApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
next();
}, query, response('school'));
schoolApp.get('/count', rqfCount.parse(), rqfCount.build(), (req, res, next) => {
req.sql.from('escola')
.field('COUNT(escola.id)', 'total')
.field("'Brasil'", 'name')
.field('escola.ano_censo', 'year')
.group('escola.ano_censo')
.order('escola.ano_censo')
.where('escola.situacao_de_funcionamento = 1 AND escola.ensino_regular = 1');
next();
}, query, response('school'));
module.exports = schoolApp;
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