var parseFilter = require('ldapjs').parseFilter; var constants = require('./cores/constants'); // //unit test // var fileTempUnitTest = './unitTest/testCase.txt'; // const fs = require('fs'); // const path = require('path'); var unitTest = require('../unitTest/unitTest'); var utils = {}; utils.findQueryString = function(req) { var keywords = ["filter","offset","orderby","limit","fields"]; var baseUrl = decodeURIComponent(req.url); if(baseUrl && baseUrl.indexOf("filter=(") != -1) { baseUrl = "&"+baseUrl.split("?")[1]; var indexList = []; var listData = {}; for(var i=0;i= case 'le': operate = '$lte'; break;//<= case 'approx' : operate = '$in'; break; default : operate = "$"+temFilter[i].type; break; } switch(operate){ case '$present' : break; case '$substring' : // if(temFilter[i].initial){ // query += temFilter[i].attribute +" LIKE '"+ temFilter[i].initial + "%'" // } else if(temFilter[i].final){ // query += temFilter[i].attribute +" LIKE '%" + temFilter[i].final + "'" // } else { // var any = "%"; // for(var j = 0; j < temFilter[i].any.length; j++){ // any += temFilter[i].any[j]+"%"; // } // query += temFilter[i].attribute +" LIKE '" + any + "'" // } break; default : // query += temFilter[i].attribute +" "+ operate +" "+ temFilter[i].value; var regexValue = temFilter[i].value; if(data.type == 'or'){ var objOr = {} var attribute = temFilter[i].attribute; objOr[attribute] = regexValue if(!query['$or']) query['$or'] = [] query['$or'].push(objOr) } else { var attribute = temFilter[i].attribute; query[attribute] = regexValue } // query = Object.assign(obj, obj) break; } // query += temFilter[i].attribute +" "+ operate +" "+ temFilter[i].value; } // if(i != temFilter.length-1) // query += " "+data.type.toUpperCase()+" " } return query; } module.exports = utils;