UNPKG

@afuadajo/csv-validator

Version:

A CSV validator library for Node.js

95 lines (94 loc) 3.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bulkPatientsValidators = exports.bulkInventoryValidators = void 0; const numberValidation = (val, message) => { if (Number.isNaN(Number(val)) || Number(val) < 0) return message; return ''; }; const dateValidation = (val, message) => { if (Number.isNaN(Date.parse(val)) || new Date(val) <= new Date()) { return message; } return ''; }; exports.bulkInventoryValidators = { 'Product Name': { required: true }, 'Extra Information.': { required: true }, 'Producty Category': { required: true }, 'Brand Name': { required: true }, 'Measurement/Form': { required: true }, 'Over-The-Counter': { required: false }, 'Batch Number': { required: true }, Quantity: { required: true, custom(val) { return numberValidation(val, 'Quantity must be a valid number'); }, }, 'Buying Price': { required: true, custom(val) { return numberValidation(val, 'Buying Price must be a valid number'); }, }, 'Selling Price': { required: true, custom(val) { return numberValidation(val, 'Selling Price must be a valid number'); }, }, 'Expiry Alert': { required: true, custom(val) { return numberValidation(val, 'Expiry Alert must be a valid number'); }, }, 'Out-Of-Stoct Alert': { required: true }, 'Expiry Date': { required: false, custom(val) { return dateValidation(val, 'Expiry Date must be a valid date in the future'); }, }, 'Order Placed But Not In Stock': { required: false }, 'Push All To Shelf': { required: false }, }; exports.bulkPatientsValidators = { 'First Name': { required: true }, 'Middle Name.': { required: false }, 'Last Name': { required: true }, 'Phone Number': { required: true }, 'Email Address': { email: true, required: false }, 'D.O.B': { required: true, custom(val) { if (Number.isNaN(Date.parse(val)) || new Date(val) >= new Date()) { return 'D.O.B must be a valid date in the past'; } return ''; }, }, Gender: { required: true, custom(val) { if (!['male', 'female'].includes(val.toLocaleLowerCase())) return 'Gender must be Male or Female'; return ''; }, }, 'Marital Status': { required: true }, Nationality: { required: true }, 'Home Address': { required: true }, 'Secondary Phone Number': { required: false }, 'Languages Spoken': { required: false }, 'Work Address': { required: false }, 'HMO Company': { required: false }, 'HMO ID': { required: false }, 'Next of Kin First Name': { required: true }, 'Next of Kin Last Name': { required: true }, 'Next of Kin Phone Number': { required: true }, 'Next of Kin Email Address': { required: false }, 'Next of Kin Home Address': { required: false }, 'Relationship to Patient': { required: true }, };