Files
freeplanet_serverside/src/server/router/circuits_router.js

94 lines
2.7 KiB
JavaScript
Raw Normal View History

2022-08-30 17:00:48 +02:00
const express = require('express');
const router = express.Router();
const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
2023-02-01 01:19:50 +01:00
const { authenticate } = require('../middleware/authenticate');
2022-08-30 17:00:48 +02:00
2022-09-14 11:32:04 +02:00
const mongoose = require('mongoose').set('debug', false);
2022-08-30 17:00:48 +02:00
2023-02-01 01:19:50 +01:00
const { User } = require('../models/user');
const { Circuit } = require('../models/circuit');
const { Account } = require('../models/account');
2022-08-30 17:00:48 +02:00
const _ = require('lodash');
2023-02-01 01:19:50 +01:00
const { ObjectID } = require('mongodb');
2022-08-30 17:00:48 +02:00
async function getCircuitRecAdminsInfo(idapp, data) {
if (data && data.admins) {
for (const admin of data.admins) {
2023-02-01 01:19:50 +01:00
const myuser = await User.findOne({ idapp, username: admin.username }, { 'profile.img': 1 }).lean();
admin.profile = { img: myuser.profile.img };
2022-08-30 17:00:48 +02:00
}
}
return data;
}
router.post('/load', authenticate, async (req, res) => {
const idapp = req.body.idapp;
const path = req.body.path;
const usernameOrig = req.user.username;
try {
2023-02-01 01:19:50 +01:00
const { SendNotif } = require('../models/sendnotif');
const { Movement } = require('../models/movement');
2022-08-30 17:00:48 +02:00
// Check if ìs a Notif to read
const idnotif = req.body['idnotif'] ? req.body['idnotif'] : '';
const lastdr = req.body['lastdr'] ? req.body['lastdr'] : '';
2022-08-30 17:00:48 +02:00
SendNotif.setNotifAsRead(idapp, usernameOrig, idnotif);
const whatshow = Circuit.getWhatToShow(idapp, req.user.username);
2023-02-01 01:19:50 +01:00
let data = await Circuit.findOne({ idapp, path }, whatshow).lean();
2022-08-30 17:00:48 +02:00
const whatshowUsers = await User.getWhatToShow_IfFriends(idapp, req.user.username);
2022-11-06 13:39:01 +01:00
/*let users_in_circuit = [];
if (data) {
2022-08-30 17:00:48 +02:00
users_in_circuit = await User.find(
{
idapp,
'profile.mycircuits': {
$elemMatch: {circuitname: {$eq: data.name}},
},
2022-08-30 17:00:48 +02:00
},
whatshowUsers,
).lean();
}
2022-11-06 13:39:01 +01:00
*/
const users_in_circuit = await Circuit.getUsersSingleCircuit(idapp, req.user.username, data.name, data._id);
2022-08-30 17:00:48 +02:00
data = await getCircuitRecAdminsInfo(idapp, data);
2022-09-12 18:37:08 +02:00
if (data) {
data.movements = await Movement.getMovsByCircuitId(idapp, usernameOrig, data._id);
}
2023-02-01 01:19:50 +01:00
if (data) {
2023-02-01 16:36:10 +01:00
data.account = await Account.getAccountByUsernameAndCircuitId(idapp, '', data._id, false, '', data.path);
2023-02-01 01:19:50 +01:00
}
const arrrecnotif = await SendNotif.findAllNotifByUsernameIdAndIdApp(req.user.username, lastdr, idapp);
const useraccounts = await Account.getUserAccounts(idapp, req.user.username);
res.send({ circuit: data, users_in_circuit, arrrecnotif, useraccounts });
2022-08-30 17:00:48 +02:00
} catch (e) {
console.error('Error in Circuits', e);
return res.status(400).send(e);
}
const ris = null;
});
module.exports = router;