Commit 5b13bb59 authored by Vytor Calixto's avatar Vytor Calixto 👾

Add indictor route

parent 127b9973
Pipeline #9796 failed with stage
in 3 minutes and 50 seconds
......@@ -7,7 +7,7 @@ const Filters = require(`${libs}/models/filters`);
// set up a mongoose model
var IndicatorSchema = new Schema({
filters: {
type: [Schema.types.ObjectId],
type: [Schema.Types.ObjectId],
ref: 'Filters'
},
name: {
......@@ -38,7 +38,8 @@ var IndicatorSchema = new Schema({
required: true
},
noSchools: {
type: Boolean
type: Boolean,
default: false
}
});
......
......@@ -12,11 +12,14 @@ const user = require(`${libs}/routes/user`);
const message = require(`${libs}/routes/message`);
const indicator = require(`${libs}/routes/indicator`);
api.get('/', (req, res) => {
res.json({ msg: 'SimCAQ API is running' });
});
api.use('/user', user);
api.use('/message', message);
api.use('/indicator', indicator);
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;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment