2a5f97c380761b6a2b4eb69bb3d242c606fbe82c
[motion2.git] / server / components / parsers / advancedSearch.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x1c5f=['$eq','$between','value','includes','$lte','add','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','NOT\x20IN\x20?','=\x20?','<>\x20?','$substring','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','start','pop','DATE','format','utcOffset','hours','seconds','lodash','parseSearch','sqlOperator','startsWith','[$or]','[$and]','replace','split','length','forEach','shift','filter','indexOf','conditions','buildExpression','operator'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1c5f,0x8c));var _0xf1c5=function(_0x4251cb,_0x11ddec){_0x4251cb=_0x4251cb-0x0;var _0x6a5186=_0x1c5f[_0x4251cb];return _0x6a5186;};'use strict';var _=require(_0xf1c5('0x0'));var moment=require('moment');exports[_0xf1c5('0x1')]=function(_0x4e4be7){var _0x3445c1={'conditions':[]};_0x3445c1[_0xf1c5('0x2')]=_[_0xf1c5('0x3')](_0x4e4be7,_0xf1c5('0x4'))?'or':'and';var _0x16eb44=_0x4e4be7['replace'](_0xf1c5('0x5'),'')[_0xf1c5('0x6')](_0xf1c5('0x4'),'')[_0xf1c5('0x7')]('||');for(var _0x169970=0x0;_0x169970<_0x16eb44[_0xf1c5('0x8')];_0x169970++){var _0x28eff9=_0x16eb44[_0x169970][_0xf1c5('0x7')](':=');var _0x525171=_0x28eff9[0x0];var _0x6cf403=_0x28eff9['slice'](0x1);_0x6cf403[_0xf1c5('0x9')](function(_0xd536f6){var _0x4d872e=_0xd536f6['split']('[')[_0xf1c5('0xa')]();var _0x37d6c9=_0xd536f6['match'](/\[(.*?)\]/g);_0x37d6c9[_0xf1c5('0x9')](function(_0x4b6169){var _0xeb7949=_0x4b6169[_0xf1c5('0x7')]('[')[_0xf1c5('0xb')](function(_0x533fc5){return _0x533fc5[_0xf1c5('0xc')](']')>-0x1;})['map'](function(_0x28f02d){return _0x28f02d[_0xf1c5('0x7')](']')[0x0];})[0x0];_0x3445c1[_0xf1c5('0xd')]['push']({'field':_0x525171,'operator':_0x4d872e,'value':_0xeb7949});});});}return _0x3445c1;};exports[_0xf1c5('0xe')]=function(_0x8e7458,_0x44e2a0,_0x429161){var _0x5f8638={};if(_0x44e2a0==='DATE'){if(_0x429161[_0xf1c5('0xf')]===_0xf1c5('0x10')){_0x429161[_0xf1c5('0xf')]=_0xf1c5('0x11');_0x429161['value']+=','+_0x429161[_0xf1c5('0x12')];}else if(_[_0xf1c5('0x13')](['$gt',_0xf1c5('0x14')],_0x429161['operator'])){_0x429161[_0xf1c5('0x12')]=moment(_0x429161[_0xf1c5('0x12')])[_0xf1c5('0x15')](0x1,'days')['format'](_0xf1c5('0x16'));}}if(_0x429161[_0xf1c5('0x17')]){_0x44e2a0=_0x429161[_0xf1c5('0x17')];_0x5f8638[_0xf1c5('0x18')]=_0xf1c5('0x19')+_0x8e7458+'.'+_0x429161[_0xf1c5('0x1a')]+_0xf1c5('0x1b')+_0x429161[_0xf1c5('0x17')]+')\x20'+parseOperator(_0x429161['operator']);}else{_0x5f8638['text']=_0x8e7458+'.'+_0x429161[_0xf1c5('0x1a')]+'\x20'+parseOperator(_0x429161[_0xf1c5('0xf')]);}if(_[_0xf1c5('0x13')]([_0xf1c5('0x1c'),_0xf1c5('0x1d')],_0x429161[_0xf1c5('0xf')]))_0x5f8638[_0xf1c5('0x18')]='('+_0x5f8638['text']+_0xf1c5('0x1e')+_0x8e7458+'.'+_0x429161['field']+_0xf1c5('0x1f');_0x5f8638['value']=parseValue(_0x44e2a0,_0x429161['operator'],_0x429161[_0xf1c5('0x12')]);return _0x5f8638;};function parseOperator(_0xd32b91){var _0x467bfc;switch(_0xd32b91){case _0xf1c5('0x20'):_0x467bfc='IN\x20?';break;case _0xf1c5('0x1d'):_0x467bfc=_0xf1c5('0x21');break;case _0xf1c5('0x10'):_0x467bfc=_0xf1c5('0x22');break;case _0xf1c5('0x1c'):_0x467bfc=_0xf1c5('0x23');break;case _0xf1c5('0x24'):case'$startsWith':case _0xf1c5('0x25'):_0x467bfc=_0xf1c5('0x26');break;case _0xf1c5('0x27'):_0x467bfc=_0xf1c5('0x28');break;case'$gt':_0x467bfc=_0xf1c5('0x29');break;case _0xf1c5('0x14'):_0x467bfc=_0xf1c5('0x2a');break;case _0xf1c5('0x2b'):_0x467bfc=_0xf1c5('0x2c');break;case _0xf1c5('0x11'):_0x467bfc='BETWEEN\x20?\x20AND\x20?';break;}return _0x467bfc;}function parseValue(_0x48f2bf,_0x4b3802,_0x5b3e5a){var _0x43ccb6={'start':undefined,'end':undefined};switch(_0x4b3802){case'$in':case'$notIn':_0x43ccb6['start']=_0x5b3e5a[_0xf1c5('0x7')](',');break;case'$substring':_0x43ccb6['start']='%'+_0x5b3e5a+'%';break;case'$startsWith':_0x43ccb6[_0xf1c5('0x2d')]=_0x5b3e5a+'%';break;case'$endsWith':_0x43ccb6['start']='%'+_0x5b3e5a;break;case'$between':var _0x121be2=_0x5b3e5a[_0xf1c5('0x7')](',');var _0x5b3e5a=_0x121be2[_0xf1c5('0xa')]();var _0x1bf134=_0x121be2[_0xf1c5('0x2e')]();if(_0x48f2bf===_0xf1c5('0x2f')){_0x5b3e5a=moment(_0x5b3e5a)['utcOffset'](0x0,!![])[_0xf1c5('0x30')]();_0x1bf134=moment(_0x1bf134)[_0xf1c5('0x31')](0x0,!![])[_0xf1c5('0x15')](0x17,_0xf1c5('0x32'))[_0xf1c5('0x15')](0x3b,'minutes')[_0xf1c5('0x15')](0x3b,_0xf1c5('0x33'))[_0xf1c5('0x30')]();}_0x43ccb6={'start':_0x5b3e5a,'end':_0x1bf134};break;default:_0x43ccb6[_0xf1c5('0x2d')]=_0x5b3e5a;break;}return _0x43ccb6;}