Doppia modalità di Registrazione con lista extra utenti
This commit is contained in:
@@ -6,7 +6,7 @@ module.exports = {
|
||||
try {
|
||||
if (tablename === 'users') {
|
||||
// Delete also all the subscribers record of this User
|
||||
return Subscription.remove({ userId: rec._id })
|
||||
return Subscription.deleteOne({ userId: rec._id })
|
||||
}
|
||||
} catch (e) {
|
||||
return false
|
||||
|
||||
@@ -22,6 +22,7 @@ if (!fs.existsSync(folder)) {
|
||||
const _ = require('lodash');
|
||||
|
||||
const { User } = require('../models/user');
|
||||
const { ExtraList } = require('../models/extralist');
|
||||
const { Booking } = require('../models/booking');
|
||||
const { Operator } = require('../models/operator');
|
||||
const { Where } = require('../models/where');
|
||||
@@ -150,6 +151,8 @@ function getTableByTableName(tablename) {
|
||||
mytable = '';
|
||||
if (tablename === 'users')
|
||||
mytable = User;
|
||||
else if (tablename === 'extralist')
|
||||
mytable = ExtraList;
|
||||
else if (tablename === 'bookings')
|
||||
mytable = Booking;
|
||||
else if (tablename === 'operators')
|
||||
@@ -269,6 +272,35 @@ router.patch('/chval', authenticate, (req, res) => {
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/copyfromapptoapp/:idapporig/:idappdest', async (req, res) => {
|
||||
const idapporig = req.params.idapporig;
|
||||
const idappdest = req.params.idappdest;
|
||||
if (!idapporig || !idappdest)
|
||||
res.status(400).send();
|
||||
|
||||
const mytablesstr = ['settings', 'users', 'templemail', 'contribtype'];
|
||||
|
||||
try {
|
||||
let numrectot = 0;
|
||||
for (const table of mytablesstr) {
|
||||
const mytable = getTableByTableName(table);
|
||||
|
||||
tools.mylogshow('copyfromapptoapp: ', table, mytable);
|
||||
|
||||
await mytable.DuplicateAllRecords(idapporig, idappdest).then((numrec) => {
|
||||
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
||||
numrectot += numrec
|
||||
});
|
||||
}
|
||||
|
||||
res.send({ code: server_constants.RIS_CODE_OK, msg: '', numrectot });
|
||||
|
||||
} catch (e) {
|
||||
tools.mylogserr('Error copyfromapptoapp: ', e);
|
||||
res.status(400).send();
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/delrec/:table/:id', authenticate, (req, res) => {
|
||||
const id = req.params.id;
|
||||
const tablename = req.params.table;
|
||||
|
||||
@@ -20,7 +20,7 @@ const { ObjectID } = require('mongodb');
|
||||
router.post('/', authenticate, (req, res) => {
|
||||
|
||||
var body = _.pick(req.body, tools.allfieldProjectWithId());
|
||||
tools.mylogshow('PROJ INPUT', body);
|
||||
// tools.mylogshow('PROJ INPUT', body);
|
||||
var project = new Project(body);
|
||||
|
||||
// project.expiring_at = new Date(project.expiring_at);
|
||||
@@ -45,7 +45,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
let idobj = writeresult._id;
|
||||
Project.findById(idobj)
|
||||
.then(record => {
|
||||
tools.mylog('REC SAVED :', record.descr);
|
||||
// tools.mylog('REC SAVED :', record.descr);
|
||||
|
||||
tools.sendNotificationToUser(project.userId, 'Project: ' + record.descr, record.descr, '/project/' + project.category, 'project')
|
||||
.then(ris => {
|
||||
|
||||
70
src/server/router/test_router.js
Normal file
70
src/server/router/test_router.js
Normal file
@@ -0,0 +1,70 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const tools = require('../tools/general');
|
||||
|
||||
var server_constants = require('../tools/server_constants');
|
||||
|
||||
var { Project } = require('../models/project');
|
||||
|
||||
var { authenticate } = require('../middleware/authenticate');
|
||||
|
||||
var mongoose = require('mongoose');
|
||||
const Subscription = mongoose.model('subscribers');
|
||||
|
||||
var { Todo } = require('../models/todo');
|
||||
const { Settings } = require('../models/settings');
|
||||
|
||||
const _ = require('lodash');
|
||||
|
||||
const { ObjectID } = require('mongodb');
|
||||
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
|
||||
const todo = {
|
||||
// category: "personal",
|
||||
statustodo: 0,
|
||||
completed_at: new Date(),
|
||||
created_at: new Date(),
|
||||
descr: "Primo Task Esempio",
|
||||
enableExpiring: false,
|
||||
expiring_at: new Date(),
|
||||
id_prev: null,
|
||||
modified: false,
|
||||
modify_at: new Date(),
|
||||
pos: 1,
|
||||
priority: 1,
|
||||
progress: 0,
|
||||
userId: '5e135ede41a7ee26519464f7'
|
||||
};
|
||||
|
||||
const myrec = new Todo(todo);
|
||||
myrec._id = new ObjectID();
|
||||
|
||||
const TodoOne = myrec.save().then((ris, err) => {
|
||||
console.log('Err:', err);
|
||||
console.log('Ris:', ris);
|
||||
|
||||
});
|
||||
|
||||
|
||||
const newrec = new Settings({ key: 'chiave1' });
|
||||
newrec._id = new ObjectID();
|
||||
newrec.idapp = '8';
|
||||
|
||||
newrec.save((err, rec) => {
|
||||
if (err)
|
||||
console.log('ERROR: ', err);
|
||||
if (rec) {
|
||||
console.log('SAVED? ', rec);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
res.send({});
|
||||
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
@@ -22,12 +22,12 @@ const { ObjectID } = require('mongodb');
|
||||
router.post('/', authenticate, (req, res) => {
|
||||
|
||||
var body = _.pick(req.body, tools.allfieldTodoWithId());
|
||||
tools.mylogshow('INPUT', body);
|
||||
// tools.mylogshow('INPUT', body);
|
||||
var todo = new Todo(body);
|
||||
|
||||
// todo.expiring_at = new Date(todo.expiring_at);
|
||||
|
||||
tools.mylog('ID :', todo._id, todo.descr, todo.userId, req.user._id);
|
||||
// tools.mylog('ID :', todo._id, todo.descr, todo.userId, req.user._id);
|
||||
|
||||
if (!('descr' in req.body)) {
|
||||
return res.status(400).send({ code: server_constants.RIS_CODE_LOGIN_ERR_GENERIC });
|
||||
@@ -39,7 +39,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
return res.status(404).send({ code: server_constants.RIS_CODE_TODO_CREATING_NOTMYUSER });
|
||||
}
|
||||
|
||||
tools.mylog('TODO POST :', todo.descr, todo._id);
|
||||
// tools.mylog('TODO POST :', todo.descr, todo._id);
|
||||
|
||||
todo.modified = false;
|
||||
if (!todo.descr) {
|
||||
@@ -50,7 +50,7 @@ router.post('/', authenticate, (req, res) => {
|
||||
let idobj = writeresult._id;
|
||||
Todo.findById(idobj)
|
||||
.then(record => {
|
||||
tools.mylog('REC SAVED :', record.descr);
|
||||
// tools.mylog('REC SAVED :', record.descr);
|
||||
|
||||
tools.sendNotificationToUser(todo.userId, 'Todo: ' + record.descr, record.descr, '/todo/' + todo.category, 'todo')
|
||||
.then(ris => {
|
||||
@@ -72,7 +72,7 @@ router.patch('/:id', authenticate, (req, res) => {
|
||||
var id = req.params.id;
|
||||
var body = _.pick(req.body, tools.allfieldTodo());
|
||||
|
||||
tools.mylogshow('PATCH TODO: ', id);
|
||||
// tools.mylogshow('PATCH TODO: ', id);
|
||||
|
||||
if (!ObjectID.isValid(id)) {
|
||||
tools.mylog('ERROR: id not VALID', id);
|
||||
@@ -90,7 +90,7 @@ router.patch('/:id', authenticate, (req, res) => {
|
||||
let level = 0;
|
||||
return Todo.calculateTreeTodo(todo.phase, todo.userId, todo.category, true, todo.category, false)
|
||||
.then(objdatacalc => {
|
||||
tools.mylogshow(' TODO TO MODIFY: ', todo.descr, todo.expiring_at);
|
||||
// tools.mylogshow(' TODO TO MODIFY: ', todo.descr, todo.expiring_at);
|
||||
|
||||
if (todo.userId !== String(req.user._id)) {
|
||||
// I'm trying to write something not mine!
|
||||
@@ -99,7 +99,7 @@ router.patch('/:id', authenticate, (req, res) => {
|
||||
|
||||
todo.modified = false;
|
||||
|
||||
tools.mylog('PATCH ', todo.descr, todo._id);
|
||||
// tools.mylog('PATCH ', todo.descr, todo._id);
|
||||
|
||||
res.send({ todo, objdatacalc });
|
||||
});
|
||||
@@ -115,7 +115,7 @@ router.get('/:userId', authenticate, (req, res) => {
|
||||
var userId = req.params.userId;
|
||||
// var category = req.params.category;
|
||||
|
||||
tools.mylog('GET TODOS : ', req.params);
|
||||
// tools.mylog('GET TODOS : ', req.params);
|
||||
|
||||
if (!ObjectID.isValid(userId)) {
|
||||
return res.status(404).send();
|
||||
@@ -129,8 +129,8 @@ router.get('/:userId', authenticate, (req, res) => {
|
||||
// Extract all the todos of the userId only
|
||||
Todo.getAllTodo(userId).then((objtodos) => {
|
||||
if (!!objtodos.arrtodos) {
|
||||
tools.mylog('todos', objtodos.arrtodos.length);
|
||||
tools.mylog('categories', objtodos.arrcategories.length);
|
||||
// tools.mylog('todos', objtodos.arrtodos.length);
|
||||
// tools.mylog('categories', objtodos.arrcategories.length);
|
||||
}
|
||||
|
||||
res.send({ todos: objtodos.arrtodos, categories: objtodos.arrcategories });
|
||||
@@ -141,16 +141,46 @@ router.get('/:userId', authenticate, (req, res) => {
|
||||
|
||||
});
|
||||
|
||||
router.get('/test', (req, res) => {
|
||||
|
||||
const todo = {
|
||||
_id: new ObjectID(),
|
||||
// category: "personal",
|
||||
statustodo: 0,
|
||||
completed_at: new Date(),
|
||||
created_at: new Date(),
|
||||
descr: "Primo Task Esempio",
|
||||
enableExpiring: false,
|
||||
expiring_at: new Date(),
|
||||
id_prev: null,
|
||||
modified: false,
|
||||
modify_at: new Date(),
|
||||
pos: 1,
|
||||
priority: 1,
|
||||
progress: 0,
|
||||
userId: users[0]._id
|
||||
};
|
||||
|
||||
const TodoOne = new Todo(todo).save().then((err, ris) => {
|
||||
console.log('Err:', err);
|
||||
console.log('Ris:', ris);
|
||||
|
||||
});
|
||||
|
||||
res.send({ });
|
||||
|
||||
});
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
// var category = req.params.category;
|
||||
|
||||
tools.mylog('GET ALL TODOS ');
|
||||
// tools.mylog('GET ALL TODOS ');
|
||||
|
||||
// Extract all the todos of the userId only
|
||||
Todo.getAllTodo('').then((objtodos) => {
|
||||
if (!!objtodos.arrtodos) {
|
||||
tools.mylog('todos', objtodos.arrtodos.length);
|
||||
tools.mylog('categories', objtodos.arrcategories.length);
|
||||
// tools.mylog('todos', objtodos.arrtodos.length);
|
||||
// tools.mylog('categories', objtodos.arrcategories.length);
|
||||
}
|
||||
|
||||
res.send({ todos: objtodos.arrtodos, categories: objtodos.arrcategories });
|
||||
@@ -173,7 +203,7 @@ router.delete('/:id', authenticate, (req, res) => {
|
||||
return res.status(404).send();
|
||||
}
|
||||
|
||||
tools.mylog('DELETED ', todo.descr, todo._id);
|
||||
// tools.mylog('DELETED ', todo.descr, todo._id);
|
||||
|
||||
res.send({ todo });
|
||||
}).catch((e) => {
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
var { User } = require('../models/user');
|
||||
const { User } = require('../models/user');
|
||||
const { ExtraList } = require('../models/extralist');
|
||||
|
||||
var sendemail = require('../sendemail');
|
||||
const sendemail = require('../sendemail');
|
||||
|
||||
const tools = require('../tools/general');
|
||||
const shared_consts = require('../tools/shared_nodejs');
|
||||
|
||||
var server_constants = require('../tools/server_constants');
|
||||
const server_constants = require('../tools/server_constants');
|
||||
|
||||
const _ = require('lodash');
|
||||
|
||||
var reg = require('../reg/registration');
|
||||
const reg = require('../reg/registration');
|
||||
|
||||
var { authenticate } = require('../middleware/authenticate');
|
||||
const { authenticate } = require('../middleware/authenticate');
|
||||
|
||||
var mongoose = require('mongoose');
|
||||
const mongoose = require('mongoose');
|
||||
const Subscription = mongoose.model('subscribers');
|
||||
|
||||
function existSubScribe(userId, access, browser) {
|
||||
@@ -30,10 +31,20 @@ function existSubScribe(userId, access, browser) {
|
||||
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
// POST /users
|
||||
router.post('/', async (req, res) => {
|
||||
tools.mylog("POST /users");
|
||||
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile', 'aportador_solidario']);
|
||||
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile', 'aportador_solidario', 'already_registered']);
|
||||
const user = new User(body);
|
||||
|
||||
// tools.mylog("LANG PASSATO = " + user.lang, "IDAPP", user.idapp);
|
||||
@@ -73,33 +84,71 @@ router.post('/', async (req, res) => {
|
||||
if (exit === 1)
|
||||
return;
|
||||
|
||||
user.save().then(() => {
|
||||
User.findByUsername(user.idapp, user.username)
|
||||
.then((usertrovato) => {
|
||||
let recextra = null;
|
||||
|
||||
// tools.mylog("TROVATO USERNAME ? ", user.username, usertrovato);
|
||||
if (usertrovato !== null) {
|
||||
return user.generateAuthToken(req);
|
||||
} else {
|
||||
res.status(400).send();
|
||||
return 0;
|
||||
}
|
||||
}).then((token) => {
|
||||
// tools.mylog("passo il TOKEN: ", token);
|
||||
res.header('x-auth', token).send(user);
|
||||
if (user.already_registered) {
|
||||
// Check in the extraList if is present!
|
||||
recextra = await ExtraList.findByCellAndNameSurname(user.idapp, getMobileComplete(user), user.name, user.surname);
|
||||
if (!recextra) {
|
||||
res.status(400).send({ code: server_constants.RIS_CODE_USER_EXTRALIST_NOTFOUND, msg: '' });
|
||||
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;
|
||||
|
||||
// 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()) {
|
||||
return sendemail.sendEmail_Registration(user.lang, user.email, user, user.idapp, user.linkreg);
|
||||
}
|
||||
user.aportador_solidario_ind_order = recextra.aportador_solidario_ind_order;
|
||||
|
||||
});
|
||||
}).catch((e) => {
|
||||
res.status(400).send(e);
|
||||
})
|
||||
const useraportador = await ExtraList.findByIndOrder(user.idapp, user.aportador_solidario_ind_order);
|
||||
if (useraportador)
|
||||
user.aportador_solidario = useraportador.username;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return await user.save()
|
||||
.then(async () => {
|
||||
return await User.findByUsername(user.idapp, user.username)
|
||||
.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();
|
||||
|
||||
await User.fixUsername(user.idapp, user.ind_order, user.username);
|
||||
}
|
||||
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);
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:idapp/:username', (req, res) => {
|
||||
@@ -158,7 +207,7 @@ router.post('/login', (req, res) => {
|
||||
|
||||
User.findByCredentials(user.idapp, user.username, user.password)
|
||||
.then((user) => {
|
||||
tools.mylog("CREDENZIALI ! ");
|
||||
// tools.mylog("CREDENZIALI ! ");
|
||||
if (!user) {
|
||||
tools.mylogshow("NOT FOUND !");
|
||||
res.status(404).send({ code: server_constants.RIS_CODE_LOGIN_ERR });
|
||||
@@ -208,7 +257,7 @@ router.post('/login', (req, res) => {
|
||||
});
|
||||
// tools.mylog("TROVATOOO!");
|
||||
|
||||
tools.mylog('FINE LOGIN')
|
||||
// tools.mylog('FINE LOGIN')
|
||||
});
|
||||
}
|
||||
})
|
||||
@@ -220,7 +269,7 @@ router.post('/login', (req, res) => {
|
||||
});
|
||||
|
||||
router.delete('/me/token', authenticate, (req, res) => {
|
||||
tools.mylog("TOKENREM = " + req.token);
|
||||
// tools.mylog("TOKENREM = " + req.token);
|
||||
req.user.removeToken(req.token).then(() => {
|
||||
res.status(200).send();
|
||||
}, () => {
|
||||
@@ -239,5 +288,17 @@ router.post('/setperm', authenticate, (req, res) => {
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/import_extralist', async (req, res) => {
|
||||
|
||||
const strdata = req.body.strdata;
|
||||
idapp = req.body.idapp;
|
||||
locale = req.body.locale;
|
||||
|
||||
const ris = await ExtraList.ImportData(locale, idapp, strdata);
|
||||
console.log('ris', ris);
|
||||
|
||||
res.send(ris);
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user