ver 0.5.51

This commit is contained in:
Surya Paolo
2023-01-03 16:51:32 +01:00
parent 7a41e6a1d4
commit 18b827f5f4
10 changed files with 1004 additions and 616 deletions

View File

@@ -70,7 +70,7 @@ const UserSchema = new mongoose.Schema({
type: String,
required: true,
trim: true,
minlength: 6,
minlength: 3,
unique: false,
},
name: {
@@ -421,8 +421,7 @@ const UserSchema = new mongoose.Schema({
type: Number,
}],
},
})
;
});
UserSchema.methods.toJSON = function () {
const user = this;
@@ -2270,77 +2269,151 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
result: false,
};
let update = {};
let groupname = extrarec && extrarec.groupname ? extrarec.groupname : '';
try {
if (cmd === shared_consts.CIRCUITCMD.SET) {
const foundIfAlreadyCircuit = await this.ifAlreadyInCircuit(idapp, usernameOrig, circuitname);
if (groupname) {
const foundIfCircuitInGroup = await MyGroup.ifCircuitAlreadyInGroup(idapp, groupname, circuitname);
if (!foundIfAlreadyCircuit) {
update = {
$push: {
'profile.mycircuits': {
circuitname,
date: new Date(),
},
},
};
ris = await User.updateOne({ idapp, username: usernameOrig }, update);
if (!foundIfCircuitInGroup) {
ris = await MyGroup.addCircuitFromGroup(idapp, groupname, circuitname);
// Elimina la richiesta:
update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
// Elimina la richiesta:
update = { $pull: { req_groups: { groupname: { $in: [groupname] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
// Elimina eventualmente se era bloccato:
update = { $pull: { refused_users: { username: { $in: [usernameOrig] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
// Elimina eventualmente se era bloccato:
update = { $pull: { refused_groups: { groupname: { $in: [groupname] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
await Account.createAccount(idapp, usernameOrig, circuitname);
await Account.createAccount(idapp, '', circuitname, groupname);
} else {
ris = false;
}
await Circuit.updateData(idapp, circuitname)
if (ris) {
// Invia una notifica alla persona e agli Admin
tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, value, true, username_action, extrarec);
outres.result = await Circuit.getInfoCircuitByName(idapp, circuitname);
}
} else {
ris = false;
}
const foundIfAlreadyCircuit = await this.ifAlreadyInCircuit(idapp, usernameOrig, circuitname);
await Circuit.updateData(idapp, circuitname)
if (ris) {
// Invia una notifica alla persona e agli Admin
tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, value, true, username_action, extrarec);
outres.result = await Circuit.getInfoCircuitByName(idapp, circuitname);
}
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
// Aggiungo la richiesta di Gruppo a me
const foundIfAlreadyAskCircuit = await Circuit.findOne({
idapp,
name: circuitname,
'req_users': {
$elemMatch: { username: { $eq: usernameOrig } },
},
});
if (value) {
if (!foundIfAlreadyAskCircuit) {
if (!foundIfAlreadyCircuit) {
update = {
$push: {
'req_users': {
username: usernameOrig,
'profile.mycircuits': {
circuitname,
date: new Date(),
},
},
};
ris = await Circuit.updateOne({ idapp, name: circuitname }, update);
ris = await User.updateOne({ idapp, username: usernameOrig }, update);
// Elimina la richiesta:
update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
// Elimina eventualmente se era bloccato:
update = { $pull: { refused_users: { username: { $in: [usernameOrig] } } } };
await Circuit.updateOne({ idapp, name: circuitname }, update);
await Account.createAccount(idapp, usernameOrig, circuitname);
} else {
ris = false;
}
await Circuit.updateData(idapp, circuitname)
if (ris) {
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, true, true, username_action, extrarec);
}
} else {
if (foundIfAlreadyAskCircuit) {
outres.result = await this.removeFromCircuits(idapp, usernameOrig, circuitname); // Rimuovo il Gruppo da me
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
// Invia una notifica alla persona e agli Admin
tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, value, true, username_action, extrarec);
outres.result = await Circuit.getInfoCircuitByName(idapp, circuitname);
}
}
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
if (groupname) {
// Aggiungo la richiesta di Gruppo a me
const foundIfAlreadyAskCircuit = await Circuit.findOne({
idapp,
name: circuitname,
'req_groups': {
$elemMatch: { groupname: { $eq: groupname } },
},
});
if (value) {
if (!foundIfAlreadyAskCircuit) {
update = {
$push: {
'req_groups': {
groupname,
date: new Date(),
},
},
};
ris = await Circuit.updateOne({ idapp, name: circuitname }, update);
}
if (ris) {
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, true, true, username_action, extrarec);
}
} else {
if (foundIfAlreadyAskCircuit) {
outres.result = await MyGroup.removeCircuitFromGroup(idapp, groupname, circuitname); // Rimuovo il Circuito dal gruppo
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
}
}
} else {
// Aggiungo la richiesta di Gruppo a me
const foundIfAlreadyAskCircuit = await Circuit.findOne({
idapp,
name: circuitname,
'req_users': {
$elemMatch: { username: { $eq: usernameOrig } },
},
});
if (value) {
if (!foundIfAlreadyAskCircuit) {
update = {
$push: {
'req_users': {
username: usernameOrig,
date: new Date(),
},
},
};
ris = await Circuit.updateOne({ idapp, name: circuitname }, update);
}
if (ris) {
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, true, true, username_action, extrarec);
}
} else {
if (foundIfAlreadyAskCircuit) {
outres.result = await this.removeFromCircuits(idapp, usernameOrig, circuitname); // Rimuovo il Gruppo da me
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
}
}
}
} else if (cmd === shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST) {
@@ -2368,16 +2441,24 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
} else if (cmd === shared_consts.CIRCUITCMD.CANCEL_REQ) {
outres.result = await Circuit.removeReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
if (groupname)
outres.result = await Circuit.removeReqGroupCircuit(idapp, groupname, circuitname); // Rimuovo l'Amicizia da me
else
outres.result = await Circuit.removeReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
await Circuit.updateData(idapp, circuitname)
} else if (cmd === shared_consts.CIRCUITCMD.REFUSE_REQ) {
outres.result = await this.removeFromCircuits(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.removeReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.refuseReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
if (groupname) {
outres.result = await MyGroup.removeCircuitFromGroup(idapp, groupname, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.removeReqGroupCircuit(idapp, groupname, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.refuseReqGroupCircuit(idapp, groupname, circuitname); // Rimuovo l'Amicizia da me
} else {
outres.result = await this.removeFromCircuits(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.removeReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
outres.result = await Circuit.refuseReqCircuit(idapp, usernameOrig, circuitname); // Rimuovo l'Amicizia da me
}
// Invia una notifica alla persona
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
@@ -2438,6 +2519,7 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT && outcheck.cansend) {
if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
outres = await Circuit.sendCoins(false, idapp, usernameOrig, extrarec);
} else {
outcheck.cansend = false; //GIA INVIATO
}
@@ -2446,6 +2528,10 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
if (outcheck.cansend) {
// Invia una notifica di moneta (accettata o rifiutata) alla persona
const out = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
if (outres && extrarec.groupname) {
// Setta agli altri admin,
}
}
outres.recnotif = await SendNotif.getRecNotif(extrarec.notifId);
@@ -2466,6 +2552,7 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
outres.userprofile = userprofile;
}
outres.listcircuits = await Circuit.findAllIdApp(idapp);
outres.mygroups = await MyGroup.findAllGroups(idapp);
}
if (circuitname)
@@ -3299,7 +3386,7 @@ UserSchema.statics.getUsersRegistered = async function (idapp) {
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersRegisteredToday = async function (idapp) {
@@ -3314,7 +3401,7 @@ UserSchema.statics.getUsersRegisteredToday = async function (idapp) {
date_reg: { $gt: starttoday },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersOnLineToday = async function (idapp) {
@@ -3329,7 +3416,7 @@ UserSchema.statics.getUsersOnLineToday = async function (idapp) {
lasttimeonline: { $gt: starttoday },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
/*
@@ -3398,7 +3485,7 @@ UserSchema.statics.getEmailNotVerified = async function (idapp) {
verified_email: false,
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersTelegramAttivo = async function (idapp) {
@@ -3410,7 +3497,7 @@ UserSchema.statics.getUsersTelegramAttivo = async function (idapp) {
'profile.teleg_id': { $gt: 0 },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersAutorizzati = async function (idapp) {
@@ -3423,7 +3510,7 @@ UserSchema.statics.getUsersAutorizzati = async function (idapp) {
verified_by_aportador: true,
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersAutorizzare = async function (idapp) {
@@ -3436,7 +3523,7 @@ UserSchema.statics.getUsersAutorizzare = async function (idapp) {
verified_by_aportador: { $exists: false },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersTelegramPending = async function (idapp) {
@@ -3448,7 +3535,7 @@ UserSchema.statics.getUsersTelegramPending = async function (idapp) {
'profile.teleg_checkcode': { $gt: 0 },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getNumUsers = async function (idapp) {
@@ -3459,7 +3546,7 @@ UserSchema.statics.getNumUsers = async function (idapp) {
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersZoom = async function (idapp) {
@@ -3471,7 +3558,7 @@ UserSchema.statics.getUsersZoom = async function (idapp) {
'profile.saw_zoom_presentation': true,
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersResidenti = async function (idapp) {
@@ -3495,7 +3582,7 @@ UserSchema.statics.getSaw_and_Accepted = async function (idapp) {
'profile.saw_and_accepted': shared_consts.ALL_SAW_AND_ACCEPTED,
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getUsersDreams = async function (idapp) {
@@ -3508,7 +3595,7 @@ UserSchema.statics.getUsersDreams = async function (idapp) {
'$expr': { '$gt': [{ '$strLenCP': '$profile.my_dream' }, 10] },
};
return await User. countDocuments(myfind);
return await User.countDocuments(myfind);
};
UserSchema.statics.getLastUsers = async function (idapp) {