|
|
|
|
@@ -10,6 +10,8 @@ require('../models/subscribers');
|
|
|
|
|
|
|
|
|
|
const { ObjectId } = require('mongodb');
|
|
|
|
|
|
|
|
|
|
const mongoose = require('mongoose');
|
|
|
|
|
|
|
|
|
|
const { User } = require('../models/user');
|
|
|
|
|
const { MyGroup } = require('../models/mygroup');
|
|
|
|
|
const { Booking } = require('../models/booking');
|
|
|
|
|
@@ -57,6 +59,7 @@ const { SendMsg } = require('../models/sendmsg');
|
|
|
|
|
const { Permission } = require('../models/permission');
|
|
|
|
|
const { MsgTemplate } = require('../models/msg_template');
|
|
|
|
|
const { Graduatoria } = require('../models/graduatoria');
|
|
|
|
|
|
|
|
|
|
const Product = require('../models/product');
|
|
|
|
|
const ProductInfo = require('../models/productInfo');
|
|
|
|
|
const Producer = require('../models/producer');
|
|
|
|
|
@@ -267,7 +270,7 @@ module.exports = {
|
|
|
|
|
return process.env.ENABLE_PUSHNOTIFICATION === '1';
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async sendNotif(typenotif, idnotif, res, idapp, user, recnotif, cmd) {
|
|
|
|
|
async sendNotifCmd(typenotif, idnotif, res, idapp, user, recnotif, cmd) {
|
|
|
|
|
// Controlla nelle impostazioni che tipo di Notifica visualizzare
|
|
|
|
|
|
|
|
|
|
const sendemail = require('../sendemail');
|
|
|
|
|
@@ -473,9 +476,9 @@ module.exports = {
|
|
|
|
|
if (risult && (risult.text || risult.caption))
|
|
|
|
|
textsent = (risult.text || risult.caption);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -518,98 +521,261 @@ module.exports = {
|
|
|
|
|
return await this.SendMsgToParam(idapp, params);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
SearchString: async function (idapp, searchString) {
|
|
|
|
|
const db = mongoose.connection.db;
|
|
|
|
|
let result = '';
|
|
|
|
|
let resultPrima = '';
|
|
|
|
|
|
|
|
|
|
if (!searchString)
|
|
|
|
|
return '';
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// Ottieni tutte le collezioni del database
|
|
|
|
|
const collections = await db.listCollections().toArray();
|
|
|
|
|
const collectionNames = collections.map(collection => collection.name);
|
|
|
|
|
|
|
|
|
|
for (const collectionName of collectionNames) {
|
|
|
|
|
// Crea l'indice di testo per la collezione
|
|
|
|
|
await db.collection(collectionName).createIndex({ "$**": "text" });
|
|
|
|
|
|
|
|
|
|
if (collectionName !== 'sendnotifs') {
|
|
|
|
|
// Cerca nella collezione
|
|
|
|
|
const found = await db.collection(collectionName).find({
|
|
|
|
|
$and: [
|
|
|
|
|
{ idapp: idapp },
|
|
|
|
|
{ $text: { $search: searchString } },
|
|
|
|
|
{ 'profile.username_telegram': { $exists: false } }
|
|
|
|
|
]
|
|
|
|
|
}).toArray();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (found.length > 0) {
|
|
|
|
|
resultPrima += `Risultati trovati nella collezione: ${collectionName} (${found.length} record)\n`;
|
|
|
|
|
|
|
|
|
|
result += `Risultati trovati nella collezione: ${collectionName}\n`;
|
|
|
|
|
for (const record of found) {
|
|
|
|
|
result += JSON.stringify(record) + '\n';
|
|
|
|
|
}
|
|
|
|
|
result += '\n';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (result === '') {
|
|
|
|
|
result = 'La stringa non è stata trovata in nessuna collezione.';
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
result = `Errore durante la ricerca: ${error.message}`;
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultPrima + '\n\n' + result;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
replaceAportadorSolidario: async function (idapp, search_username, replace_username) {
|
|
|
|
|
|
|
|
|
|
console.log('INIZIO replaceAportadorSolidario')
|
|
|
|
|
|
|
|
|
|
if (!search_username || !replace_username) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_iniziale: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_iniziale result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_solidario: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_solidario result = ', ris);
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
replaceUsername: async function (idapp, search_username, replace_username) {
|
|
|
|
|
|
|
|
|
|
if (!search_username || !replace_username) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const test = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log('INIZIO replaceUsername')
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
let ris = null;
|
|
|
|
|
console.log('replaceUsername = ', search_username, replace_username);
|
|
|
|
|
|
|
|
|
|
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
|
|
|
|
console.log('username result = ', ris);
|
|
|
|
|
const dir = tools.getdirByIdApp(idapp, true);
|
|
|
|
|
|
|
|
|
|
tools.move(server_constants.DIR_UPLOAD + 'profile/' + search_username, server_constants.DIR_UPLOAD + 'profile/' + replace_username, function callback() {
|
|
|
|
|
console.log(' ... moved dir', server_constants.DIR_UPLOAD + 'profile/' + search_username, server_constants.DIR_UPLOAD + 'profile/' + replace_username);
|
|
|
|
|
tools.move(dir + server_constants.DIR_UPLOAD + '/profile/' + search_username, dir + server_constants.DIR_UPLOAD + '/profile/' + replace_username, function callback() {
|
|
|
|
|
console.log(' ... moved dir', dir + server_constants.DIR_UPLOAD + '/profile/' + search_username, dir + server_constants.DIR_UPLOAD + '/profile/' + replace_username);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
ris = await User.findOneAndUpdate({ idapp, 'profile.username_telegram': search_username }, { $set: { 'profile.username_telegram': replace_username } });
|
|
|
|
|
console.log('profile.username_telegram result = ', ris);
|
|
|
|
|
if (test) {
|
|
|
|
|
// esco...
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_iniziale: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_iniziale result = ', ris);
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, username_who_report: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ username_who_report: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('username_who_report result = ', ris);
|
|
|
|
|
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
|
|
|
|
console.log('username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_solidario: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_solidario result = ', ris);
|
|
|
|
|
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
|
|
|
|
console.log('username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.friends.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.friends.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('friends.username result = ', ris);
|
|
|
|
|
ris = await User.findOneAndUpdate({ idapp, 'profile.username_telegram': search_username }, { $set: { 'profile.username_telegram': replace_username } });
|
|
|
|
|
console.log('profile.username_telegram result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.req_friends.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.req_friends.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('req_friends.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_iniziale: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_iniziale result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.handshake.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.handshake.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('handshake.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, username_who_report: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ username_who_report: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('username_who_report result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'admins.username': search_username },
|
|
|
|
|
{ $set: { 'admins.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.admins.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ aportador_solidario: replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('aportador_solidario result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'req_users.username': search_username },
|
|
|
|
|
{ $set: { 'req_users.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.req_users.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.friends.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.friends.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('friends.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'refused_users.username': search_username },
|
|
|
|
|
{ $set: { 'refused_users.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.refused_users.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.req_friends.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.req_friends.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('req_friends.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Account.updateMany({ idapp, 'username': search_username },
|
|
|
|
|
{ $set: { 'username': replace_username } });
|
|
|
|
|
console.log('Account.username result = ', ris);
|
|
|
|
|
ris = await User.updateMany({ idapp, 'profile.handshake.username': search_username },
|
|
|
|
|
{
|
|
|
|
|
$set:
|
|
|
|
|
{ 'profile.handshake.$.username': replace_username }
|
|
|
|
|
});
|
|
|
|
|
console.log('handshake.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'admins.username': search_username },
|
|
|
|
|
{ $set: { 'admins.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.refused_users.username result = ', ris);
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'admins.username': search_username },
|
|
|
|
|
{ $set: { 'admins.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.admins.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'req_users.username': search_username },
|
|
|
|
|
{ $set: { 'req_users.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.req_users.username result = ', ris);
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'createdBy': search_username },
|
|
|
|
|
{ $set: { 'createdBy': replace_username } });
|
|
|
|
|
console.log('Circuit.createdBy result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'createdBy': search_username },
|
|
|
|
|
{ $set: { 'createdBy': replace_username } });
|
|
|
|
|
console.log('MyGroup.createdBy result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyElem.updateMany(
|
|
|
|
|
{
|
|
|
|
|
idapp,
|
|
|
|
|
$or: [
|
|
|
|
|
{ 'containerHtml': { $regex: search_username, $options: 'i' } },
|
|
|
|
|
{ 'link': { $regex: search_username, $options: 'i' } }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
$set: {
|
|
|
|
|
containerHtml: {
|
|
|
|
|
$replaceAll: {
|
|
|
|
|
input: "$containerHtml",
|
|
|
|
|
find: search_username,
|
|
|
|
|
replacement: replace_username
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
link: {
|
|
|
|
|
$replaceAll: {
|
|
|
|
|
input: "$link",
|
|
|
|
|
find: search_username,
|
|
|
|
|
replacement: replace_username
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
console.log('MyElem.containerHtml result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'req_users.username': search_username },
|
|
|
|
|
{ $set: { 'req_users.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.req_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Circuit.updateMany({ idapp, 'refused_users.username': search_username },
|
|
|
|
|
{ $set: { 'refused_users.$.username': replace_username } });
|
|
|
|
|
console.log('Circuit.refused_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await Account.updateMany({ idapp, 'username': search_username },
|
|
|
|
|
{ $set: { 'username': replace_username } });
|
|
|
|
|
console.log('Account.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'admins.username': search_username },
|
|
|
|
|
{ $set: { 'admins.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.refused_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'req_users.username': search_username },
|
|
|
|
|
{ $set: { 'req_users.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.req_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
// MyGroup.refused_users.username
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'refused_users.username': search_username },
|
|
|
|
|
{ $set: { 'refused_users.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.refused_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
const { SendNotif } = require('../models/sendnotif');
|
|
|
|
|
|
|
|
|
|
ris = await SendNotif.updateMany({ idapp, 'sender': search_username },
|
|
|
|
|
{ $set: { 'sender': replace_username } });
|
|
|
|
|
console.log('SendNotif.sender result = ', ris);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
ris = await SendNotif.updateMany({ idapp, 'dest': search_username },
|
|
|
|
|
{ $set: { 'dest': replace_username } });
|
|
|
|
|
console.log('SendNotif.dest result = ', ris);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ris = await Reaction.updateMany({ idapp, 'username': search_username },
|
|
|
|
|
{ $set: { 'username': replace_username } });
|
|
|
|
|
console.log('Reaction.dest result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await SendMsg.updateMany({ idapp, 'dest': search_username },
|
|
|
|
|
{ $set: { 'dest': replace_username } });
|
|
|
|
|
console.log('SendMsg.dest result = ', ris);
|
|
|
|
|
|
|
|
|
|
ris = await SendMsg.updateMany({ idapp, 'origin': search_username },
|
|
|
|
|
{ $set: { 'origin': replace_username } });
|
|
|
|
|
console.log('SendMsg.origin result = ', ris);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ris = await Booking.updateMany({ idapp, 'username': search_username },
|
|
|
|
|
{ $set: { 'username': replace_username } });
|
|
|
|
|
console.log('Booking.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MyGroup.refused_users.username
|
|
|
|
|
ris = await MyGroup.updateMany({ idapp, 'refused_users.username': search_username },
|
|
|
|
|
{ $set: { 'refused_users.$.username': replace_username } });
|
|
|
|
|
console.log('MyGroup.refused_users.username result = ', ris);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|