multiple column Contruct
by bilbobaggins
JavaScript
//and lower(a."gender") IN ('f') and lower(a."first_name") IN ('aamer','babette')
//and "first_name"||' '||"last_name"||' '||"gender" LIKE '%ab%'
Array.prototype.removear = function () {
var what,
a = arguments,
L = a.length,
ax;
while (L && this.length) {
what = a[--L];
while ((ax = this.indexOf(what)) !== -1) {
this.splice(ax, 1);
}
}
return this;
};
var validationmap=[{"inputname":"first_name","fieldvalidatename":"string","fieldmaxlength":"45"},{"inputname":"last_name","fieldvalidatename":"string","fieldmaxlength":"45"},{"inputname":"gender","fieldvalidatename":"string","fieldmaxlength":"1"},{"inputname":"birth_date","fieldvalidatename":"date","fieldmaxlength":"30"}]
var fieldnames= [
'employeesid',
'first_name',
'last_name',
'gender',
'birth_date',
'recordstate',
'created_date',
'updated_date'
]
//var searchparam=[ { gender: [ 'f' ] } ]
var searchparam=[{first_name: ["abdelghani"]}]
var dt={"daterange":{"startdate":"1982-07-28","enddate":"2022-08-27"}}
//
let consolidateSearchParameterizedConstruct=function(mod)
{
let f= fieldnames
f.removear("updated_date")
f.removear("created_date")
f.removear("recordstate")
f.removear(mod.id);
custWhere=f.join("||' '||")+' like $3'
return custWhere
}
let mod={id:"employeesid"}
let h=consolidateSearchParameterizedConstruct(mod)
console.log(h)
let dateRangeConstructColumn=function(datecolsearch)
{
let dtcol=fieldnames.filter(b=>b==datecolsearch)
.map(d=>d).toString()
return `and a.${dtcol} >= $1 AND a.${dtcol} <=$2`
}
var r=dateRangeConstructColumn('created_date')
console.log(r)
let multiWhereConstructColumn=function(searchparam)
{
let a=Object.values(searchparam).map(b => Object.keys(b).toString())
console.log(a)
let allowableColumns=[]
a.forEach(function(c)
{
allowableColumns.push(validationmap.filter(b=>b.inputname==c)
.map(d=>d.inputname).toString())
})
console.log("-------")
...