- Requirements
- Send Msg to Passeggeri
This commit is contained in:
Paolo Arena
2020-03-10 21:44:14 +01:00
parent 26715cda44
commit fbc85ce06a
37 changed files with 2392 additions and 673 deletions

View File

@@ -12,6 +12,7 @@ const sendemail = require('../sendemail');
const { authenticate, authenticate_noerror } = require('../middleware/authenticate');
const { ObjectID } = require('mongodb');
const { ListaIngresso } = require('../models/listaingresso');
const mongoose = require('mongoose');
const cfgserver = mongoose.model('cfgserver');
@@ -27,6 +28,7 @@ if (!fs.existsSync(folder)) {
const _ = require('lodash');
const { User } = require('../models/user');
const { Nave } = require('../models/nave');
const { ExtraList } = require('../models/extralist');
const { Booking } = require('../models/booking');
const { Operator } = require('../models/operator');
@@ -52,6 +54,15 @@ const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
const actions = require('./api/actions');
UserCost = {
FIELDS_REQUISITI: ['verified_email',
'profile.teleg_id',
'profile.saw_zoom_presentation',
'profile.saw_and_accepted',
'profile.email_paypal',
'profile.my_dream',
'profile.paymenttypes']
};
router.post(process.env.LINKVERIF_REG, (req, res) => {
const body = _.pick(req.body, ['idapp', 'idlink']);
@@ -77,7 +88,10 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
user.lasttimeonline = new Date();
user.save().then(() => {
//console.log("TROVATOOOOOO!");
res.send({ code: server_constants.RIS_CODE_EMAIL_VERIFIED, msg: tools.getres__('EMAIL', res) + ' ' + tools.getres__('VERIF', res) });
res.send({
code: server_constants.RIS_CODE_EMAIL_VERIFIED,
msg: tools.getres__('EMAIL', res) + ' ' + tools.getres__('VERIF', res)
});
});
}
}
@@ -93,7 +107,7 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
const body = _.pick(req.body, ['idapp', 'email']);
const idapp = body.idapp;
const email = body.email;
const email = body.email.toLowerCase().trim();
console.log("POST " + process.env.LINK_REQUEST_NEWPASSWORD + " idapp= " + idapp + " email = " + email);
User.findByEmail(idapp, email).then(async (user) => {
@@ -124,7 +138,7 @@ router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
router.post(process.env.LINK_UPDATE_PWD, (req, res) => {
const body = _.pick(req.body, ['idapp', 'email', 'tokenforgot', 'password']);
const idapp = body.idapp;
const email = body.email;
const email = body.email.toLowerCase().trim();
const tokenforgot = body.tokenforgot;
const password = body.password;
const msg = "Richiesta Nuova Password: idapp= " + idapp + " email = " + email;
@@ -198,6 +212,10 @@ function getTableByTableName(tablename) {
mytable = Permission;
else if (tablename === 'mailinglist')
mytable = MailingList;
else if (tablename === 'navi')
mytable = Nave;
else if (tablename === 'listaingressos')
mytable = ListaIngresso;
return mytable
}
@@ -255,8 +273,63 @@ router.post('/gettable', authenticate, (req, res) => {
});
async function checkIfSbloccatiRequisiti(idapp, allData, id) {
router.patch('/chval', authenticate, (req, res) => {
if (await Nave.findByIndOrder(idapp, allData.myuser.ind_order)) {
// Se già sei dentro la Nave, allora sei OK
return true;
}
// Controlla se Sblocca i 7 requisiti
const is7req = await User.isUserQualified7(idapp, allData.myuser.username);
const is9req = await User.isUserQualified9(idapp, allData.myuser.username);
const userlista = await ListaIngresso.findByIndOrder(idapp, allData.myuser.ind_order);
if (!userlista) {
// Se non sono ancora dentro alla lista, allora controllo
if (!allData.precDataUser.is7req && is7req) {
// ORA HAI I 7 REQUISITI !
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_7_REQUISITI', allData.myuser.lang);
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
if (tools.isAbilitaNave(idapp)) {
// Aggiungilo alla ListaIngresso
ris = await ListaIngresso.addUserInListaIngresso(idapp, allData.myuser.ind_order, allData.myuser.lang, true, 1);
}
}
}
if (!allData.precDataUser.is9req && is9req) {
// ORA HAI I 9 REQUISITI !
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.myuser.lang);
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
}
// CHECK APORTADOR SOLIDARIO:
if (!!allData.useraportador) {
const is9reqAportador = await User.isUserQualified9(idapp, allData.myuser.aportador_solidario);
if (!allData.precDataAportador.is9req && is9reqAportador) {
// ORA HAI I 9 REQUISITI !
const msgtext = telegrambot.getCiao(idapp, allData.myuser.aportador_solidario, allData.useraportador.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.useraportador.lang);
telegrambot.sendMsgTelegram(idapp, allData.useraportador.username, msgtext, true); // Anche a STAFF
}
}
}
async function getInfoUser(idapp, username) {
return {
username,
is7req: await User.isUserQualified7(idapp, username),
is9req: await User.isUserQualified9(idapp, username),
}
}
router.patch('/chval', authenticate, async (req, res) => {
// const idapp = req.body.idapp;
const id = req.body.data.id;
const idapp = req.body.idapp;
@@ -265,7 +338,7 @@ router.patch('/chval', authenticate, (req, res) => {
const mytable = getTableByTableName(mydata.table);
const fieldsvalue = mydata.fieldsvalue;
tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
// tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
// If I change my record...
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && !(req.user._id.toString() === id) && !tools.ModificheConsentite(mydata.table, fieldsvalue)) {
@@ -273,7 +346,20 @@ router.patch('/chval', authenticate, (req, res) => {
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
}
mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then(async (rec) => {
const camporequisiti = UserCost.FIELDS_REQUISITI.includes(Object.keys(fieldsvalue)[0]);
let allData = {};
if (mydata.table === 'users') {
if (camporequisiti) {
allData = {};
allData.myuser = await User.getUserById(idapp, id);
allData.precDataUser = await getInfoUser(idapp, allData.myuser.username);
allData.useraportador = await User.getUserByAportador(idapp, allData.myuser.aportador_solidario);
allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
}
}
await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then(async (rec) => {
// tools.mylogshow(' REC TO MODIFY: ', rec);
if (!rec) {
return res.status(404).send();
@@ -285,6 +371,12 @@ router.patch('/chval', authenticate, (req, res) => {
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
}
if (mydata.table === 'users') {
if (camporequisiti) {
await checkIfSbloccatiRequisiti(idapp, allData, id);
}
}
if (tools.ModificheConsentite(mydata.table, fieldsvalue)) {
let msg = '';
if (mydata.table === 'users') {
@@ -294,7 +386,13 @@ router.patch('/chval', authenticate, (req, res) => {
msg = `Variato l'invitante di ` + rec.name + ' ' + rec.surname + '\nmodificato da ' + req.user.name + ' ' + req.user.surname + ' \n' +
'Prima: ' + nomecognomeas + ' (' + rec.aportador_solidario + ')\n' +
'Dopo: ' + nomecognomenuovo + ' (' + fieldsvalue.aportador_solidario + ') ]';
// Metti l'iniziale
if (!await User.AportadorOrig(id)) {
await mytable.findByIdAndUpdate(id, { $set: { aportador_iniziale: fieldsvalue.aportador_solidario } }, { new: false });
}
}
}
if (msg !== '')
@@ -351,7 +449,9 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
const mytable = getTableByTableName(tablename);
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (tablename !== 'extralist')) {
const fields = { 'ALL': 1 };
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (tablename !== 'extralist') && !tools.ModificheConsentite(tablename, fields, id, req.user)) {
// If without permissions, exit
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
}
@@ -366,7 +466,7 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
tools.mylog('DELETED ', rec._id);
// Do extra things after deleted
return actions.doOtherThingsAfterDeleted(tablename, rec).then((ris) => {
return actions.doOtherThingsAfterDeleted(tablename, rec).then(async (ris) => {
if (ris) {
if (notifBot) {
@@ -378,7 +478,7 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
addtext = 'Eliminato il Record "' + nomerecord + '" dalla tabella ' + tablename + '\n' +
'Eseguito da ' + req.user.name + ' ' + req.user.surname + ' \n';
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
await telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
}
tools.mylog('DELETED Others things ...');
@@ -549,7 +649,8 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, (req, res) => {
// If User is Admin, then send user Lists
if (User.isAdmin(req.user.perm)) {
// Send UsersList
usersList = User.getUsersList(req.user.idapp)
// usersList = User.getUsersList(req.user.idapp)
usersList = null;
}
}