From 2ee710b7484226806b54881aad49341b84e95785 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Tue, 12 Aug 2025 19:43:41 +0200 Subject: [PATCH] galleria prodotto --- src/server/models/productInfo.js | 1 + src/server/router/api_router.js | 2 +- src/server/router/index_router.js | 73 +++++++++++++++++-------------- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/server/models/productInfo.js b/src/server/models/productInfo.js index fd4cc78..c60e0f5 100755 --- a/src/server/models/productInfo.js +++ b/src/server/models/productInfo.js @@ -6,6 +6,7 @@ const tools = require('../tools/general'); mongoose.Promise = global.Promise; mongoose.level = "F"; +const { IImg } = require('../models/myscheda'); // Resolving error Unknown modifier: $pushAll mongoose.plugin(schema => { diff --git a/src/server/router/api_router.js b/src/server/router/api_router.js index a7d0ea0..d7bf709 100644 --- a/src/server/router/api_router.js +++ b/src/server/router/api_router.js @@ -464,7 +464,7 @@ router.post('/chatbot', authenticate, async (req, res) => { res.json(response.data); } catch (error) { - console.error(error); + console.error(error?.message); res.status(500).send('Errore nella comunicazione con Rasa'); } }); diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 486a4b8..7a29c55 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -1016,7 +1016,12 @@ async function importPage(req, idapp, jsonString) { const table = globalTables.getTableByTableName(tableName); if (tableName === 'mypages') { - if (User.isAdmin(req.user.perm) || User.isEditor(req.user.perm) || User.isCommerciale(req.user.perm) || User.isCollaboratore(req.user.perm)) { + if ( + User.isAdmin(req.user.perm) || + User.isEditor(req.user.perm) || + User.isCommerciale(req.user.perm) || + User.isCollaboratore(req.user.perm) + ) { for (const page of myexp.mypages) { const { ImportedRecords, newId } = await upsertRecord(table, page, idapp); if (!newIdPage && newId) { @@ -2237,61 +2242,61 @@ router.post('/upload_from_other_server/:dir', authenticate, (req, res) => { // Funzione principale che gestisce l'upload async function uploadFile(req, res, version, options = {}) { - const quality = options.quality || 'original'; - const dirParam = req.params.dir || ''; - const dir = tools.invertescapeslash(dirParam); - const idapp = req.user.idapp; - - // Determina la cartella base - const dirmain = version > 0 && tools.sulServer() ? '' : server_constants.DIR_PUBLIC_LOCALE; - const baseUploadFolder = tools.getdirByIdApp(idapp) + dirmain + server_constants.DIR_UPLOAD; - - // Directory di upload specifica - const uploadDir = path.join(baseUploadFolder, dir); - try { + const quality = options.quality || 'original'; + const dirParam = req.params.dir || ''; + const dir = tools.invertescapeslash(dirParam); + const idapp = req.user?.idapp; + + if (!idapp) { + return res.status(400).send('ID applicazione mancante'); + } + + // Determina la cartella base + const dirmain = version > 0 && tools.sulServer() ? '' : server_constants.DIR_PUBLIC_LOCALE; + const baseUploadFolder = tools.getdirByIdApp(idapp) + dirmain + server_constants.DIR_UPLOAD; + + // Directory di upload specifica + const uploadDir = path.join(baseUploadFolder, dir); + // Crea la cartella se non esiste await tools.mkdirpath(uploadDir); // Configura formidable const form = new formidable.IncomingForm({ uploadDir }); - // Promisifica il parsing per usare await + // Parsing in modalità Promise const files = await new Promise((resolve, reject) => { form.parse(req, (err, fields, files) => { - if (err) reject(err); - else resolve(files); + if (err) return reject(err); + resolve(files); }); }); - // files può contenere uno o più file: gestiamo uno per semplicità + // Gestione file for (const key in files) { - if (Object.prototype.hasOwnProperty.call(files, key)) { - const file = files[key]; + if (!Object.prototype.hasOwnProperty.call(files, key)) continue; - console.log('File ricevuto:', file[0].originalFilename); + const file = files[key][0]; + console.log('File ricevuto:', file.originalFilename); - const oldFIle = file[0].filepath || file[0].path; + const oldFile = file.filepath || file.path; + const newFilePath = path.join(uploadDir, `${file.newFilename}_${file.originalFilename}`); - // Nuovo percorso per il file rinominato - const newFilePath = path.join(uploadDir, file[0].originalFilename); + // Sposta e rinomina + await tools.move(oldFile, newFilePath); - // Sposta e rinomina il file (move è la funzione ottimizzata) - // await move(file[0].filepath || file[0].path, newFilePath); - await tools.move(oldFIle, newFilePath); + // Ridimensionamento opzionale + await handleImageResizing(newFilePath, quality); - // Eventuale ridimensionamento immagine - await handleImageResizing(newFilePath, quality); - - console.log(`File processato e salvato in: ${newFilePath}`); - } + console.log(`File processato e salvato in: ${newFilePath}`); } - res.status(200).send('Upload completato con successo'); + return res.status(200).send('Upload completato con successo'); } catch (err) { console.error('Errore durante uploadFile:', err); if (!res.headersSent) { - res.status(500).send("Errore durante l'upload"); + return res.status(500).send("Errore durante l'upload"); } } } @@ -2355,7 +2360,7 @@ router.post('/upload/:dir', authenticate, (req, res) => { return uploadFile(req, res, 0, req.body.options); }); -router.post('/uploadnew/:vers/:dir/', authenticate, (req, res) => { +router.post('/uploadnew/:vers/:dir/', authenticate_noerror_WithUser, (req, res) => { let versionstr = req.params.vers; let version = tools.getVersionint(versionstr);