875 make robust upload service
Created by: inAlt
#875 (closed) Сделан более надежным код, который производит переключение обработки очереди загружаемых файлов на AS:
- В методе _handleError() перенесены вызовы toggleNextOperation и _createOperationResult в финальный callback конструкции waterfall, чтобы они были вызваны независимо от того, успешно или нет была выполнена цепочка функций, входящих в waterfall. В методе _completeUpload() уже сделано таким же образом.
- В каждой функции внутри waterfall внутри методов _handleError() и _completeUpload() добавлен код, который отлавливает и передает исплючения в виде ошибки callback(error).
Рефакторинг: 3. Убрана избыточная конструкция waterfall из _completeUpload(), т.к. внутри него выполняется всего одна функция.
Как проверять:
-
Имитируем неудачное выполнение записи в базу. Удалить последнюю миграцию /home/andrey/work/sources/gen-bs/database/migrations/20170208165444_fix-sample-error-type.js и выполнить загрузку файла из #873 (closed). Ожидается: ошибка о том, что файл не может быть распарсен не записана в базу, но очередь обработки загружаемых файлов не "затыкается". Пользователь может продолжать загружать файлы.
-
В произвольном месте в функциях _handleError() и _completeUpload() расставляем throw.