2019-02-05 03:40:22 +01:00
const express = require ( 'express' ) ;
const router = express . Router ( ) ;
2020-01-13 23:52:51 +01:00
const { User } = require ( '../models/user' ) ;
2020-03-10 21:44:14 +01:00
const { Nave } = require ( '../models/nave' ) ;
2020-03-25 18:26:51 +01:00
const { NavePersistente } = require ( '../models/navepersistente' ) ;
2020-03-10 21:44:14 +01:00
const { ListaIngresso } = require ( '../models/listaingresso' ) ;
2020-05-10 21:07:51 +02:00
// const { ExtraList } = require('../models/extralist');
2020-03-10 21:44:14 +01:00
const { ObjectID } = require ( 'mongodb' ) ;
2019-02-05 03:40:22 +01:00
2020-01-13 23:52:51 +01:00
const sendemail = require ( '../sendemail' ) ;
2019-02-06 18:48:32 +01:00
2020-03-10 21:44:14 +01:00
const { Settings } = require ( '../models/settings' ) ;
2019-02-07 00:52:48 +01:00
const tools = require ( '../tools/general' ) ;
2019-10-13 20:44:05 +02:00
const shared _consts = require ( '../tools/shared_nodejs' ) ;
2019-02-07 00:52:48 +01:00
2020-01-13 23:52:51 +01:00
const server _constants = require ( '../tools/server_constants' ) ;
2019-02-06 18:48:32 +01:00
2020-01-20 01:48:25 +01:00
const telegrambot = require ( '../telegram/telegrambot' ) ;
2019-02-05 03:40:22 +01:00
const _ = require ( 'lodash' ) ;
2020-01-13 23:52:51 +01:00
const reg = require ( '../reg/registration' ) ;
2019-02-06 18:48:32 +01:00
2020-01-13 23:52:51 +01:00
const { authenticate } = require ( '../middleware/authenticate' ) ;
2019-02-05 03:40:22 +01:00
2020-01-13 23:52:51 +01:00
const mongoose = require ( 'mongoose' ) ;
2019-02-12 12:06:25 +01:00
const Subscription = mongoose . model ( 'subscribers' ) ;
2019-02-14 19:01:41 +01:00
function existSubScribe ( userId , access , browser ) {
return Subscription . findOne ( { userId , access , browser } )
2019-02-12 12:06:25 +01:00
. then ( itemsub => {
return itemsub
} )
. catch ( err => {
return null
} )
}
2019-02-05 03:40:22 +01:00
2020-01-13 23:52:51 +01:00
function getMobileComplete ( user ) {
let str = user . profile . intcode _cell + user . profile . cell ;
str = str . replace ( /\s+/g , '' ) ;
// str = str.replace(/.+/g, '');
// str = str.replace(/-+/g, '');
return str
}
2019-02-05 03:40:22 +01:00
// POST /users
2019-12-29 23:30:49 +01:00
router . post ( '/' , async ( req , res ) => {
2019-02-07 00:52:48 +01:00
tools . mylog ( "POST /users" ) ;
2020-01-20 01:48:25 +01:00
const body = _ . pick ( req . body , [ 'email' , 'password' , 'username' , 'name' , 'surname' , 'idapp' , 'keyappid' , 'lang' , 'profile' , 'aportador_solidario' ] ) ;
2020-02-19 16:09:16 +01:00
body . email = body . email . toLowerCase ( ) ;
2020-03-10 21:44:14 +01:00
const user = new User ( body ) ;
2019-02-07 00:52:48 +01:00
// tools.mylog("LANG PASSATO = " + user.lang, "IDAPP", user.idapp);
2019-02-05 03:40:22 +01:00
2019-10-13 20:44:05 +02:00
user . linkreg = reg . getlinkregByEmail ( body . idapp , body . email , body . username ) ;
2019-02-05 03:40:22 +01:00
user . verified _email = false ;
2020-01-27 15:07:53 +01:00
user . ipaddr = tools . getiPAddressUser ( req ) ;
2019-10-27 00:37:10 +02:00
user . lasttimeonline = new Date ( ) ;
2020-01-20 01:48:25 +01:00
user . date _reg = new Date ( ) ;
2020-03-10 21:44:14 +01:00
user . aportador _iniziale = user . aportador _solidario ;
if ( user . idapp === tools . AYNI ) {
user . profile . paymenttypes = [ 'paypal' ] ;
}
2019-12-27 12:41:39 +01:00
// user.perm = 3;
2019-02-07 00:52:48 +01:00
if ( tools . testing ( ) ) {
2019-02-06 18:48:32 +01:00
user . verified _email = true ;
}
2019-02-05 03:40:22 +01:00
2020-01-30 01:19:25 +01:00
// if (user.profile.intcode_cell) {
// if (user.profile.cell.substring(0, user.profile.intcode_cell.length) === user.profile.intcode_cell) {
// user.profile.cell = user.profile.cell.substring(user.profile.intcode_cell.length)
// }
// }
2019-12-29 23:30:49 +01:00
let exit ;
// Check if already esist email or username
exit = await User . findByUsername ( user . idapp , user . username ) . then ( ( useralreadyexist ) => {
if ( useralreadyexist ) {
res . status ( 400 ) . send ( { code : server _constants . RIS _CODE _USERNAME _ALREADY _EXIST , msg : '' } ) ;
return 1 ;
}
} ) ;
if ( exit === 1 )
return ;
exit = await User . findByEmail ( user . idapp , user . email )
. then ( ( useralreadyexist ) => {
if ( useralreadyexist ) {
res . status ( 400 ) . send ( { code : server _constants . RIS _CODE _EMAIL _ALREADY _EXIST , msg : '' } ) ;
return 1 ;
}
} ) ;
if ( exit === 1 )
return ;
2020-01-30 01:19:25 +01:00
let recuser = null ;
recuser = await User . findByCellAndNameSurname ( user . idapp , user . profile . cell , user . name , user . surname ) ;
if ( recuser ) {
2020-04-07 14:34:29 +02:00
console . log ( 'UTENTE GIA ESISTENTE:\n' ) ;
console . log ( user ) ;
2020-01-30 01:19:25 +01:00
// User already registered!
res . status ( 400 ) . send ( { code : server _constants . RIS _CODE _USER _ALREADY _EXIST , msg : '' } ) ;
return 1 ;
}
2020-01-13 23:52:51 +01:00
let recextra = null ;
2019-02-06 18:48:32 +01:00
2020-02-19 16:09:16 +01:00
// recextra = await ExtraList.findByCellAndNameSurname(user.idapp, user.profile.cell, user.name, user.surname);
// let nomeaportador_corretto = "";
// if (recextra) {
// nomeaportador_corretto = recextra.aportador_solidario_name_surname;
// if (nomeaportador_corretto === '')
// nomeaportador_corretto = recextra.aportador_solidario_originale_name_surname;
// }
2020-01-30 01:19:25 +01:00
2020-02-19 16:09:16 +01:00
const numero = user . name . slice ( - 1 ) ;
2020-05-04 19:34:41 +02:00
if ( ( numero === '2' ) || ( numero === '3' ) || ( numero === '4' ) || ( numero === '5' ) || ( numero === '6' ) ) {
2020-02-19 16:09:16 +01:00
recorig = await User . findByCellAndNameSurname ( user . idapp , user . profile . cell , user . name . slice ( 0 , - 1 ) , user . surname ) ;
if ( ! ! recorig ) {
user . profile . teleg _id = recorig . profile . teleg _id ;
user . profile . saw _zoom _presentation = recorig . profile . saw _zoom _presentation ;
user . profile . saw _and _accepted = recorig . profile . saw _and _accepted ;
2020-05-04 19:34:41 +02:00
user . profile . my _dream = recorig . profile . my _dream ;
2020-02-19 16:09:16 +01:00
user . profile . email _paypal = recorig . profile . email _paypal ;
user . profile . paymenttypes = recorig . profile . paymenttypes ;
let msgseconda = '!!! REGISTRATA ' ;
if ( numero === '2' )
msgseconda += 'SECONDA' ;
else if ( numero === '3' )
msgseconda += 'TERZA' ;
else if ( numero === '4' )
msgseconda += 'QUARTA' ;
msgseconda += ' UTENZA di ' + recorig . name + ' ' + recorig . surname + ' (' + recorig . username + ') : ' + user . name + ' ' + user . surname + ' (' + user . username + ') ' ;
2020-03-10 21:44:14 +01:00
await telegrambot . sendMsgTelegramToTheManagers ( user . idapp , msgseconda ) ;
2020-02-19 16:09:16 +01:00
}
}
2020-01-20 01:48:25 +01:00
namesurname _aportador _reg = await User . getNameSurnameByUsername ( user . idapp , user . aportador _solidario ) ;
2020-01-20 02:18:11 +01:00
if ( recextra && namesurname _aportador _reg !== '' && namesurname _aportador _reg !== nomeaportador _corretto ) {
2020-01-20 01:48:25 +01:00
// Si sta tentando di registrare una persona sotto che non corrisponde!
let msg = 'L\'utente ' + user . name + ' ' + user . surname + ' si sta registrando con il link di ' + user . aportador _solidario + ' (' + namesurname _aportador _reg + ') ' +
'invece è assegnato a ' + nomeaportador _corretto ;
2020-03-10 21:44:14 +01:00
await telegrambot . sendMsgTelegramToTheManagers ( user . idapp , msg ) ;
2020-01-20 01:48:25 +01:00
res . status ( 400 ) . send ( { code : server _constants . RIS _CODE _USER _NOT _THIS _APORTADOR , msg : '' } ) ;
return 1 ;
}
2020-04-24 10:29:25 +02:00
let already _registered = ( recextra || user . aportador _solidario === tools . APORTADOR _NONE ) && ( user . idapp === tools . AYNI ) ;
2020-01-20 01:48:25 +01:00
// Check if is an other people aportador_solidario
if ( already _registered ) {
2020-01-13 23:52:51 +01:00
// Check in the extraList if is present!
if ( ! recextra ) {
2020-01-30 01:19:25 +01:00
const msg = 'Utente non trovato: ' + user . name + ' ' + user . surname + ' ' + user . profile . nationality + ' ' + user . profile . cell + ' email: ' + user . email + ' username: ' + user . username ;
console . log ( 'Utente non trovato; ' , msg ) ;
2020-03-10 21:44:14 +01:00
await telegrambot . sendMsgTelegramToTheManagers ( user . idapp , msg ) ;
res . status ( 400 ) . send ( {
code : server _constants . RIS _CODE _USER _EXTRALIST _NOTFOUND ,
msg : 'Controlla se il numero ' + user . profile . cell + ' è corretto.'
} ) ;
2020-01-13 23:52:51 +01:00
return 1 ;
} else {
user . ind _order = recextra . ind _order ;
user . date _reg = recextra . date _reg ;
if ( recextra . aportador _solidario _name _surname )
user . aportador _solidario _nome _completo = recextra . aportador _solidario _name _surname ;
else
user . aportador _solidario _nome _completo = recextra . aportador _solidario _originale _name _surname ;
user . aportador _solidario _ind _order = recextra . aportador _solidario _ind _order ;
2020-01-20 01:48:25 +01:00
user . note = recextra . note ;
if ( recextra . is _staff ) {
user . perm = shared _consts . Permissions . Manager ;
}
if ( recextra . username === 'paoloar77' ) {
user . perm = shared _consts . Permissions . Manager + shared _consts . Permissions . Admin ;
}
2020-05-10 21:07:51 +02:00
// const useraportador = await ExtraList.findByIndOrder(user.idapp, user.aportador_solidario_ind_order);
// if (useraportador)
// user.aportador_solidario = useraportador.username;
2020-01-13 23:52:51 +01:00
}
}
return await user . save ( )
. then ( async ( ) => {
2020-02-19 16:09:16 +01:00
return await User . findByUsername ( user . idapp , user . username , false )
2020-01-13 23:52:51 +01:00
. then ( ( usertrovato ) => {
// tools.mylog("TROVATO USERNAME ? ", user.username, usertrovato);
if ( usertrovato !== null ) {
return user . generateAuthToken ( req ) ;
} else {
res . status ( 400 ) . send ( ) ;
return 0 ;
}
} )
. then ( async ( token ) => {
// tools.mylog("passo il TOKEN: ", token);
if ( recextra ) {
recextra . registered = true ;
recextra . username = user . username ;
await recextra . save ( ) ;
2020-05-11 22:43:14 +02:00
// await User.fixUsername(user.idapp, user.ind_order, user.username);
2020-01-13 23:52:51 +01:00
}
return token ;
} )
. then ( async ( token ) => {
// tools.mylog("LINKREG = " + user.linkreg);
// Invia un'email all'utente
// tools.mylog('process.env.TESTING_ON', process.env.TESTING_ON);
console . log ( 'res.locale' , res . locale ) ;
if ( ! tools . testing ( ) ) {
await sendemail . sendEmail _Registration ( user . lang , user . email , user , user . idapp , user . linkreg ) ;
}
res . header ( 'x-auth' , token ) . send ( user ) ;
return true ;
} ) ;
} ) . catch ( ( e ) => {
res . status ( 400 ) . send ( e ) ;
} )
2019-02-05 03:40:22 +01:00
} ) ;
2020-03-10 21:44:14 +01:00
router . get ( '/:idapp/:username' , async ( req , res ) => {
2019-02-05 03:40:22 +01:00
var username = req . params . username ;
2019-10-13 20:44:05 +02:00
const idapp = req . params . idapp ;
2019-02-05 03:40:22 +01:00
2020-05-10 21:07:51 +02:00
// if (username === 'pippo') {
// return res.status(200).send();
// }
2020-03-10 21:44:14 +01:00
await User . findByUsername ( idapp , username , false ) . then ( ( user ) => {
2019-02-05 03:40:22 +01:00
if ( ! user ) {
return res . status ( 404 ) . send ( ) ;
}
res . status ( 200 ) . send ( ) ;
} ) . catch ( ( e ) => {
res . status ( 400 ) . send ( ) ;
} ) ;
} ) ;
2019-10-13 20:44:05 +02:00
router . patch ( '/:id' , authenticate , ( req , res ) => {
const id = req . params . id ;
const body = _ . pick ( req . body . user , shared _consts . fieldsUserToChange ( ) ) ;
tools . mylogshow ( 'PATCH USER: ' , id ) ;
2020-01-03 22:02:18 +01:00
if ( ! User . isAdmin ( req . user . perm ) ) {
2019-10-13 20:44:05 +02:00
// If without permissions, exit
2019-10-14 20:31:57 +02:00
return res . status ( 404 ) . send ( { code : server _constants . RIS _CODE _ERR _UNAUTHORIZED , msg : '' } ) ;
2019-10-13 20:44:05 +02:00
}
User . findByIdAndUpdate ( id , { $set : body } ) . then ( ( user ) => {
tools . mylogshow ( ' USER TO MODIFY: ' , user ) ;
if ( ! user ) {
return res . status ( 404 ) . send ( ) ;
} else {
res . send ( { code : server _constants . RIS _CODE _OK , msg : '' } ) ;
}
} ) . catch ( ( e ) => {
tools . mylogserr ( 'Error patch USER: ' , e ) ;
res . status ( 400 ) . send ( ) ;
} )
} ) ;
2019-02-05 03:40:22 +01:00
router . post ( '/login' , ( req , res ) => {
var body = _ . pick ( req . body , [ 'username' , 'password' , 'idapp' , 'keyappid' , 'lang' ] ) ;
var user = new User ( body ) ;
2019-02-13 18:47:58 +01:00
// const subs = _.pick(req.body, ['subs']);
2019-02-05 03:40:22 +01:00
2020-01-03 01:52:49 +01:00
// tools.mylog("LOGIN: username: " + user.username + " pwd = " + user.password);
2019-02-06 18:48:32 +01:00
2020-01-03 01:52:49 +01:00
// tools.mylog("user REC:", user);
2019-02-05 03:40:22 +01:00
if ( body . keyappid !== process . env . KEY _APP _ID )
return res . status ( 400 ) . send ( ) ;
2019-02-13 18:47:58 +01:00
let resalreadysent = false ;
2019-02-05 03:40:22 +01:00
2019-10-13 20:44:05 +02:00
User . findByCredentials ( user . idapp , user . username , user . password )
2020-01-30 01:19:25 +01:00
. then ( async ( user ) => {
2020-01-13 23:52:51 +01:00
// tools.mylog("CREDENZIALI ! ");
2019-02-05 03:40:22 +01:00
if ( ! user ) {
2020-01-30 01:19:25 +01:00
await tools . snooze ( 3000 ) ;
2020-01-27 15:07:53 +01:00
const msg = "Tentativo di Login ERRATO [" + body . username + ' , ' + body . password + ']\n' + '[IP: ' + tools . getiPAddressUser ( req ) + ']' ;
2020-01-30 01:19:25 +01:00
tools . mylogshow ( msg ) ;
2020-02-02 04:06:32 +01:00
// telegrambot.sendMsgTelegramToTheManagers(body.idapp, msg);
2019-02-05 03:40:22 +01:00
res . status ( 404 ) . send ( { code : server _constants . RIS _CODE _LOGIN _ERR } ) ;
2019-02-12 12:06:25 +01:00
}
2019-02-12 19:10:58 +01:00
return user
2019-02-12 12:06:25 +01:00
} )
. then ( user => {
2019-02-13 18:47:58 +01:00
if ( user ) {
return user . generateAuthToken ( req ) . then ( ( token ) => {
var usertosend = User ( ) ;
2019-10-27 00:37:10 +02:00
shared _consts . fieldsUserToChange ( ) . forEach ( ( field ) => {
usertosend [ field ] = user [ field ]
} ) ;
// usertosend._id = user._id.toHexString();
// if (!User.isAdmin(req.user)) {
// usertosend.ipaddr = user.ipaddr;
// }
2019-02-13 18:47:58 +01:00
// tools.mylog("user.verified_email:" + user.verified_email);
2020-01-03 01:52:49 +01:00
// tools.mylog("usertosend.userId", usertosend.userId);
2019-02-13 18:47:58 +01:00
return { usertosend , token }
2019-10-14 20:31:57 +02:00
} )
. then ( ( myris ) => {
const access = 'auth' ;
const browser = req . get ( 'User-Agent' ) ;
// Check if already exist Subscribe
2019-10-25 19:08:38 +02:00
return existSubScribe ( myris . usertosend . _id , access , browser ) . then ( subscribe => {
2019-10-14 20:31:57 +02:00
return ( subscribe !== null )
} ) . then ( subsExistonDb => {
return { usertosend : myris . usertosend , token : myris . token , subsExistonDb }
} ) . catch ( err => {
return { usertosend : myris . usertosend , token : myris . token , subsExistonDb : false }
} )
} ) . then ( myris => {
2020-01-03 01:52:49 +01:00
// console.log('res', myris.token, myris.usertosend);
2019-10-14 20:31:57 +02:00
// SEND TOKEN AND CODE RESULT
res . header ( 'x-auth' , myris . token ) . send ( {
usertosend : myris . usertosend ,
code : server _constants . RIS _CODE _OK ,
subsExistonDb : myris . subsExistonDb
} ) ;
2020-02-19 16:09:16 +01:00
2019-10-14 20:31:57 +02:00
// tools.mylog("TROVATOOO!");
2020-01-13 23:52:51 +01:00
// tools.mylog('FINE LOGIN')
2019-02-13 18:47:58 +01:00
} ) ;
}
2019-02-12 12:06:25 +01:00
} )
. catch ( ( e ) => {
tools . mylog ( "ERRORE IN LOGIN: " + e ) ;
2019-02-13 18:47:58 +01:00
if ( ! resalreadysent )
res . status ( 400 ) . send ( { code : server _constants . RIS _CODE _LOGIN _ERR _GENERIC } ) ;
2019-02-12 12:06:25 +01:00
} ) ;
2019-02-05 03:40:22 +01:00
} ) ;
router . delete ( '/me/token' , authenticate , ( req , res ) => {
2020-01-13 23:52:51 +01:00
// tools.mylog("TOKENREM = " + req.token);
2019-02-05 03:40:22 +01:00
req . user . removeToken ( req . token ) . then ( ( ) => {
res . status ( 200 ) . send ( ) ;
} , ( ) => {
res . status ( 400 ) . send ( ) ;
} ) ;
} ) ;
2019-10-13 20:44:05 +02:00
router . post ( '/setperm' , authenticate , ( req , res ) => {
const body = _ . pick ( req . body , [ 'idapp' , 'username' , 'perm' ] ) ;
tools . mylog ( "SETPERM = " + req . token ) ;
User . setPermissionsById ( res . user . _id , body ) . then ( ( ) => {
res . status ( 200 ) . send ( ) ;
} , ( ) => {
res . status ( 400 ) . send ( ) ;
} ) ;
} ) ;
2020-01-13 23:52:51 +01:00
router . post ( '/import_extralist' , async ( req , res ) => {
const strdata = req . body . strdata ;
idapp = req . body . idapp ;
locale = req . body . locale ;
2020-05-10 21:07:51 +02:00
// const ris = await ExtraList.ImportData(locale, idapp, strdata);
2020-01-13 23:52:51 +01:00
console . log ( 'ris' , ris ) ;
res . send ( ris ) ;
} ) ;
2020-03-10 21:44:14 +01:00
router . post ( '/dbop' , authenticate , async ( req , res ) => {
const mydata = req . body . mydata ;
idapp = req . body . idapp ;
locale = req . body . locale ;
let ris = await User . DbOp ( idapp , mydata ) ;
2020-04-10 13:02:33 +02:00
let mystr = '' ;
2020-03-25 18:26:51 +01:00
try {
2020-03-31 20:34:24 +02:00
if ( mydata . dbop === 'creaNavi' ) {
2020-03-25 18:26:51 +01:00
const num = await Nave . generaNave ( idapp , mydata ) ;
ris = { num } ;
} else if ( mydata . dbop === 'delNavi' ) {
await Nave . setRiga ( idapp , 1 ) ;
await Nave . setCol ( idapp , 1 ) ;
const num = await Nave . remove ( { idapp } ) ;
ris = { num } ;
// } else if (mydata.dbop === 'delNaviNoStarted') {
// await Nave.setRiga(idapp, 1);
// await Nave.setCol(idapp, 1);
// const num = await Nave.remove({ idapp, date_start: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 24 * 3) } });
// ris = { num };
} else if ( mydata . dbop === 'delNaviProvvisorie' ) {
2020-03-31 20:34:24 +02:00
let num = 0 ;
const arrnavi = await Nave . find ( { idapp } ) ;
for ( const nave of arrnavi ) {
let persistente = await NavePersistente . findByRigaColByDonatore ( idapp , nave . riga , nave . col , 0 ) ;
if ( ! ! persistente ) {
if ( persistente . provvisoria ) {
let ris = await Nave . remove ( { _id : nave . _id } ) ;
if ( ! ! ris ) {
num ++ ;
}
}
}
}
2020-03-25 18:26:51 +01:00
2020-04-07 14:34:29 +02:00
// Pulisci gli added se era stato cancellato dalla nave
await Nave . pulisciNonPresenzeInNave ( idapp ) ;
2020-03-25 18:26:51 +01:00
const data = await Nave . getLastRigaCol ( idapp ) ;
await Nave . setRiga ( idapp , data . riga ) ;
await Nave . setCol ( idapp , data . col + 1 ) ;
ris = { num } ;
} else if ( mydata . dbop === 'visuListaNave' ) {
2020-04-10 13:02:33 +02:00
mystr = await Nave . showListaOrd ( idapp ) ;
2020-03-25 18:26:51 +01:00
ris = { mystr } ;
2020-05-04 19:34:41 +02:00
} else if ( mydata . dbop === 'visuStat' ) {
2020-04-10 13:02:33 +02:00
ris = await User . visuUtentiNonInNavi ( idapp ) ;
2020-03-25 18:26:51 +01:00
} else if ( mydata . dbop === 'pulisciNonPresenzeInNave' ) {
2020-04-10 13:02:33 +02:00
mystr = await Nave . pulisciNonPresenzeInNave ( idapp ) ;
2020-03-25 18:26:51 +01:00
ris = { mystr } ;
} else if ( mydata . dbop === 'checkInserimentiUtentiInNave' ) {
2020-04-10 13:02:33 +02:00
mystr = await Nave . checkIfDevoAggiungereInNave ( idapp ) ;
2020-03-25 18:26:51 +01:00
ris = { mystr } ;
} else if ( mydata . dbop === 'visuListaIngresso' ) {
2020-04-10 13:02:33 +02:00
mystr = await ListaIngresso . showListaOrd ( idapp , false ) ;
2020-03-31 20:34:24 +02:00
ris = { mystr } ;
} else if ( mydata . dbop === 'visuListaIngressoNuovi' ) {
2020-04-10 13:02:33 +02:00
mystr = await ListaIngresso . showListaOrd ( idapp , true ) ;
2020-03-25 18:26:51 +01:00
ris = { mystr } ;
2020-04-07 14:34:29 +02:00
} else if ( mydata . dbop === 'visuNaviUtentiEliminati' ) {
ris = await Nave . visuNaviUtentiEliminati ( idapp ) ;
2020-05-10 21:07:51 +02:00
} else if ( mydata . dbop === 'creaTessituraeConv' ) {
ris = await ListaIngresso . creaTessituraeConv ( idapp ) ;
ris = { mystr } ;
2020-05-13 01:32:27 +02:00
} else if ( mydata . dbop === 'eliminaListeIngressoNascoste' ) {
ris = await ListaIngresso . eliminaListeIngressoNascoste ( idapp ) ;
ris = { mystr } ;
2020-05-10 21:07:51 +02:00
} else if ( mydata . dbop === 'convNaviTessinListaIngressoRec' ) {
let num = 0 ;
const arrnavitess = await Nave . find ( { idapp , num _tess : { $gte : 3 } } ) ;
for ( const recnave of arrnavitess ) {
if ( recnave . num _tess === 3 || recnave . num _tess === 5 || recnave . num _tess === 7 ) {
const ind _order = recnave . ind _order ;
// Prima controlla se ho già 2 record dello stesso ind_order, allora non lo faccio:
const arringr = await ListaIngresso . find ( { idapp , ind _order } ) ;
let dafare = true ;
if ( arringr . length > 0 ) {
const arringrtest = await ListaIngresso . find ( { idapp , ind _order } ) . distinct ( 'num_tess' ) ;
if ( arringr . length !== arringrtest . length ) {
dafare = false ; // Ci sono 2 o piu record! pertanto probabilmente l'ho già fatto!
}
}
if ( dafare ) {
const user = await User . findByOldOrder ( idapp , ind _order ) ;
if ( ! ! user ) {
let note = recnave . num _tess ;
// Crea record ListaIngresso
const newrecingr = await ListaIngresso . addUserInListaIngresso ( idapp , user . username , user . username , user . lang , false , true , recnave . created , note , true ) ;
const fieldsvalue = {
ind _order : newrecingr . ind _order ,
num _tess : 1 ,
} ;
// Aggiorna la nave con l'Ind_order nuovo e il num_tess a 1
await Nave . findOneAndUpdate ( { _id : recnave . _id } , { $set : fieldsvalue } , { new : false } ) ;
num ++ ;
}
}
}
}
ris = { num } ;
2020-03-25 18:26:51 +01:00
} else if ( mydata . dbop === 'initListaIngresso' ) {
// const aaa = await User.updateMany({ idapp }, { $set: { 'profile.nationality': 'IT' } });
const num = await ListaIngresso . updateMany ( { idapp } , { $set : { added : false } } ) ;
ris = { num } ;
} else if ( mydata . dbop === 'ImpostaATuttiPaypal' ) {
const listautenti = await User . find ( { idapp } ) ;
let num = 0 ;
for ( let rec of listautenti ) {
if ( ! rec . _doc . profile . paymenttypes . includes ( 'paypal' ) ) {
rec . _doc . profile . paymenttypes = [ ... rec . _doc . profile . paymenttypes , 'paypal' ] ;
const user = await User . findOneAndUpdate ( { _id : rec . _id } , { $set : { 'profile.paymenttypes' : rec . _doc . profile . paymenttypes } } ) ;
// await rec.save();
num ++ ;
}
// const num = await User.f({ idapp }, { $set: { 'profile: false } });
2020-03-10 21:44:14 +01:00
}
2020-01-30 01:19:25 +01:00
2020-03-25 18:26:51 +01:00
ris = { num } ;
} else if ( mydata . dbop === 'numtessUno' ) {
const listanavi = await ListaIngresso . find ( { idapp } ) ;
let num = 0 ;
for ( let rec of listanavi ) {
if ( ! rec . _doc . num _tess ) {
rec . _doc . num _tess = 1 ;
const risu = await ListaIngresso . findOneAndUpdate ( { _id : rec . _id } , { $set : { num _tess : rec . _doc . num _tess } } , { new : false } ) ;
// await rec.save();
if ( ! ! risu )
num ++ ;
}
// const num = await User.f({ idapp }, { $set: { 'profile: false } });
}
ris = { num } ;
} else if ( mydata . dbop === 'Corregginumtess' ) {
const listanavi = await Nave . find ( { idapp } ) ;
let num = 0 ;
for ( let rec of listanavi ) {
const myarrrec = await Nave . find ( { idapp , ind _order : rec . ind _order } ) . sort ( { riga : 1 , col : 1 } ) ;
let indextess = 1 ;
for ( let ind = 0 ; ind < myarrrec . length ; ind ++ ) {
2020-04-07 14:34:29 +02:00
if ( myarrrec [ ind ] . num _tess !== indextess && myarrrec [ ind ] . num _tess === 1 ) {
2020-03-25 18:26:51 +01:00
myarrrec [ ind ] . num _tess = indextess ;
const risu = await Nave . findOneAndUpdate ( { _id : myarrrec [ ind ] . _id } , { $set : { num _tess : myarrrec [ ind ] . num _tess } } , { new : false } ) ;
num ++ ;
}
indextess ++ ;
}
2020-03-10 21:44:14 +01:00
}
2020-01-30 01:19:25 +01:00
2020-03-25 18:26:51 +01:00
ris = { num } ;
2020-03-31 20:34:24 +02:00
/ *
}
2020-03-25 18:26:51 +01:00
2020-03-31 20:34:24 +02:00
else if ( mydata . dbop === 'CreaNaviPersistenti' ) {
const listanavi = await Nave . find ( { idapp } ) . sort ( { riga : 1 , col : 1 } ) ;
2020-03-25 18:26:51 +01:00
2020-03-31 20:34:24 +02:00
let params = {
idapp
2020-03-25 18:26:51 +01:00
} ;
2020-03-31 20:34:24 +02:00
let num = 0 ;
for ( let rec of listanavi ) {
let mypos = {
idapp ,
riga : rec . riga ,
col : rec . col ,
numup : 3
} ;
tools . getRigaColByPosUp ( mypos ) ;
let persistente = await NavePersistente . findByRigaCol ( idapp , mypos . riga , mypos . col , 0 ) ;
if ( ! persistente ) {
params . date _start = rec . date _start ;
params . date _gift _chat _open = rec . date _gift _chat _open ;
params . riga = mypos . riga ;
params . col = mypos . col ;
if ( rec . riga > 3 ) {
params . riga1don = rec . riga ;
params . col1don = rec . col ;
} else {
params . riga1don = rec . riga ;
params . col1don = rec . col ;
}
if ( params . riga > 0 ) {
await NavePersistente . addRecordNavePersistenteByParams ( params ) ;
num ++ ;
}
2020-03-25 18:26:51 +01:00
}
}
2020-03-10 21:44:14 +01:00
2020-03-31 20:34:24 +02:00
ris = { num } ; * /
2020-03-25 18:26:51 +01:00
} else if ( mydata . dbop === 'CorreggiDataGiftChat' ) {
const listanavi = await NavePersistente . find ( { idapp } ) ;
let num = 0 ;
for ( let rec of listanavi ) {
const fieldsvalue = {
date _gift _chat _open : tools . AddDate ( rec . date _start , - 7 )
} ;
const risu = await NavePersistente . findOneAndUpdate ( { _id : rec . _id } , { $set : fieldsvalue } , { new : false } ) ;
if ( ! ! risu ) {
2020-03-25 09:25:31 +01:00
num ++ ;
}
}
2020-03-25 18:26:51 +01:00
ris = { num } ;
} else if ( mydata . dbop === 'creaUtentiTest' ) {
let num = 0 ;
lastrec = await User . find ( { idapp } ) . sort ( { _id : - 1 } ) . limit ( 1 ) ;
2020-05-10 21:07:51 +02:00
let last = 1 ;
if ( lastrec ) {
2020-05-11 22:43:14 +02:00
last = lastrec [ 0 ] . index ;
2020-05-10 21:07:51 +02:00
}
if ( ! last ) {
last = 1 ;
}
2020-03-25 18:26:51 +01:00
for ( let ind = 0 ; ind < 100 ; ind ++ ) {
let myuser = new User ( ) ;
myuser . _id = new ObjectID ( ) ;
2020-05-11 22:43:14 +02:00
myuser . index = last + ind + 1 ;
2020-03-25 18:26:51 +01:00
myuser . idapp = idapp ;
myuser . password = "$2a$12$DEaX1h5saTUVC43f7kubyOAlah1xHDgqQTfSIux0.RFDT9WGbyCaG" ;
myuser . lang = 'it' ;
myuser . email = "miaemail@email.it" ;
2020-05-11 22:43:14 +02:00
myuser . name = 'U' + myuser . index ;
myuser . surname = 'Ar' + myuser . index ;
2020-03-25 18:26:51 +01:00
myuser . verified _email = true ;
2020-05-11 22:43:14 +02:00
if ( myuser . index < 2 )
2020-03-25 18:26:51 +01:00
myuser . perm = "3" ;
myuser . username = "Userna_" + myuser . name ;
myuser . profile . special _req = true ;
myuser . profile . nationality = 'IT' ;
await myuser . save ( ) ;
num ++ ;
}
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
ris = { num } ;
} else if ( mydata . dbop === 'visuPlacca' ) {
2020-05-04 19:34:41 +02:00
mystr = '✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨\n' +
'ECCO LE NUOVE NAVI DEFINITIVE CHE APRONO DOMANI LA GIFT CHAT !!! DALLA ' + mydata . riga + '.' + mydata . col + ' ALLA ' + mydata . riga + '.' + ( parseInt ( mydata . col ) + 7 ) + '\n' +
'AUGURI ALLA NUOVA SOGNATRICE !!!\n' +
'✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨' ;
const visu _nave _Bot = await Settings . getValDbSettings ( idapp , 'VISU_NAVE_BOT' ) ;
for ( let ind = 0 ; ind < 8 ; ind ++ ) {
mystr += await Nave . getNavePos ( idapp , parseInt ( mydata . riga ) , parseInt ( mydata . col ) + ind , false ) ;
mystr += tools . ACAPO ;
if ( visu _nave _Bot && ind === 3 ) {
await telegrambot . sendMsgTelegramToTheAdmin ( idapp , mystr , true ) ;
mystr = '' ;
}
}
if ( visu _nave _Bot )
await telegrambot . sendMsgTelegramToTheAdmin ( idapp , mystr , true ) ;
ris = { mystr } ;
/ * c o n s t r e c = { } ;
2020-03-25 18:26:51 +01:00
const placca = await Nave . getPlaccaPerDonatore ( idapp , parseInt ( mydata . riga ) , parseInt ( mydata . col ) , false , rec ) ;
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
telegrambot . sendMsgTelegramToTheAdmin ( idapp , placca ) ;
2020-03-10 21:44:14 +01:00
2020-05-04 19:34:41 +02:00
ris = { placca } ; * /
2020-03-25 18:26:51 +01:00
} else if ( mydata . dbop === 'visuNave' ) {
2020-04-10 13:02:33 +02:00
mystr = await Nave . getNavePos ( idapp , parseInt ( mydata . riga ) , parseInt ( mydata . col ) ) ;
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
const visu _nave _Bot = await Settings . getValDbSettings ( idapp , 'VISU_NAVE_BOT' ) ;
if ( visu _nave _Bot )
telegrambot . sendMsgTelegramToTheAdmin ( idapp , mystr , true ) ;
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
ris = { mystr } ;
} else if ( mydata . dbop === 'getnavibyuser' ) {
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
let arrnavi = null ;
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
const user = await User . getUserShortDataByUsername ( idapp , mydata . username ) ;
if ( user ) {
2020-05-10 21:07:51 +02:00
arrnavi = await Nave . getArrPosizioniByUsername ( idapp , user . username ) ;
2020-03-25 18:26:51 +01:00
for ( let mynave of arrnavi ) {
mynave . _doc . rec = await Nave . getNaveByRigaCol ( idapp , mynave . riga , mynave . col ) ;
}
2020-03-10 21:44:14 +01:00
}
2020-03-25 18:26:51 +01:00
ris = { data : arrnavi } ;
2020-03-10 21:44:14 +01:00
}
2020-03-25 18:26:51 +01:00
// console.log('ris', ris);
2020-03-10 21:44:14 +01:00
2020-03-25 18:26:51 +01:00
res . send ( ris ) ;
} catch ( e ) {
2020-05-04 19:34:41 +02:00
console . log ( e . message ) ;
2020-03-25 18:26:51 +01:00
}
2020-03-10 21:44:14 +01:00
}
) ;
2020-01-30 01:19:25 +01:00
2019-10-14 20:31:57 +02:00
2019-02-05 03:40:22 +01:00
module . exports = router ;