From 59f9198270b9cb6c1e44a60340cf27462fa00e06 Mon Sep 17 00:00:00 2001
From: Gustavo Soviersovski <gas15@inf.ufpr.br>
Date: Tue, 13 Sep 2016 11:57:10 -0300
Subject: [PATCH] Add not tested support of enrollment per school query

---
 src/libs/routes/enrollment.js | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js
index 1b007395..26d1cd6f 100644
--- a/src/libs/routes/enrollment.js
+++ b/src/libs/routes/enrollment.js
@@ -117,7 +117,7 @@ enrollmentApp.use('/', (req, res, next) => {
             .field('SUM(total)', 'total')
             .field('ano_censo', 'year');
 
-        filter(q);
+        filter(req, q);
 
         if (typeof req.id !== 'undefined') {
             q.where('pk_regiao_id=?', req.id);
@@ -165,6 +165,25 @@ enrollmentApp.use('/', (req, res, next) => {
     next();
 });
 
+enrollmentApp.use('/', (req, res, next) => {
+    const params = req.query;
+    if (typeof params.aggregate !== 'undefined' && params.aggregate === 'school') {
+        log.debug('Using enrollments query for schools');
+        const q = squel.select().from('mat_escolas')
+            .field('name')
+            .field('SUM(total)', 'total')
+            .field('ano_censo', 'year');
+
+        filter(req, q);
+
+        if (typeof req.id !== 'undefined') {
+            q.where('pk_escola_id=?', req.id);
+        }
+        req.sql = q.group('name').group('ano_censo').order('ano_censo').toParam();
+    }
+    next();
+});
+
 enrollmentApp.use('/', (req, res, next) => {
     const params = req.query;
     if (typeof params.aggregate === 'undefined') {
-- 
GitLab