Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
simcaq-node
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Harbor Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
simcaq
simcaq-node
Commits
94918fc6
There was a problem fetching the pipeline summary.
Commit
94918fc6
authored
6 years ago
by
Vytor Calixto
Browse files
Options
Downloads
Plain Diff
Merge branch 'release_v1.3.0'
Merges
!130
parents
f42974fe
0349744c
No related branches found
No related tags found
No related merge requests found
Pipeline
#
Changes
3
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CHANGELOG.md
+4
-0
4 additions, 0 deletions
CHANGELOG.md
src/libs/routes/api.js
+3
-0
3 additions, 0 deletions
src/libs/routes/api.js
src/libs/routes/dailyChargeAmount.js
+415
-0
415 additions, 0 deletions
src/libs/routes/dailyChargeAmount.js
with
422 additions
and
0 deletions
CHANGELOG.md
+
4
−
0
View file @
94918fc6
...
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
...
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on
[
Keep a Changelog
](
http://keepachangelog.com/
)
The format is based on
[
Keep a Changelog
](
http://keepachangelog.com/
)
and this project adheres to
[
Semantic Versioning
](
http://semver.org/
)
.
and this project adheres to
[
Semantic Versioning
](
http://semver.org/
)
.
## 1.3.0 - 2018-06-18
### Added
-
Daily charge amount route
## 1.2.3 - 2018-06-14
## 1.2.3 - 2018-06-14
### Changed
### Changed
-
Fixed roundig error in classroom count route
-
Fixed roundig error in classroom count route
...
...
This diff is collapsed.
Click to expand it.
src/libs/routes/api.js
+
3
−
0
View file @
94918fc6
...
@@ -64,6 +64,8 @@ const outOfSchool = require(`${libs}/routes/outOfSchool`);
...
@@ -64,6 +64,8 @@ const outOfSchool = require(`${libs}/routes/outOfSchool`);
const
classroomCount
=
require
(
`
${
libs
}
/routes/classroomCount`
);
const
classroomCount
=
require
(
`
${
libs
}
/routes/classroomCount`
);
const
dailyChargeAmount
=
require
(
`
${
libs
}
/routes/dailyChargeAmount`
);
api
.
get
(
'
/
'
,
(
req
,
res
)
=>
{
api
.
get
(
'
/
'
,
(
req
,
res
)
=>
{
res
.
json
({
msg
:
'
SimCAQ API is running
'
});
res
.
json
({
msg
:
'
SimCAQ API is running
'
});
});
});
...
@@ -98,5 +100,6 @@ api.use('/distribution_factor', distributionFactor);
...
@@ -98,5 +100,6 @@ api.use('/distribution_factor', distributionFactor);
api
.
use
(
'
/siope
'
,
siope
);
api
.
use
(
'
/siope
'
,
siope
);
api
.
use
(
'
/out_of_school
'
,
outOfSchool
);
api
.
use
(
'
/out_of_school
'
,
outOfSchool
);
api
.
use
(
'
/classroom_count
'
,
classroomCount
);
api
.
use
(
'
/classroom_count
'
,
classroomCount
);
api
.
use
(
'
/daily_charge_amount
'
,
dailyChargeAmount
);
module
.
exports
=
api
;
module
.
exports
=
api
;
This diff is collapsed.
Click to expand it.
src/libs/routes/dailyChargeAmount.js
0 → 100644
+
415
−
0
View file @
94918fc6
const
express
=
require
(
'
express
'
);
const
dailyChargeAmountApp
=
express
.
Router
();
const
libs
=
`
${
process
.
cwd
()}
/libs`
;
const
log
=
require
(
`
${
libs
}
/log`
)(
module
);
const
squel
=
require
(
'
squel
'
);
const
query
=
require
(
`
${
libs
}
/middlewares/query`
).
query
;
const
response
=
require
(
`
${
libs
}
/middlewares/response`
);
const
id2str
=
require
(
`
${
libs
}
/middlewares/id2str`
);
const
ReqQueryFields
=
require
(
`
${
libs
}
/middlewares/reqQueryFields`
);
const
request
=
require
(
`request`
);
const
config
=
require
(
`
${
libs
}
/config`
);
const
passport
=
require
(
'
passport
'
);
const
download
=
require
(
`
${
libs
}
/middlewares/downloadDatabase`
);
const
addMissing
=
require
(
`
${
libs
}
/middlewares/addMissing`
);
const
cache
=
require
(
'
apicache
'
).
options
({
debug
:
config
.
debug
,
statusCodes
:
{
include
:
[
200
]}
}).
middleware
;
let
rqf
=
new
ReqQueryFields
();
let
rqfCount
=
new
ReqQueryFields
();
dailyChargeAmountApp
.
get
(
'
/year_range
'
,
(
req
,
res
,
next
)
=>
{
req
.
sql
.
from
(
'
turma
'
)
.
field
(
'
MIN(turma.ano_censo)
'
,
'
start_year
'
)
.
field
(
'
MAX(turma.ano_censo)
'
,
'
end_year
'
);
next
();
},
query
,
response
(
'
range
'
));
dailyChargeAmountApp
.
get
(
'
/years
'
,
(
req
,
res
,
next
)
=>
{
req
.
sql
.
from
(
'
turma
'
)
.
field
(
'
DISTINCT turma.ano_censo
'
,
'
year
'
);
next
();
},
query
,
response
(
'
years
'
));
dailyChargeAmountApp
.
get
(
'
/source
'
,
(
req
,
res
,
next
)
=>
{
req
.
sql
.
from
(
'
fonte
'
)
.
field
(
'
fonte
'
,
'
source
'
)
.
where
(
'
tabela =
\'
turma
\'
'
);
next
();
},
query
,
response
(
'
source
'
));
dailyChargeAmountApp
.
get
(
'
/adm_dependency
'
,
(
req
,
res
,
next
)
=>
{
req
.
result
=
[];
for
(
let
i
=
1
;
i
<=
4
;
++
i
)
{
req
.
result
.
push
({
id
:
i
,
name
:
id2str
.
admDependency
(
i
)
});
};
next
();
},
response
(
'
adm_dependency
'
));
dailyChargeAmountApp
.
get
(
'
/adm_dependency_detailed
'
,
cache
(
'
15 day
'
),
(
req
,
res
,
next
)
=>
{
req
.
result
=
[];
for
(
let
i
=
1
;
i
<=
6
;
++
i
)
{
req
.
result
.
push
({
id
:
i
,
name
:
id2str
.
admDependencyPriv
(
i
)
});
};
next
();
},
response
(
'
adm_dependency_detailed
'
));
dailyChargeAmountApp
.
get
(
'
/location
'
,
cache
(
'
15 day
'
),
(
req
,
res
,
next
)
=>
{
req
.
result
=
[
{
id
:
1
,
name
:
'
Urbana
'
},
{
id
:
2
,
name
:
'
Rural
'
}
];
next
();
},
response
(
'
location
'
));
dailyChargeAmountApp
.
get
(
'
/rural_location
'
,
(
req
,
res
,
next
)
=>
{
req
.
result
=
[
{
id
:
1
,
name
:
"
Urbana
"
},
{
id
:
2
,
name
:
"
Rural
"
},
{
id
:
3
,
name
:
"
Rural - Área de assentamento
"
},
{
id
:
4
,
name
:
"
Rural - Terra indígena
"
},
{
id
:
5
,
name
:
"
Rural - Área remanescente de quilombos
"
},
{
id
:
6
,
name
:
"
Rural - Unidade de uso sustentável
"
}
];
next
();
},
response
(
'
rural_location
'
));
dailyChargeAmountApp
.
get
(
'
/education_level_short
'
,
(
req
,
res
,
next
)
=>
{
req
.
result
=
[
{
id
:
null
,
name
:
'
Não classificada
'
},
{
id
:
1
,
name
:
'
Creche
'
},
{
id
:
2
,
name
:
'
Pré-Escola
'
},
{
id
:
3
,
name
:
'
Ensino Fundamental - anos iniciais
'
},
{
id
:
4
,
name
:
'
Ensino Fundamental - anos finais
'
},
{
id
:
5
,
name
:
'
Ensino Médio
'
},
{
id
:
6
,
name
:
'
EJA
'
},
{
id
:
7
,
name
:
'
EE exclusiva
'
}
];
next
();
},
response
(
'
education_level_short
'
));
dailyChargeAmountApp
.
get
(
'
/average/education_level_mod
'
,
(
req
,
res
,
next
)
=>
{
req
.
result
=
[
{
id
:
null
,
name
:
'
Não classificada
'
},
{
id
:
1
,
name
:
'
Creche
'
},
{
id
:
2
,
name
:
'
Pré-Escola
'
},
{
id
:
3
,
name
:
'
Educação Infantil Unificada
'
},
{
id
:
4
,
name
:
'
Ensino Fundamental - anos iniciais
'
},
{
id
:
5
,
name
:
'
Ensino Fundamental - anos finais
'
},
{
id
:
6
,
name
:
'
Ensino Médio
'
},
{
id
:
7
,
name
:
'
Turma Multisseriadas e Multietapas
'
},
{
id
:
8
,
name
:
'
EJA - Ensino Fundamental
'
},
{
id
:
9
,
name
:
'
EJA - Ensino Médio
'
},
{
id
:
10
,
name
:
'
Educação Profissional
'
}
];
next
();
},
response
(
'
education_level_mod
'
));
rqf
.
addField
({
name
:
'
filter
'
,
field
:
false
,
where
:
true
}).
addField
({
name
:
'
dims
'
,
field
:
true
,
where
:
false
}).
addValue
({
name
:
'
region
'
,
table
:
'
regiao
'
,
tableField
:
'
nome
'
,
resultField
:
'
region_name
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
id
'
},
join
:
{
primary
:
'
id
'
,
foreign
:
'
regiao_id
'
,
foreignTable
:
'
turma
'
}
}).
addValue
({
name
:
'
state
'
,
table
:
'
estado
'
,
tableField
:
'
nome
'
,
resultField
:
'
state_name
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
id
'
},
join
:
{
primary
:
'
id
'
,
foreign
:
'
estado_id
'
,
foreignTable
:
'
turma
'
}
}).
addValue
({
name
:
'
school
'
,
table
:
'
escola
'
,
tableField
:
[
'
nome_escola
'
,
'
id
'
],
resultField
:
[
'
school_name
'
,
'
school_id
'
],
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
id
'
},
join
:
{
primary
:
'
id
'
,
foreign
:
'
escola_id
'
,
foreignTable
:
'
turma
'
}
}).
addValue
({
name
:
'
city
'
,
table
:
'
municipio
'
,
tableField
:
[
'
nome
'
,
'
id
'
],
resultField
:
[
'
city_name
'
,
'
city_id
'
],
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
municipio_id
'
,
table
:
'
turma
'
},
join
:
{
primary
:
'
id
'
,
foreign
:
'
municipio_id
'
,
foreignTable
:
'
turma
'
}
}).
addValue
({
name
:
'
min_year
'
,
table
:
'
turma
'
,
tableField
:
'
ano_censo
'
,
resultField
:
'
year
'
,
where
:
{
relation
:
'
>=
'
,
type
:
'
integer
'
,
table
:
'
turma
'
,
field
:
'
ano_censo
'
}
}).
addValue
({
name
:
'
max_year
'
,
table
:
'
turma
'
,
tableField
:
'
ano_censo
'
,
resultField
:
'
year
'
,
where
:
{
relation
:
'
<=
'
,
type
:
'
integer
'
,
table
:
'
turma
'
,
field
:
'
ano_censo
'
}
}).
addValue
({
name
:
'
location
'
,
table
:
'
turma
'
,
tableField
:
'
localizacao_id
'
,
resultField
:
'
location_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
localizacao_id
'
}
}).
addValue
({
name
:
'
adm_dependency
'
,
table
:
'
turma
'
,
tableField
:
'
dependencia_adm_id
'
,
resultField
:
'
adm_dependency_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
dependencia_adm_id
'
}
}).
addValue
({
name
:
'
adm_dependency_detailed
'
,
table
:
'
turma
'
,
tableField
:
'
dependencia_adm_priv
'
,
resultField
:
'
adm_dependency_detailed_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
dependencia_adm_priv
'
}
}).
addValue
({
name
:
'
rural_location
'
,
table
:
'
turma
'
,
tableField
:
'
localidade_area_rural
'
,
resultField
:
'
rural_location_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
localidade_area_rural
'
}
}).
addValue
({
name
:
'
education_level_mod
'
,
table
:
'
turma
'
,
tableField
:
'
etapas_mod_ensino_segmento_id
'
,
resultField
:
'
education_level_mod_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
etapas_mod_ensino_segmento_id
'
}
}).
addValue
({
name
:
'
period
'
,
table
:
'
turma
'
,
tableField
:
'
turma_turno_id
'
,
resultField
:
'
period_id
'
,
where
:
{
relation
:
'
=
'
,
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
'
}
}).
addValue
({
name
:
'
education_level_short
'
,
table
:
'
turma
'
,
tableField
:
'
etapa_resumida
'
,
resultField
:
'
education_level_short_id
'
,
where
:
{
relation
:
'
=
'
,
type
:
'
integer
'
,
field
:
'
etapa_resumida
'
}
});
dailyChargeAmountApp
.
get
(
'
/
'
,
rqf
.
parse
(),
rqf
.
build
(),
(
req
,
res
,
next
)
=>
{
var
status
=
0
;
if
(
'
integral_time
'
in
req
.
filter
)
{
if
(
req
.
filter
[
'
integral_time
'
]
==
'
0
'
&&
(
'
period
'
in
req
.
filter
))
{
if
(
req
.
filter
[
'
period
'
].
length
==
1
&&
req
.
filter
[
'
period
'
][
0
]
==
'
3
'
)
{
status
=
1
;
}
else
if
(
req
.
filter
[
'
period
'
].
length
<=
2
&&
(
req
.
filter
[
'
period
'
].
includes
(
'
1
'
)
||
req
.
filter
[
'
period
'
].
includes
(
'
2
'
))
&&
(
!
req
.
filter
[
'
period
'
].
includes
(
'
3
'
)))
{
status
=
1
;
}
}
else
if
(
req
.
filter
[
'
integral_time
'
]
==
'
1
'
)
{
status
=
1
;
}
}
if
(
status
)
{
req
.
sql
.
from
(
'
turma
'
)
.
field
(
'
turma.ano_censo
'
,
'
year
'
)
.
field
(
'
turma.etapa_resumida
'
,
'
education_level_short_id
'
)
.
field
(
'
AVG(turma.duracao_turma)/60.0
'
,
'
average_class_duration
'
)
.
field
(
'
MEDIAN(turma.duracao_turma)/60.0
'
,
'
median_class_duration
'
)
.
field
(
'
STDDEV_POP(turma.duracao_turma)/60.0
'
,
'
std_class_duration
'
)
.
field
(
'
QUANTILE(turma.duracao_turma, 0.25)/60.0
'
,
'
fstqt_class_duration
'
)
.
field
(
'
QUANTILE(turma.duracao_turma, 0.75)/60.0
'
,
'
thdqt_class_duration
'
)
.
group
(
'
turma.ano_censo
'
)
.
group
(
'
turma.etapa_resumida
'
)
.
order
(
'
turma.ano_censo
'
)
.
order
(
'
turma.etapa_resumida
'
)
.
where
(
'
turma.tipo_turma_id <= 3
'
)
}
else
{
res
.
status
(
400
);
next
({
status
:
400
,
message
:
'
Wrong/No filter specified
'
});
}
next
();
},
query
,
addMissing
(
rqf
),
(
req
,
res
,
next
)
=>
{
function
sliced
(
object
)
{
return
object
[
'
education_level_short_id
'
]
>
3
;
}
if
(
'
period
'
in
req
.
filter
||
'
period
'
in
req
.
dims
)
{
req
.
filter
[
'
period
'
].
forEach
((
element
)
=>
{
if
(
element
==
'
3
'
)
req
.
result
=
req
.
result
.
filter
(
sliced
);
});
}
next
();
},
id2str
.
transform
(),
response
(
'
turma
'
));
dailyChargeAmountApp
.
get
(
'
/average
'
,
rqf
.
parse
(),
rqf
.
build
(),
(
req
,
res
,
next
)
=>
{
var
status
=
0
;
if
((
'
education_level_mod
'
in
req
.
filter
||
'
education_level_mod
'
in
req
.
dims
)
&&
(
'
integral_time
'
in
req
.
filter
))
{
if
(
req
.
filter
[
'
integral_time
'
]
==
'
0
'
&&
(
'
period
'
in
req
.
filter
))
{
if
(
req
.
filter
[
'
period
'
].
length
==
1
&&
req
.
filter
[
'
period
'
][
0
]
==
'
3
'
)
{
status
=
1
;
}
else
if
(
req
.
filter
[
'
period
'
].
length
<=
2
&&
(
req
.
filter
[
'
period
'
].
includes
(
'
1
'
)
||
req
.
filter
[
'
period
'
].
includes
(
'
2
'
))
&&
(
!
req
.
filter
[
'
period
'
].
includes
(
'
3
'
)))
{
status
=
1
;
}
}
else
if
(
req
.
filter
[
'
integral_time
'
]
==
'
1
'
)
{
status
=
1
;
}
}
if
(
status
)
{
req
.
sql
.
from
(
'
turma
'
)
.
field
(
'
turma.ano_censo
'
,
'
year
'
)
.
field
(
'
turma.etapas_mod_ensino_segmento_id
'
,
'
education_level_mod_id
'
)
.
field
(
'
AVG(turma.duracao_turma)/60.0
'
,
'
average_class_duration
'
)
.
group
(
'
turma.ano_censo
'
)
.
group
(
'
turma.etapas_mod_ensino_segmento_id
'
)
.
order
(
'
turma.ano_censo
'
)
.
order
(
'
turma.etapas_mod_ensino_segmento_id
'
)
.
where
(
'
turma.tipo_turma_id <= 3
'
)
}
else
{
res
.
status
(
400
);
next
({
status
:
400
,
message
:
'
Wrong/No filter specified
'
});
}
next
();
},
query
,
addMissing
(
rqf
),
(
req
,
res
,
next
)
=>
{
function
sliced
(
object
)
{
return
object
[
'
education_level_mod_id
'
]
>
4
;
}
if
(
'
period
'
in
req
.
filter
||
'
period
'
in
req
.
dims
)
{
req
.
filter
[
'
period
'
].
forEach
((
element
)
=>
{
if
(
element
==
'
3
'
)
req
.
result
=
req
.
result
.
filter
(
sliced
);
});
}
next
();
},
id2str
.
transform
(),
response
(
'
turma
'
));
module
.
exports
=
dailyChargeAmountApp
;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment