From fc1e9cebe498f7ee438e0fef5218f79847fb8b3d Mon Sep 17 00:00:00 2001 From: Onja Date: Wed, 11 Oct 2023 00:05:44 +0300 Subject: [PATCH] Add event listeners in ioSubscriber.js for download and parse events, and emit corresponding socket events --- src/subscribers/ioSubscriber.js | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/subscribers/ioSubscriber.js diff --git a/src/subscribers/ioSubscriber.js b/src/subscribers/ioSubscriber.js new file mode 100644 index 0000000..ab26d1a --- /dev/null +++ b/src/subscribers/ioSubscriber.js @@ -0,0 +1,44 @@ +const emitter = require('../services/eventEmitter'); + +const configure = (socket) => { + // Create a new listener for the download.start event + emitter.on('download.start', ({ url, filepath }) => { + socket.emit('download.start', { message: 'Début de téléchargement' }); + }); + + // Create a new listener for the download.end event + emitter.on('download.end', ({ url, filepath }) => { + socket.emit('download.end', { message: 'Téléchargement terminé' }); + }); + + // Create a new listener for the download.error event + emitter.on('download.error', ({ url, filepath, error, type }) => { + socket.emit('download.error', { error, type, message: 'Erreur lors du téléchargement' }); + }); + + // Create a new listener for the download.progress event + emitter.on('download.progress', ({ url, filepath, downloaded }) => { + downloaded = (Math.floor(downloaded / 1024 / 1024 * 100) / 100).toLocaleString(); + socket.emit('download.progress', { downloaded, message: `[${downloaded} Mo] téléchargés` }); + }); + + + + + // Create a new listener for the parse start event + emitter.on('parse.start', ({ filepath, columns, headers, result }) => { + socket.emit('parse.start', { message: 'Début de traitement' }); + }); + + // Create a new listener for the parse.end event + emitter.on('parse.end', ({ filepath, columns, count }) => { + socket.emit('parse.end', { message: 'Traitement terminé' }); + }); + + // Create a new listener for the parse.error event + emitter.on('parse.error', ({ filepath, columns, error }) => { + socket.emit('parse.error', { message: 'Erreur lors du traitement' }); + }); +} + +module.exports = configure; \ No newline at end of file