From d58f16bd8ec5432ca2549002728c1e0df067d1ca Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Tue, 30 May 2017 10:46:29 -0300
Subject: [PATCH] Add integral time to enrollment

---
 src/libs/routes/enrollment.js | 21 +++++++++++++++++++++
 src/test/enrollment.js        | 28 ++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+)

diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js
index ad14b9b7..8404c3cd 100644
--- a/src/libs/routes/enrollment.js
+++ b/src/libs/routes/enrollment.js
@@ -99,6 +99,17 @@ enrollmentApp.get('/period', (req, res, next) => {
     next();
 }, query, response('period'));
 
+// Returns integral-time avaible
+classApp.get('/integral_time', (req, res, next) => {
+    req.result = [
+        {id: null, name: 'Não Disponível'},
+        {id: 0, name: 'Não'},
+        {id: 1, name: 'Sim'}
+    ];
+    next();
+}, response('integral_time'));
+
+
 rqf.addField({
     name: 'filter',
     field: false,
@@ -276,6 +287,16 @@ rqf.addField({
         type: 'integer',
         field: 'turma_turno_id'
     }
+}).addValue({
+  name:'integral_time',
+  table: 'turma',
+  tableField: 'tempo_integral',
+  resultField: 'integral_time_id',
+  where: {
+      relation: '=',
+      type: 'boolean',
+      field: 'tempo_integral'
+  }
 });
 
 enrollmentApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index 024bcb97..475fe617 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -164,6 +164,20 @@ describe('request enrollments', () => {
             });
     });
 
+    it('should list the integral time', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/integral_time')
+            .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 enrollments', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment')
@@ -395,6 +409,20 @@ describe('request enrollments', () => {
             });
     });
 
+    it('should list enrollment with dimension integral_time', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?dims=integral_time')
+            .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('period_name');
+                res.body.result[0].should.not.have.property('period_id');
+                done();
+            });
+    });
+
     it('should list enrollments offer projection', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment/offer_projection')
-- 
GitLab