Fixed: le reactions devono stare in una tabella a parte (reactions).

- cambiata la gestione dei seen, fav, book, attend
This commit is contained in:
Surya Paolo
2023-09-27 18:38:57 +02:00
parent ad6b4c2bfa
commit 142dcadca9
15 changed files with 826 additions and 264 deletions

View File

@@ -619,6 +619,7 @@ router.post('/gettable', authenticate, (req, res) => {
User.setOnLine(req.user.idapp, req.user.username);
}
return mytable.executeQueryTable(idapp, params, req.user).then(ris => {
return res.send(ris);
@@ -1874,8 +1875,8 @@ function deleteFile(req, res, version) {
const relativefile = req.query.filename;
const idapp = req.user.idapp;
if (!relativefile) {
return;
if (!relativefile || relativefile.endsWith('/')) {
res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
}
try {

View File

@@ -5,6 +5,7 @@ const router = express.Router();
const tools = require('../tools/general');
var server_constants = require('../tools/server_constants');
var {authenticate, auth_default} = require('../middleware/authenticate');
@@ -15,6 +16,7 @@ const Subscription = mongoose.model('subscribers');
const _ = require('lodash');
const {MyBacheca} = require('../models/mybacheca');
var {User} = require('../models/user');
const { Reaction } = require('../models/reaction');
const globalTables = require('../tools/globalTables');
@@ -41,10 +43,19 @@ router.post('/page', authenticate, function(req, res, next) {
mytable = globalTables.getTableByTableName(table);
}
if (mytable) {
return mytable.getMyRecById(idapp, id).
then((ris) => {
then(async (ris) => {
// Se è un record singolo di tipo Reaction,
// allora gli devo passare anche le liste degli utenti :
/*if (globalTables.isTableReaction(table)) {
// ...
const myreaction = await Reaction.find({idapp, idrec: id}).lean();
ris.myreaction = myreaction;
};*/
if (ris) {
res.send(ris);

View File

@@ -0,0 +1,99 @@
const express = require('express');
const router = express.Router();
const { Reaction } = require('../models/reaction');
const { User } = require('../models/user');
const Hours = require('../models/hours');
const { ObjectID } = require('mongodb');
const sendemail = require('../sendemail');
const { Settings } = require('../models/settings');
const { SendNotif } = require('../models/sendnotif');
const tools = require('../tools/general');
const shared_consts = require('../tools/shared_nodejs');
const server_constants = require('../tools/server_constants');
const telegrambot = require('../telegram/telegrambot');
const _ = require('lodash');
const reg = require('../reg/registration');
const { authenticate } = require('../middleware/authenticate');
const TypedError = require('../modules/ErrorHandler');
const mongoose = require('mongoose').set('debug', false);
router.post('/cmd', authenticate, async (req, res) => {
const mydata = req.body.mydata;
const idapp = req.body.idapp;
const cmd = req.body.cmd;
const id = req.body.id;
const tab = req.body.tab;
const num = req.body.num;
const value = req.body.value;
try {
const username = req.user.username;
let ris = null;
let record = null;
if (cmd === shared_consts.CMD_REACTION.SET_FAVORITE) {
if (tab) {
if (value)
ris = await Reaction.addFavorite(req, idapp, username, id, tab);
else
ris = await Reaction.removeFavorite(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_REACTION.SET_BOOKMARK) {
if (tab) {
if (value)
ris = await Reaction.addBookmark(req, idapp, username, id, tab);
else
ris = await Reaction.removeBookmark(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_REACTION.SET_ATTEND) {
if (tab) {
if (value)
ris = await Reaction.addAttend(req, idapp, username, id, tab, num);
else
ris = await Reaction.removeAttend(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_REACTION.SET_SEEN) {
if (tab) {
if (value) {
ris = await Reaction.addSeen(req, idapp, username, id, tab);
}
const tabtofind = tools.getNumTabByTable('mybachecas');
if (tab === tabtofind) {
const { MyBacheca } = require('../models/mybacheca');
record = await MyBacheca.getCompleteRecord(idapp, id);
}
}
}
let state = (value && ris && ris.ok === 1) ? 1 : ((!value && ris && ris.ok === 1) ? -1 : 0);
return res.send({ state, record });
} catch (e) {
res.status(400).send();
res.send({ code: server_constants.RIS_CODE_ERR, msg: e, state: null, record: null });
console.log(e.message);
}
});
module.exports = router;

View File

@@ -1166,6 +1166,14 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
console.log('e', e);
}
} else if (mydata.dbop === 'newRecordsFav') {
// Passa le tabelle da users sulle nuove tabelle:
await User.moverecordsFavorite(1);
await User.moverecordsFavorite(2);
await User.moverecordsFavorite(3);
await User.moverecordsFavorite(4);
await User.moverecordsFavorite(5);
} else if (mydata.dbop === 'emptyTabCatServiziBeni') {
const { Sector } = require('../models/sector');
@@ -1384,7 +1392,7 @@ async function ConvertiDaIntAStr(mytable) {
myrec._doc.date_created = x._doc.date_created;
myrec._doc.date_updated = x._doc.date_updated;
if (!myrec._doc.date_updated) {
if (myrec.hasOwnProperty('date_created'))
myrec._doc.date_updated = myrec._doc.date_created;
@@ -1424,7 +1432,7 @@ async function RimuoviInteri(mytable) {
const arr = await mytable.find({ '_id': { $lte: 10000 } })
console.log(' search interi...', arr.length);
const ris = await mytable.deleteMany({ '_id': { $lte: 10000 } })
console.log('FINE - RimuoviInteri ', mytable.modelName, ris);
@@ -1552,67 +1560,4 @@ router.post('/mgt', authenticate, async (req, res) => {
});
router.post('/cmd', authenticate, async (req, res) => {
const mydata = req.body.mydata;
const idapp = req.body.idapp;
const cmd = req.body.cmd;
const id = req.body.id;
const tab = req.body.tab;
const num = req.body.num;
const value = req.body.value;
try {
const username = req.user.username;
let ris = null;
let record = null;
if (cmd === shared_consts.CMD_USER.SET_FAVORITE) {
if (tab) {
if (value)
ris = await User.addFavorite(req, idapp, username, id, tab);
else
ris = await User.removeFavorite(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_USER.SET_BOOKMARK) {
if (tab) {
if (value)
ris = await User.addBookmark(idapp, username, id, tab);
else
ris = await User.removeBookmark(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_USER.SET_ATTEND) {
if (tab) {
if (value)
ris = await User.addAttend(req, idapp, username, id, tab, num);
else
ris = await User.removeAttend(idapp, username, id, tab);
}
} else if (cmd === shared_consts.CMD_USER.SET_SEEN) {
if (tab) {
if (value) {
ris = await User.addSeen(idapp, username, id, tab);
}
const tabtofind = tools.getNumTabByTable('mybachecas');
if (tab === tabtofind) {
const { MyBacheca } = require('../models/mybacheca');
record = await MyBacheca.getCompleteRecord(idapp, id);
}
}
}
let state = (value && ris && ris.ok === 1) ? 1 : ((!value && ris && ris.ok === 1) ? -1 : 0);
return res.send({ state, record });
} catch (e) {
res.status(400).send();
res.send({ code: server_constants.RIS_CODE_ERR, msg: e });
console.log(e.message);
}
});
module.exports = router;