@@ -386,23 +386,41 @@ class TAbstractConverterManager {
386386 const numberOfFiles = files . length
387387 this . _convertersOptions = request . body
388388
389+ // protect again multi-request from client on large file that take time to return response
390+ const availableFiles = [ ]
389391 for ( let fileIndex = 0 ; fileIndex < numberOfFiles ; fileIndex ++ ) {
392+
390393 let file = files [ fileIndex ]
391- if ( this . _processedFiles . includes ( file . filename ) ) { return }
392- this . _processedFiles . push ( file . filename )
394+
395+ if ( this . _processedFiles . includes ( file . name ) ) {
396+
397+ if ( this . _useNext ) {
398+ next ( `Le fichier ${ file . name } à déjà été inséré.` )
399+ } else {
400+ TAbstractConverterManager . returnError ( `Le fichier ${ file . name } à déjà été inséré.` , response )
401+ }
402+
403+ }
404+
405+ this . _processedFiles . push ( file . name )
406+ availableFiles . push ( file )
407+
393408 }
394409
395- if ( numberOfFiles === 0 ) {
410+ const availableFilesNumber = availableFiles . length
411+ if ( availableFilesNumber === 0 ) {
396412
397413 if ( this . _useNext ) {
398- next ( `Impossible d'analyser ${ numberOfFiles } fichiers associatifs simultanément !` )
414+ next ( `Impossible d'analyser ${ availableFilesNumber } fichiers associatifs simultanément !` )
399415 } else {
400- TAbstractConverterManager . returnError ( `Impossible d'analyser ${ numberOfFiles } fichiers associatifs simultanément !` , response )
416+ TAbstractConverterManager . returnError ( `Impossible d'analyser ${ availableFilesNumber } fichiers associatifs simultanément !` , response )
401417 }
402418
403419 }
404420
405- this . _processFiles ( files , this . _convertersOptions , response , next )
421+ this . _filesToProcess += availableFilesNumber
422+
423+ this . _processFiles ( availableFiles , this . _convertersOptions , response , next )
406424
407425 }
408426
0 commit comments