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("-------")
...