DoSoapCalc/backend/lib/validator.js

48 lines
1.4 KiB
JavaScript

// lib/validator.js
// Валидация данных для калькуляторов
/**
* Валидирует обязательные поля
* @param {Object} data - Данные для проверки
* @param {string[]} requiredFields - Массив обязательных полей
* @returns {{ valid: boolean, error?: string }}
*/
function validateRequiredFields(data, requiredFields) {
for (const field of requiredFields) {
if (!data[field] || data[field] === '') {
return {
valid: false,
error: `Поле "${field}" обязательно для заполнения`,
};
}
}
return { valid: true };
}
/**
* Валидирует числовые поля
* @param {Object} data - Данные для проверки
* @param {string[]} numericFields - Массив полей, которые должны быть числами
* @returns {{ valid: boolean, error?: string }}
*/
function validateNumericFields(data, numericFields) {
for (const field of numericFields) {
if (data[field] !== undefined && data[field] !== null && data[field] !== '') {
const num = Number(data[field]);
if (isNaN(num) || num < 0) {
return {
valid: false,
error: `Поле "${field}" должно быть положительным числом`,
};
}
}
}
return { valid: true };
}
module.exports = {
validateRequiredFields,
validateNumericFields,
};