diff --git a/src/libs/convert/contractType.js b/src/libs/convert/contractType.js new file mode 100644 index 0000000000000000000000000000000000000000..6c9167ce6e3758feb8de1d20c7a3b228be1e4f17 --- /dev/null +++ b/src/libs/convert/contractType.js @@ -0,0 +1,14 @@ +module.exports = function idhmLevel(id) { + switch (id) { + case 1: + return 'Concursado/Efetivo/Estavél'; + case 2: + return 'Contrato temporário'; + case 3: + return 'Contrato terceirizado'; + case 4: + return 'Contrato CLT'; + default: + return 'Não classificado'; + } +}; diff --git a/src/libs/middlewares/id2str.js b/src/libs/middlewares/id2str.js index 3721123071724d979c93ab2dbdd6b0fb1ecc2160..e37e854e67c6ae1e52affba7c381ddb3a804bd05 100644 --- a/src/libs/middlewares/id2str.js +++ b/src/libs/middlewares/id2str.js @@ -17,6 +17,7 @@ const citySize = require(`${libs}/convert/citySize`); const incomeLevel = require(`${libs}/convert/incomeLevel`); const idhmLevel = require(`${libs}/convert/idhmLevel`); const stateName = require(`${libs}/convert/stateName`); +const contractType = require(`${libs}/convert/contractType`); const ids = { gender_id: gender, @@ -45,7 +46,8 @@ const ids = { income_level_id: incomeLevel, city_size_id: citySize, idhm_level_id: idhmLevel, - state_id: stateName + state_id: stateName, + contract_type_id: contractType }; function transform(removeId=false) { @@ -100,5 +102,6 @@ module.exports = { incomeLevel, citySize, idhmLevel, - stateName + stateName, + contractType }; diff --git a/src/libs/routes/teacher.js b/src/libs/routes/teacher.js index 541a926d0a0526e1a0dca141e0edd1837f13a458..1d357763c3b3be2c55996fd756258fe0e75064b9 100644 --- a/src/libs/routes/teacher.js +++ b/src/libs/routes/teacher.js @@ -16,7 +16,7 @@ const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`); const id2str = require(`${libs}/middlewares/id2str`); -const config = require(`${libs}/config`); +const config = require(`${libs}/config`); const request = require(`request`); @@ -132,6 +132,17 @@ teacherApp.get('/gender', (req, res, next) => { next(); }, response('gender')); + +teacherApp.get('/contract_type', (req, res, next) => { + req.result = [ + {id: 1, name: 'Concursado/Efetivo/Estável'}, + {id: 2, name: 'Contrato temporário'}, + {id: 3, name: 'Contrato terceirizado'}, + {id: 4, name: 'Contrato CLT'} + ]; + next(); +}, response('contract_type')); + teacherApp.get('/ethnic_group', (req, res, next) => { req.result = []; for(let i = 0; i <=5; ++i) { @@ -171,6 +182,16 @@ rqf.addField({ type: 'integer', field: 'dependencia_adm_priv' } +}).addValue({ + name: 'contract_type', + table: 'docente', + tableField: 'tipo_contratacao', + resultField: 'contract_type_id', + where: { + relation: '=', + type: 'integer', + field: 'tipo_contratacao' + } }).addValue({ name: 'education_level_mod', table: 'docente', diff --git a/src/test/schoolCount.js b/src/test/schoolCount.js index 1867e4569e1d2654793ea167d2892d04fcc4ad7b..305045894b410b0c4215ce2d3d4d85aa065860c2 100644 --- a/src/test/schoolCount.js +++ b/src/test/schoolCount.js @@ -301,4 +301,17 @@ describe('request schools count', () => { done(); }); }); + + it('should list school with dimension agreement', (done) => { + chai.request(server) + .get('/api/v1/school/count?dims=agreement') + .end((err, res) => { + res.should.have.status(200); + res.should.be.json; + res.body.should.have.property('result'); + res.body.result.should.be.a('array'); + res.body.result[0].should.have.property('agreement_name'); + done(); + }); + }); }); diff --git a/src/test/teacher.js b/src/test/teacher.js index 65c9d28dafe0667ee35a7a1597b3b0fe075a8be8..30eddee8a20e6654c2db5f595c44e37f99868a5f 100644 --- a/src/test/teacher.js +++ b/src/test/teacher.js @@ -134,6 +134,20 @@ describe('request teachers', () => { }); }); + it('should list the contract type', (done) => { + chai.request(server) + .get('/api/v1/teacher/contract_type') + .end((err, res) => { + res.should.have.status(200); + res.should.be.json; + 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('name'); + done(); + }); + }); + it('should list the administrative dependencies', (done) => { chai.request(server) .get('/api/v1/teacher/adm_dependency') @@ -397,4 +411,19 @@ describe('request teachers', () => { done(); }); }); + + + + it('should list teacher count with dimension contract type', (done) => { + chai.request(server) + .get('/api/v1/teacher?filter=state:41&dims=contract_type') + .end((err, res) => { + res.should.have.status(200); + res.should.be.json; + res.body.should.have.property('result'); + res.body.result.should.be.a('array'); + res.body.result[0].should.have.property('contract_type_name'); + done(); + }); + }); });