Программные зависимости

express - фреймворк web-приложений для Node.js

ioredis - библиотека для эффективной работы с Redis

fs - библиотека для работы с файловой системой (является частью Node.js)

moment - библиотека для работы с датами и временем

request - библиотека для выполнения HTTP-запросов в Node.js

Функции в коде

Название функции	Назначение
getCalibrationNameAndSerial(calibrationData)	функция возвращает имена приборов и их серийные номера, в случае, если для них есть калибровочные коэффициенты
readAndParseCalibrationFile(file)	асинхронная функция предназначена для чтения и парсинга JSON-файла с данными о калибровке.
getCalibrationSensorNames(calibrationData)	функция возвращает массив с названиями сенсоров для калибровки
getAllRedisKeys()	асинхронная функция для получения всех ключей из Redis
getNecessaryKeys(startDate, endDate, keysArray)	функция выполняет фильтрацию массива ключей (keysArray) на основе заданного временного диапазона
checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray)	функция проверяет, находится ли заданный временной диапазон внутри или частично пересекается с временным диапазоном, представленным в массиве keysArray
sortRedisKeys(keysArray)	функция для сортировки массива ключей Redis
sortedAndFilteredKeys(formattedStartDate, formattedEndDate)	асинхронная функция для получения отсортированных и отфильтрованных ключей из Redis
updateDataInRedis(url)	асинхронная функция для добавления данных в Redis
processAndAggregateLastMeasurements(respondParsed, keysArray)	функция для обработки данных (для запросов last_measurements)
processAndAggregateResponsesList(respondParsed, keysArray)	функция для обработки данных (для запросов list)
downloadPage(url)	асинхронная функция выполняет запрос по указанному URL и возвращает ответ
requestAdditionalDataIfMissing(formattedStartDate, formattedEndDate, filteredKeys)	асинхронная функция для дозапроса данных
respondToDataQuery(keys)	функция предназначена для получения значений по заданным ключам
respondToDataQueryParsed(keys)	функция предназначена для получения значений по заданным ключам
applyCalibrationsToData(calibrationData, filteredResponse)	функция выполняет калибровку данных