Skip to content
Snippets Groups Projects
Commit 5b13bb59 authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Add indictor route

parent 127b9973
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -7,7 +7,7 @@ const Filters = require(`${libs}/models/filters`); ...@@ -7,7 +7,7 @@ const Filters = require(`${libs}/models/filters`);
// set up a mongoose model // set up a mongoose model
var IndicatorSchema = new Schema({ var IndicatorSchema = new Schema({
filters: { filters: {
type: [Schema.types.ObjectId], type: [Schema.Types.ObjectId],
ref: 'Filters' ref: 'Filters'
}, },
name: { name: {
...@@ -38,7 +38,8 @@ var IndicatorSchema = new Schema({ ...@@ -38,7 +38,8 @@ var IndicatorSchema = new Schema({
required: true required: true
}, },
noSchools: { noSchools: {
type: Boolean type: Boolean,
default: false
} }
}); });
......
...@@ -12,11 +12,14 @@ const user = require(`${libs}/routes/user`); ...@@ -12,11 +12,14 @@ const user = require(`${libs}/routes/user`);
const message = require(`${libs}/routes/message`); const message = require(`${libs}/routes/message`);
const indicator = require(`${libs}/routes/indicator`);
api.get('/', (req, res) => { api.get('/', (req, res) => {
res.json({ msg: 'SimCAQ API is running' }); res.json({ msg: 'SimCAQ API is running' });
}); });
api.use('/user', user); api.use('/user', user);
api.use('/message', message); api.use('/message', message);
api.use('/indicator', indicator);
module.exports = api; module.exports = api;
const express = require('express');
const indicatorApp = express();
const libs = `${process.cwd()}/libs`;
const config = require(`${libs}/config`);
const log = require(`${libs}/log`)(module);
const Indicator = require(`${libs}/models/indicator`);
indicatorApp.get('/', (req, res, next) => {
Indicator.find((err, indicators) => {
if(err) {
res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err});
}
res.json(indicators);
});
});
indicatorApp.put('/:id', (req, res, next) => {
Indicator.findById(req.params.id, (err, indicator) => {
if(!indicator) {
res.status(404).json({error: 'Não encontrado', text: 'Nenhum indicador foi encontrado', err});
}
if(!err) {
indicator.name = req.body.name | indicator.name;
indicator.url = req.body.url | indicator.url;
indicator.active = req.body.active | indicator.active;
indicator.description = req.body.description | indicator.description;
indicator.route = req.body.route | indicator.route;
indicator.source = req.body.source | indicator.source;
indicator.noSchools = req.body.noSchools | indicator.noSchools;
indicator.save((err) => {
if(err) {
res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err});
}
res.json(indicator);
});
} else {
res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err});
}
});
});
indicatorApp.post('/', (req, res, next) => {
req.checkBody('name', 'Nome é um campo obrigatório').notEmpty();
req.checkBody('url', 'A url é um campo obrigatório').notEmpty();
req.checkBody('route', 'A rota é um campo obrigatório').notEmpty();
req.checkBody('source', 'A fonte é um campo obrigatório').notEmpty();
req.getValidationResult().then(function(result) {
if (!result.isEmpty()) {
res.status(400).send({errors: result.array()});
return;
}
let indicator = new Indicator({
name: req.body.name,
url: req.body.url,
active: req.body.url,
description: req.body.description,
route: req.body.route,
source: req.body.source,
noSchools: req.body.noSchools
});
indicator.save((err) => {
if(err) {
res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err});
}
res.json(indicator);
});
});
});
module.exports = indicatorApp;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment