// parse the params from http call import {returnOnError} from "./reporterror.js" const checkParams = (params, mo) => { let o = {opts: {}, err: null} if ((mo.mandatory.length !== 0) && (params === undefined)) { return returnOnError(o, 'NOPARAMETER', checkParams.name ) } for (let p of mo.mandatory) { if (!(p.name in params)) { return returnOnError(o, 'NOMANDPARAM', checkParams.name, p.name) } if (p.type === 'int') { let x = parseInt(params[p.name]) if (isNaN(x)) { return returnOnError(o, 'PARAMNONUM', checkParams.name, p.name) } else { o.opts[p.name] = x continue } } else if (p.type === 'float') { let x = parseFloat(params[p.name]) if (isNaN(x)) { return returnOnError(o, 'PARAMNONUM', checkParams.name, p.name) } else { o.opts[p.name] = x continue } } o.opts[p.name] = params[p.name] } for(let p of mo.optional) { if (!(p.name in params)) { o.opts[p.name] = p.default } else { if (p.type === 'int') { let x = parseInt(params[p.name]) if (isNaN(x)) { o.opts[p.name] = p.default } else { o.opts[p.name] = x } } else if (p.type === 'bool') { o.opts[p.name] = params[p.name] === 'true' } else { o.opts[p.name] = params[p.name] } } } return o } export default checkParams