Newer
Older
const express = require('express');
const simulationApp = express();
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 Simulation = require(`${libs}/models/simulation`);
simulationApp.get('/time', (req, res, next) => {
const maxTime = parseInt(req.query.max_time, 10);
log.debug('maxTime: ', maxTime);
if(isNaN(maxTime)) {
res.status(400);
next({
status: 400,
message: 'Invalid value for mandatory parameter max_time'
});
}
res.json({
result: Array.apply(null, {length: maxTime}).map(Number.call, Number).map((i)=>i+1)
});
});
simulationApp.get('/pqr', (req, res) => {
PQR.findOne((err, pqr) => {
if(err) {
log.error(err);
return next({err});
}
res.json(pqr);
simulationApp.put('/pqr', passport.authenticate('bearer', { session: false }), (req, res, next) => {
let user = req.user.toObject();
PQR.findOne((err, pqr) => {
if(err) {
log.error(err)
return next({err});
}
if(!user.admin) {
log.info(`Usuário ${user.email} tentou alterar o PQR, mas não tem privilégio`);
res.statusCode = 401;
return next({err: { msg: 'Unauthorized'}});
pqr.save((err) => {
if(err) {
log.error(err);
return next({err});
}
res.json({msg: 'PQR updated'})
});
simulationApp.get('/', passport.authenticate('bearer', { session: false }), (req, res) => {
let user = req.user.toObject();
let query = Simulation.find({userId: user._id}).select('userId name');
if(err) {
log.error(err);
return next({err});
// Simulation.find({userId: user._id}, (err, simulations) => {
// if(err) {
// log.error(err);
// return next({err});
// }
// res.json(simulations);
// });
simulationApp.post('/', passport.authenticate('bearer', { session: false }), (req, res, next) => {
let user = req.user.toObject();
let simulation = new Simulation({
userId: user._id,
content: req.body.content,
name: req.body.name
simulation.save((err) => {
if(err) {
log.error(err);
return next({err});
res.json({msg: 'Simulation created', simulation});
simulationApp.get('/:id', passport.authenticate('bearer', { session: false }), (req, res) => {
let user = req.user.toObject();
Simulation.findOne({_id: req.params.id, userId: user._id}, (err, simulation) => {
if(err) {
log.error(err);
return next({err});
simulationApp.put('/:id', passport.authenticate('bearer', { session: false }), (req, res, next) => {
let user = req.user.toObject();
Simulation.findOne({_id: req.params.id, userId: user._id}, (err, simulation) => {
if(err) {
log.error(err);
return next({err});
if(!simulation) {
res.statusCode = 404;
return next({err: { msg: 'Simulation not found'}});
simulation.content = req.body.content || simulation.content;
simulation.name = req.body.name || simulation.name;
simulation.save((err) => {
if(err) {
log.error(err);
return next(err);
});
simulationApp.delete('/:id', passport.authenticate('bearer', { session: false }), (req, res, next) => {
let user = req.user.toObject();
Simulation.remove({_id: req.params.id, userId: user._id}, (err, simulation) => {
if(err) {
log.error(err);
return next({err});
});
module.exports = simulationApp;