UNPKG

zs-core-db

Version:

Servicios generales de acceso a bases de datos

60 lines (48 loc) 1.83 kB
//@ts-check const { raise } = require("../utils/Logging"); const checkRequiredModel = (model = {}) => !Object.keys(model)[0] && raise("Se requiere modelo"); const checkRequiredData = (model = {}, data = {}) => { !Object.keys(data)[0] && raise(`No hay datos para guardar en tabla ${model.table}`); }; const checkUpdateCondition = (model = {}, where = {}) => !Object.keys(where)[0] && raise(`No hay condición para actualizar registros de tabla ${model.table}`); const checkDeleteCondition = (model = {}, where = {}) => !Object.keys(where)[0] && raise(`No hay condición para eliminar registros de tabla ${model.table}`); const checkUndeclaredFields = (model = {}, data = {}) => { const undeclaredFields = Object.keys(data) .filter((field) => !model.fields[field]) .join(", "); undeclaredFields[0] && raise(`Tabla ${model.table} no tiene declarado: ${undeclaredFields}`); }; const checkRequiredInsertFields = (model = {}, data = {}) => { const missingFields = Object.keys(model.fields) .filter( (name) => model.fields[name].required && !String(model.fields[name].default)?.trim()[0] ) .filter((required) => !data[required]) .join(", "); missingFields[0] && raise(`Tabla ${model.table} requiere: ${missingFields}`); }; const checkRequiredUpdateFields = (model = {}, data = {}) => { const missingFields = Object.keys(model.fields) .filter((name) => model.fields[name].required) .filter((required) => data[required] && !String(data[required])[0]) .join(", "); missingFields[0] && raise(`Tabla ${model.table} requiere: ${missingFields}`); }; module.exports = { checkRequiredModel, checkRequiredData, checkUpdateCondition, checkDeleteCondition, checkUndeclaredFields, checkRequiredInsertFields, checkRequiredUpdateFields, };