versione 1.2.14 :
- aggiornati i file di configurazione, ENV e script non funzionanti., package. - corretto custom-service-worker.js con CORS - ottimizzato il server, la chiamata Load iniziale (senza promise, con async/await).
This commit is contained in:
@@ -1807,320 +1807,217 @@ router.get('/loadsite/:userId/:idapp/:vers', authenticate_noerror,
|
||||
|
||||
});
|
||||
|
||||
function load(req, res, version) {
|
||||
|
||||
let userId = '0';
|
||||
async function load(req, res, version = '0') {
|
||||
try {
|
||||
userId = req.user ? req.user._id.toString() : req.params.userId;
|
||||
} catch (e) {
|
||||
console.error('Err userId LOAD', e);
|
||||
userId = '0';
|
||||
}
|
||||
const idapp = req.params.idapp;
|
||||
console.log(' ... 1) richiesta LOAD');
|
||||
|
||||
let status = 200
|
||||
if (req.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
status = server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED
|
||||
}
|
||||
// Estrazione e validazione degli input
|
||||
const userId = req.user ? req.user._id.toString() : req.params.userId || '0';
|
||||
const idapp = req.params.idapp;
|
||||
const status = req.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED
|
||||
? server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED
|
||||
: 200;
|
||||
|
||||
// Determina se l'utente ha determinati permessi
|
||||
const gestoredelSito = req.user &&
|
||||
(User.isAdmin(req.user.perm) || User.isManager(req.user.perm) || User.isEditor(req.user.perm))
|
||||
? '1'
|
||||
: '0';
|
||||
|
||||
if (!version) {
|
||||
version = '0';
|
||||
}
|
||||
const socioresidente = req.user && req.user.profile ? req.user.profile.socioresidente : false;
|
||||
|
||||
let gestoredelSito = '0';
|
||||
if (!!req.user) {
|
||||
gestoredelSito = (User.isAdmin(req.user.perm) ||
|
||||
User.isManager(req.user.perm) ||
|
||||
User.isEditor(req.user.perm)) ? '1' : '0';
|
||||
}
|
||||
// Costruzione dell'oggetto delle promesse
|
||||
const promises = {
|
||||
bookedevent: userId !== '0'
|
||||
? Booking.findAllByUserIdAndIdApp(userId, idapp, gestoredelSito)
|
||||
: Promise.resolve([]),
|
||||
eventlist: MyEvent.findAllIdApp(socioresidente, idapp),
|
||||
operators: Operator.findAllIdApp(idapp),
|
||||
wheres: Where.findAllIdApp(idapp),
|
||||
contribtype: Contribtype.findAllIdApp(idapp),
|
||||
settings: Settings.findAllIdApp(idapp, false, false),
|
||||
permissions: Permission.findAllIdApp(),
|
||||
disciplines: Discipline.findAllIdApp(idapp),
|
||||
newstosent: gestoredelSito
|
||||
? Newstosent.findAllIdApp(idapp)
|
||||
: Promise.resolve([]),
|
||||
mailinglist: Promise.resolve([]),
|
||||
mypage: version > 91
|
||||
? MyPage.findOnlyStruttRec(idapp)
|
||||
: MyPage.findAllIdApp(idapp),
|
||||
gallery: gestoredelSito
|
||||
? Gallery.findAllIdApp(idapp)
|
||||
: Promise.resolve([]),
|
||||
paymenttype: PaymentType.findAllIdApp(idapp),
|
||||
calcstat: req.user
|
||||
? User.calculateStat(idapp, req.user.username)
|
||||
: Promise.resolve(null),
|
||||
calzoom: CalZoom.findAllIdApp(idapp),
|
||||
producers: Producer.findAllIdApp(idapp),
|
||||
cart: req.user
|
||||
? Cart.getCartByUserId(req.user.id, idapp)
|
||||
: Promise.resolve(null),
|
||||
storehouses: Storehouse.findAllIdApp(idapp),
|
||||
departments: Department.findAllIdApp(idapp),
|
||||
orderscart: req.user
|
||||
? (User.isManager(req.user.perm)
|
||||
? OrdersCart.getOrdersCartByUserId('ALL', idapp, 0, false)
|
||||
: OrdersCart.getOrdersCartByUserId(req.user.id, idapp, 0, false))
|
||||
: Promise.resolve(null),
|
||||
groups: Group.findAllIdApp(idapp),
|
||||
resps: User.getusersRespList(idapp),
|
||||
workers: User.getusersWorkersList(idapp),
|
||||
internalpages: MyPage.findInternalPages(idapp),
|
||||
// Campi aggiuntivi per versioni >= 91
|
||||
levels: version >= 91 ? Level.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
skills: version >= 91 ? Skill.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
sectors: version >= 91 ? Sector.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
statusSkills: version >= 91 ? StatusSkill.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
provinces: version >= 91 ? Province.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catgrps: version >= 91 ? CatGrp.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
adtypes: version >= 91 ? AdType.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
adtypegoods: version >= 91 ? AdTypeGood.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
sectorgoods: version >= 91 ? SectorGood.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
goods: version >= 91 ? Good.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
site: version >= 91 ? Site.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
mygroups: version >= 91 ? MyGroup.findAllGroups(idapp) : Promise.resolve([]),
|
||||
listcircuits: version >= 91 ? Circuit.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
myelems: version >= 91 ? MyElem.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
categories: version >= 91 ? Category.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
providers: version >= 91 ? Provider.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
scontisticas: version >= 91 ? Scontistica.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
gasordines: version >= 91 ? Gasordine.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
products: version >= 91
|
||||
? Product.findAllIdApp(idapp, undefined, undefined, req.user ? User.isManager(req.user.perm) : false)
|
||||
: Promise.resolve([]),
|
||||
productInfos: version >= 91 ? ProductInfo.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catprods: version >= 91 ? Product.getArrCatProds(idapp, shared_consts.PROD.BOTTEGA) : Promise.resolve([]),
|
||||
subcatprods: version >= 91 ? SubCatProd.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catprods_gas: version >= 91 ? Product.getArrCatProds(idapp, shared_consts.PROD.GAS) : Promise.resolve([]),
|
||||
catAI: version >= 91 ? CatAI.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
authors: version >= 91 ? Author.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
publishers: version >= 91 ? Publisher.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
myschedas: version >= 91 ? MyElem.findallSchedeTemplate(idapp) : Promise.resolve([]),
|
||||
collane: version >= 91 ? Collana.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catalogs: version >= 91 ? Catalog.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catprtotali: version >= 91 ? CatProd.getCatProdWithTitleCount(idapp) : Promise.resolve([]),
|
||||
myuserextra: req.user
|
||||
? User.addExtraInfo(idapp, req.user, version)
|
||||
: Promise.resolve(null)
|
||||
};
|
||||
|
||||
// var category = req.params.category;
|
||||
// Esecuzione parallela di tutte le promesse
|
||||
const keys = Object.keys(promises);
|
||||
const results = await Promise.all(Object.values(promises));
|
||||
const data = keys.reduce((acc, key, index) => {
|
||||
acc[key] = results[index];
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
// tools.mylog('loadsite : ', req.params);
|
||||
|
||||
|
||||
let bookedevent = [];
|
||||
// let msgs = [];
|
||||
|
||||
let socioresidente = false;
|
||||
|
||||
if (req.user)
|
||||
socioresidente = req.user.profile.socioresidente;
|
||||
|
||||
if (userId !== '0') {
|
||||
// LOGGED WITH USERID
|
||||
bookedevent = Booking.findAllByUserIdAndIdApp(userId, idapp,
|
||||
gestoredelSito);
|
||||
}
|
||||
|
||||
// Extract all the todos of the userId only
|
||||
const eventlist = MyEvent.findAllIdApp(socioresidente, idapp);
|
||||
const operators = Operator.findAllIdApp(idapp);
|
||||
const internalpages = MyPage.findInternalPages(idapp);
|
||||
const wheres = Where.findAllIdApp(idapp);
|
||||
const contribtype = Contribtype.findAllIdApp(idapp);
|
||||
const paymenttype = PaymentType.findAllIdApp(idapp);
|
||||
const disciplines = Discipline.findAllIdApp(idapp);
|
||||
const myelems = MyElem.findAllIdApp(idapp);
|
||||
const myschedas = MyElem.findallSchedeTemplate(idapp);
|
||||
const settings = Settings.findAllIdApp(idapp, false, false);
|
||||
|
||||
const permissions = Permission.findAllIdApp();
|
||||
|
||||
// const versionstr = User....
|
||||
// let version = tools.getVersionint(versionstr);
|
||||
|
||||
let newstosent = Promise.resolve([]);
|
||||
let mailinglist = Promise.resolve([]);
|
||||
let mypage;
|
||||
if (version > 91)
|
||||
mypage = MyPage.findOnlyStruttRec(idapp);
|
||||
else
|
||||
mypage = MyPage.findAllIdApp(idapp);
|
||||
let calzoom = CalZoom.findAllIdApp(idapp);
|
||||
|
||||
let gallery = Promise.resolve([]);
|
||||
if (gestoredelSito) {
|
||||
gallery = Gallery.findAllIdApp(idapp);
|
||||
}
|
||||
|
||||
let producers = Producer.findAllIdApp(idapp);
|
||||
let groups = Group.findAllIdApp(idapp);
|
||||
|
||||
// ....
|
||||
let resps = User.getusersRespList(idapp);
|
||||
let workers = User.getusersWorkersList(idapp);
|
||||
let storehouses = Storehouse.findAllIdApp(idapp);
|
||||
let providers = Provider.findAllIdApp(idapp);
|
||||
let catprods = Product.getArrCatProds(idapp, shared_consts.PROD.BOTTEGA);
|
||||
let catprtotali = CatProd.getCatProdWithTitleCount(idapp);
|
||||
let collane = Collana.findAllIdApp(idapp);
|
||||
let catalogs = Catalog.findAllIdApp(idapp);
|
||||
let catprods_gas = Product.getArrCatProds(idapp, shared_consts.PROD.GAS);
|
||||
let subcatprods = SubCatProd.findAllIdApp(idapp);
|
||||
let gasordines = Gasordine.findAllIdApp(idapp);
|
||||
let catAI = CatAI.findAllIdApp(idapp);
|
||||
let ismanager = false;
|
||||
try {
|
||||
if (req.user)
|
||||
ismanager = User.isManager(req.user.perm)
|
||||
} catch (e) {
|
||||
}
|
||||
let products = Product.findAllIdApp(idapp, undefined, undefined, ismanager);
|
||||
let authors = Author.findAllIdApp(idapp);
|
||||
let publishers = Publisher.findAllIdApp(idapp);
|
||||
let productInfos = ProductInfo.findAllIdApp(idapp);
|
||||
let scontisticas = Scontistica.findAllIdApp(idapp);
|
||||
let departments = Department.findAllIdApp(idapp);
|
||||
let categories = Category.findAllIdApp(idapp);
|
||||
|
||||
|
||||
// SKILLS:
|
||||
let levels = Level.findAllIdApp(idapp);
|
||||
let adtypes = AdType.findAllIdApp(idapp);
|
||||
let adtypegoods = AdTypeGood.findAllIdApp(idapp);
|
||||
let skills = Skill.findAllIdApp(idapp);
|
||||
let goods = Good.findAllIdApp(idapp);
|
||||
//let subSkills = SubSkill.findAllIdApp(idapp);
|
||||
let statusSkills = StatusSkill.findAllIdApp(idapp);
|
||||
let sectors = Sector.findAllIdApp(idapp);
|
||||
let sectorgoods = SectorGood.findAllIdApp(idapp);
|
||||
let catgrps = CatGrp.findAllIdApp(idapp);
|
||||
let site = Site.findAllIdApp(idapp);
|
||||
let mygroups = MyGroup.findAllGroups(idapp);
|
||||
let listcircuits = Circuit.findAllIdApp(idapp);
|
||||
let provinces = Province.findAllIdApp(idapp);
|
||||
let cart = null;
|
||||
let orderscart = null;
|
||||
if (gestoredelSito) {
|
||||
newstosent = Newstosent.findAllIdApp(idapp);
|
||||
}
|
||||
|
||||
let calcstat = null;
|
||||
if (req.user) {
|
||||
calcstat = User.calculateStat(idapp, req.user.username);
|
||||
cart = Cart.getCartByUserId(req.user.id, idapp);
|
||||
if (ismanager) {
|
||||
// Prende Tutti gli Ordini !
|
||||
orderscart = OrdersCart.getOrdersCartByUserId('ALL', idapp, 0, false);
|
||||
} else {
|
||||
orderscart = OrdersCart.getOrdersCartByUserId(req.user.id, idapp, 0, false);
|
||||
}
|
||||
}
|
||||
let askedfriends = [];
|
||||
let myuserextra = null;
|
||||
if (req.user) {
|
||||
// askedfriends = User.getAskedFriendsByUsername(idapp, req.user.username);
|
||||
myuserextra = User.addExtraInfo(idapp, req.user._doc, req.user, version);
|
||||
}
|
||||
|
||||
return Promise.all([
|
||||
bookedevent,
|
||||
eventlist,
|
||||
operators,
|
||||
wheres,
|
||||
contribtype,
|
||||
settings, // 5
|
||||
permissions,
|
||||
disciplines,
|
||||
newstosent,
|
||||
mailinglist,
|
||||
mypage, // 10
|
||||
gallery,
|
||||
paymenttype,
|
||||
calcstat,
|
||||
calzoom,
|
||||
producers, // 15
|
||||
cart,
|
||||
storehouses,
|
||||
departments,
|
||||
orderscart,
|
||||
groups, // 20
|
||||
resps,
|
||||
workers,
|
||||
internalpages,
|
||||
levels,
|
||||
skills, //25
|
||||
//subSkills,
|
||||
myuserextra, // 26
|
||||
sectors, // 27
|
||||
statusSkills, //28
|
||||
provinces,
|
||||
catgrps,
|
||||
adtypes,
|
||||
adtypegoods,
|
||||
sectorgoods,
|
||||
goods,
|
||||
site,
|
||||
mygroups,
|
||||
listcircuits, // 37
|
||||
myelems, // 38
|
||||
categories, // 39
|
||||
providers,
|
||||
scontisticas,
|
||||
gasordines,
|
||||
products,
|
||||
productInfos,
|
||||
catprods, //45
|
||||
subcatprods,
|
||||
catprods_gas, //47
|
||||
catAI,
|
||||
authors,
|
||||
publishers,
|
||||
myschedas,
|
||||
collane,
|
||||
catalogs,
|
||||
catprtotali,
|
||||
]).then((arrdata) => {
|
||||
// console.table(arrdata);
|
||||
// Aggiornamento delle informazioni dell'utente, se presente
|
||||
let myuser = req.user;
|
||||
if (myuser) {
|
||||
try {
|
||||
myuser = arrdata[26];
|
||||
if (myuser) {
|
||||
myuser.password = '';
|
||||
myuser.calcstat = arrdata[13];
|
||||
}
|
||||
} catch (e) { }
|
||||
if (myuser && data.myuserextra) {
|
||||
myuser = data.myuserextra;
|
||||
myuser.password = '';
|
||||
myuser.calcstat = data.calcstat;
|
||||
}
|
||||
|
||||
// Costruzione dell'oggetto di risposta in base alla versione
|
||||
let responseData;
|
||||
if (version < 91) {
|
||||
res.status(status).send({
|
||||
bookedevent: arrdata[0],
|
||||
eventlist: arrdata[1],
|
||||
operators: arrdata[2],
|
||||
wheres: arrdata[3],
|
||||
contribtype: arrdata[4],
|
||||
settings: arrdata[5],
|
||||
permissions: arrdata[6],
|
||||
disciplines: arrdata[7],
|
||||
newstosent: arrdata[8],
|
||||
mailinglist: arrdata[9],
|
||||
mypage: arrdata[10],
|
||||
gallery: arrdata[11],
|
||||
paymenttypes: arrdata[12],
|
||||
calzoom: arrdata[14],
|
||||
producers: arrdata[15],
|
||||
cart: arrdata[16],
|
||||
storehouses: arrdata[17],
|
||||
departments: arrdata[18],
|
||||
orders: arrdata[19],
|
||||
groups: arrdata[20],
|
||||
resps: arrdata[21],
|
||||
workers: arrdata[22],
|
||||
responseData = {
|
||||
bookedevent: data.bookedevent,
|
||||
eventlist: data.eventlist,
|
||||
operators: data.operators,
|
||||
wheres: data.wheres,
|
||||
contribtype: data.contribtype,
|
||||
settings: data.settings,
|
||||
permissions: data.permissions,
|
||||
disciplines: data.disciplines,
|
||||
newstosent: data.newstosent,
|
||||
mailinglist: data.mailinglist,
|
||||
mypage: data.mypage,
|
||||
gallery: data.gallery,
|
||||
paymenttypes: data.paymenttype,
|
||||
calzoom: data.calzoom,
|
||||
producers: data.producers,
|
||||
cart: data.cart,
|
||||
storehouses: data.storehouses,
|
||||
departments: data.departments,
|
||||
orders: data.orderscart,
|
||||
groups: data.groups,
|
||||
resps: data.resps,
|
||||
workers: data.workers,
|
||||
myuser,
|
||||
internalpages: arrdata[23],
|
||||
});
|
||||
internalpages: data.internalpages
|
||||
};
|
||||
} else {
|
||||
res.status(status).send({
|
||||
bookedevent: arrdata[0],
|
||||
eventlist: arrdata[1],
|
||||
operators: arrdata[2],
|
||||
wheres: arrdata[3],
|
||||
contribtype: arrdata[4],
|
||||
settings: arrdata[5],
|
||||
permissions: arrdata[6],
|
||||
disciplines: arrdata[7],
|
||||
newstosent: arrdata[8],
|
||||
mailinglist: arrdata[9],
|
||||
mypage: arrdata[10],
|
||||
gallery: arrdata[11],
|
||||
paymenttypes: arrdata[12],
|
||||
calzoom: arrdata[14],
|
||||
producers: arrdata[15],
|
||||
cart: arrdata[16],
|
||||
storehouses: arrdata[17],
|
||||
departments: arrdata[18],
|
||||
orders: arrdata[19],
|
||||
groups: arrdata[20],
|
||||
resps: arrdata[21],
|
||||
workers: arrdata[22],
|
||||
responseData = {
|
||||
bookedevent: data.bookedevent,
|
||||
eventlist: data.eventlist,
|
||||
operators: data.operators,
|
||||
wheres: data.wheres,
|
||||
contribtype: data.contribtype,
|
||||
settings: data.settings,
|
||||
permissions: data.permissions,
|
||||
disciplines: data.disciplines,
|
||||
newstosent: data.newstosent,
|
||||
mailinglist: data.mailinglist,
|
||||
mypage: data.mypage,
|
||||
gallery: data.gallery,
|
||||
paymenttypes: data.paymenttype,
|
||||
calzoom: data.calzoom,
|
||||
producers: data.producers,
|
||||
cart: data.cart,
|
||||
storehouses: data.storehouses,
|
||||
departments: data.departments,
|
||||
orders: data.orderscart,
|
||||
groups: data.groups,
|
||||
resps: data.resps,
|
||||
workers: data.workers,
|
||||
myuser,
|
||||
internalpages: arrdata[23],
|
||||
levels: arrdata[24],
|
||||
skills: arrdata[25],
|
||||
// subSkills: arrdata[26],
|
||||
// myuser arrdata[26]
|
||||
sectors: arrdata[27],
|
||||
statusSkills: arrdata[28],
|
||||
provinces: arrdata[29],
|
||||
catgrps: arrdata[30],
|
||||
adtypes: arrdata[31],
|
||||
adtypegoods: arrdata[32],
|
||||
sectorgoods: arrdata[33],
|
||||
goods: arrdata[34],
|
||||
site: arrdata[35],
|
||||
mygroups: arrdata[36],
|
||||
listcircuits: arrdata[37],
|
||||
myelems: arrdata[38],
|
||||
categories: arrdata[39],
|
||||
providers: arrdata[40],
|
||||
scontisticas: arrdata[41],
|
||||
gasordines: arrdata[42],
|
||||
products: arrdata[43],
|
||||
productInfos: arrdata[44],
|
||||
catprods: arrdata[45],
|
||||
subcatprods: arrdata[46],
|
||||
catprods_gas: arrdata[47],
|
||||
catAI: arrdata[48],
|
||||
internalpages: data.internalpages,
|
||||
levels: data.levels,
|
||||
skills: data.skills,
|
||||
sectors: data.sectors,
|
||||
statusSkills: data.statusSkills,
|
||||
provinces: data.provinces,
|
||||
catgrps: data.catgrps,
|
||||
adtypes: data.adtypes,
|
||||
adtypegoods: data.adtypegoods,
|
||||
sectorgoods: data.sectorgoods,
|
||||
goods: data.goods,
|
||||
site: data.site,
|
||||
mygroups: data.mygroups,
|
||||
listcircuits: data.listcircuits,
|
||||
myelems: data.myelems,
|
||||
categories: data.categories,
|
||||
providers: data.providers,
|
||||
scontisticas: data.scontisticas,
|
||||
gasordines: data.gasordines,
|
||||
products: data.products,
|
||||
productInfos: data.productInfos,
|
||||
catprods: data.catprods,
|
||||
subcatprods: data.subcatprods,
|
||||
catprods_gas: data.catprods_gas,
|
||||
catAI: data.catAI,
|
||||
code: req.code,
|
||||
authors: arrdata[49],
|
||||
publishers: arrdata[50],
|
||||
myschedas: arrdata[51],
|
||||
collane: arrdata[52],
|
||||
catalogs: arrdata[53],
|
||||
catprtotali: arrdata[54],
|
||||
});
|
||||
|
||||
const prova = 1;
|
||||
authors: data.authors,
|
||||
publishers: data.publishers,
|
||||
myschedas: data.myschedas,
|
||||
collane: data.collane,
|
||||
catalogs: data.catalogs,
|
||||
catprtotali: data.catprtotali
|
||||
};
|
||||
}
|
||||
|
||||
}).catch((e) => {
|
||||
console.log(e.message);
|
||||
res.status(400).send(e);
|
||||
});
|
||||
|
||||
}
|
||||
console.log(' ... 2) load dati caricati ...');
|
||||
res.status(status).send(responseData);
|
||||
} catch (e) {
|
||||
console.error('Errore in load:', e);
|
||||
res.status(400).send({ error: e.message });
|
||||
}
|
||||
};
|
||||
|
||||
router.get(process.env.LINK_CHECK_UPDATES, authenticate_noerror, async (req, res) => {
|
||||
const idapp = req.query.idapp;
|
||||
|
||||
Reference in New Issue
Block a user