Circuit go on...

This commit is contained in:
paoloar77
2022-08-30 17:00:48 +02:00
parent a2019c6ac9
commit f55d69b7fe
7 changed files with 275 additions and 16 deletions

View File

@@ -0,0 +1,76 @@
const express = require('express');
const router = express.Router();
const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
const {authenticate} = require('../middleware/authenticate');
const mongoose = require('mongoose').set('debug', false);
const {User} = require('../models/user');
const {Circuit} = require('../models/circuit');
const _ = require('lodash');
const {ObjectID} = require('mongodb');
async function getCircuitRecAdminsInfo(idapp, data) {
if (data && data.admins) {
for (const admin of data.admins) {
const myuser = await User.findOne({idapp, username: admin.username}, {'profile.img': 1}).lean();
admin.profile = {img: myuser.profile.img};
}
}
return data;
}
router.post('/load', authenticate, async (req, res) => {
const idapp = req.body.idapp;
const path = req.body.path;
const circuitId = req.body.circuitId;
const usernameOrig = req.user.username;
try {
const {SendNotif} = require('../models/sendnotif');
// Check if ìs a Notif to read
const idnotif = req.body['idnotif'] ? req.body['idnotif'] : '';
SendNotif.setNotifAsRead(idapp, usernameOrig, idnotif);
const whatshow = Circuit.getWhatToShow(idapp, req.user.username);
let data = await Circuit.findOne({idapp, path}, whatshow).lean();
let cities = [];
let users_in_circuit = [];
if (data && data.circuitId) {
users_in_circuit = await User.find(
{
idapp,
circuitId: data.circuitId,
},
whatshowUsers,
).lean();
}
data = await getCircuitRecAdminsInfo(idapp, data);
const whatshowUsers = await User.getWhatToShow_IfFriends(idapp, req.user.username);
res.send({circuit: data, users_in_circuit});
} catch (e) {
console.error('Error in Circuits', e);
return res.status(400).send(e);
}
const ris = null;
});
module.exports = router;

View File

@@ -711,6 +711,34 @@ router.post('/groups/cmd', authenticate, (req, res) => {
});
router.post('/circuits/cmd', authenticate, (req, res) => {
const usernameLogged = req.user.username;
const idapp = req.body.idapp;
const locale = req.body.locale;
const usernameOrig = req.body.usernameOrig;
const name = req.body.name;
const cmd = req.body.cmd;
const value = req.body.value;
/*if (!User.isAdmin(req.user.perm) || !User.isManager(req.user.perm)) {
// If without permissions, exit
if (usernameOrig !== usernameLogged) {
return res.status(404).
send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''});
}
}*/
return User.setCircuitCmd(idapp, usernameOrig, name, cmd, value, usernameLogged).
then((ris) => {
res.send(ris);
}).
catch((e) => {
tools.mylog('ERRORE IN groups/cmd: ' + e.message);
res.status(400).send();
});
});
async function eseguiDbOp(idapp, mydata, locale) {
let ris = await User.DbOp(idapp, mydata);