diff --git a/src/socket/socketmanager.js b/src/socket/socketmanager.js index 4e52da0..5639730 100644 --- a/src/socket/socketmanager.js +++ b/src/socket/socketmanager.js @@ -23,6 +23,7 @@ export class SocketManager { // Create Socket.IO server - CORS applies to HTTP long-polling transport const allowedOrigins = config.server.corsOrigins || ['*']; const io = new Server(server, { + maxHttpBufferSize: 1e8, cors: { origin: (origin, callback) => { // Allow requests with no origin (e.g. same-origin, Postman, native apps) diff --git a/src/socket/socketuser.js b/src/socket/socketuser.js index 48335b4..655cbff 100644 --- a/src/socket/socketuser.js +++ b/src/socket/socketuser.js @@ -306,23 +306,41 @@ export class SocketUser { } async handlePreviewTemplateEvent(data, callback) { - const result = await this.templateManager.renderTemplate( - data._id, - data.content, - data.testObject, - data.scale - ); - callback(result); + try { + const result = await this.templateManager.renderTemplate( + data._id, + data.content, + data.testObject, + data.scale + ); + if (typeof callback === 'function') { + callback(result); + } + } catch (err) { + logger.error('Preview template event error:', err); + if (typeof callback === 'function') { + callback({ error: err.message }); + } + } } async handleRenderTemplatePDFEvent(data, callback) { - const result = await this.templateManager.renderPDF( - data._id, - data.content, - data.object, - 1 - ); - callback(result); + try { + const result = await this.templateManager.renderPDF( + data._id, + data.content, + data.object, + 1 + ); + if (typeof callback === 'function') { + callback(result); + } + } catch (err) { + logger.error('Render template PDF event error:', err); + if (typeof callback === 'function') { + callback({ error: err.message }); + } + } } async handleGenerateHostOtpEvent(data, callback) { const result = await generateHostOTP(data._id); diff --git a/src/templates/templatemanager.js b/src/templates/templatemanager.js index 66d2e7c..e262f95 100644 --- a/src/templates/templatemanager.js +++ b/src/templates/templatemanager.js @@ -407,6 +407,9 @@ export class TemplateManager { } else { const objectType = documentTemplate?.objectType; const model = getModelByName(objectType); + if (model == null) { + return { error: `Unknown object type: ${objectType}` }; + } const defaultKeys = Object.keys(model.schema.obj); const defaultValues = {}; for (const key of defaultKeys) {