Built motion from commit 19a84241.|2.5.34
[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 _0x4221=['indexOf','map','push','buildExpression','operator','$eq','value','includes','$gt','add','format','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$notIn','\x20OR\x20','$in','IN\x20?','NOT\x20IN\x20?','$ne','<>\x20?','$substring','$startsWith','$endsWith','$lt','<\x20?','>\x20?','$lte','<=\x20?','$gte','>=\x20?','$between','start','pop','DATE','utcOffset','minutes','seconds','lodash','parseSearch','startsWith','[$or]','replace','[$and]','split','length','forEach','shift','match','filter'];(function(_0x137fed,_0x247894){var _0x76326e=function(_0x538c00){while(--_0x538c00){_0x137fed['push'](_0x137fed['shift']());}};_0x76326e(++_0x247894);}(_0x4221,0x19c));var _0x1422=function(_0xb1063f,_0x55f339){_0xb1063f=_0xb1063f-0x0;var _0x4f6fb0=_0x4221[_0xb1063f];return _0x4f6fb0;};'use strict';var _=require(_0x1422('0x0'));var moment=require('moment');exports[_0x1422('0x1')]=function(_0x38fe32){var _0x4549c1={'conditions':[]};_0x4549c1['sqlOperator']=_[_0x1422('0x2')](_0x38fe32,_0x1422('0x3'))?'or':'and';var _0x3f49b=_0x38fe32[_0x1422('0x4')](_0x1422('0x5'),'')[_0x1422('0x4')](_0x1422('0x3'),'')[_0x1422('0x6')]('||');for(var _0x506078=0x0;_0x506078<_0x3f49b[_0x1422('0x7')];_0x506078++){var _0x402c4d=_0x3f49b[_0x506078][_0x1422('0x6')](':=');var _0xc1e512=_0x402c4d[0x0];var _0x5648b3=_0x402c4d['slice'](0x1);_0x5648b3[_0x1422('0x8')](function(_0x58887b){var _0x485544=_0x58887b[_0x1422('0x6')]('[')[_0x1422('0x9')]();var _0x515aa8=_0x58887b[_0x1422('0xa')](/\[(.*?)\]/g);_0x515aa8[_0x1422('0x8')](function(_0x41d634){var _0x32e10c=_0x41d634[_0x1422('0x6')]('[')[_0x1422('0xb')](function(_0x12c104){return _0x12c104[_0x1422('0xc')](']')>-0x1;})[_0x1422('0xd')](function(_0x4e24e7){return _0x4e24e7[_0x1422('0x6')](']')[0x0];})[0x0];_0x4549c1['conditions'][_0x1422('0xe')]({'field':_0xc1e512,'operator':_0x485544,'value':_0x32e10c});});});}return _0x4549c1;};exports[_0x1422('0xf')]=function(_0x2cf254,_0x2ed232,_0x5ea2b6){var _0x1b0db2={};if(_0x2ed232==='DATE'){if(_0x5ea2b6[_0x1422('0x10')]===_0x1422('0x11')){_0x5ea2b6[_0x1422('0x10')]='$between';_0x5ea2b6['value']+=','+_0x5ea2b6[_0x1422('0x12')];}else if(_[_0x1422('0x13')]([_0x1422('0x14'),'$lte'],_0x5ea2b6['operator'])){_0x5ea2b6['value']=moment(_0x5ea2b6[_0x1422('0x12')])[_0x1422('0x15')](0x1,'days')[_0x1422('0x16')](_0x1422('0x17'));}}if(_0x5ea2b6[_0x1422('0x18')]){_0x2ed232=_0x5ea2b6[_0x1422('0x18')];_0x1b0db2[_0x1422('0x19')]=_0x1422('0x1a')+_0x2cf254+'.'+_0x5ea2b6[_0x1422('0x1b')]+_0x1422('0x1c')+_0x5ea2b6[_0x1422('0x18')]+')\x20'+parseOperator(_0x5ea2b6[_0x1422('0x10')]);}else{_0x1b0db2[_0x1422('0x19')]=_0x2cf254+'.'+_0x5ea2b6['field']+'\x20'+parseOperator(_0x5ea2b6['operator']);}if(_[_0x1422('0x13')](['$ne',_0x1422('0x1d')],_0x5ea2b6[_0x1422('0x10')]))_0x1b0db2[_0x1422('0x19')]='('+_0x1b0db2[_0x1422('0x19')]+_0x1422('0x1e')+_0x2cf254+'.'+_0x5ea2b6[_0x1422('0x1b')]+'\x20IS\x20NULL)';_0x1b0db2['value']=parseValue(_0x2ed232,_0x5ea2b6['operator'],_0x5ea2b6[_0x1422('0x12')]);return _0x1b0db2;};function parseOperator(_0x505e30){var _0x172213;switch(_0x505e30){case _0x1422('0x1f'):_0x172213=_0x1422('0x20');break;case _0x1422('0x1d'):_0x172213=_0x1422('0x21');break;case'$eq':_0x172213='=\x20?';break;case _0x1422('0x22'):_0x172213=_0x1422('0x23');break;case _0x1422('0x24'):case _0x1422('0x25'):case _0x1422('0x26'):_0x172213='LIKE\x20?';break;case _0x1422('0x27'):_0x172213=_0x1422('0x28');break;case _0x1422('0x14'):_0x172213=_0x1422('0x29');break;case _0x1422('0x2a'):_0x172213=_0x1422('0x2b');break;case _0x1422('0x2c'):_0x172213=_0x1422('0x2d');break;case _0x1422('0x2e'):_0x172213='BETWEEN\x20?\x20AND\x20?';break;}return _0x172213;}function parseValue(_0x3e370b,_0x2ee1ee,_0x55d8e9){var _0x192877={'start':undefined,'end':undefined};switch(_0x2ee1ee){case _0x1422('0x1f'):case _0x1422('0x1d'):_0x192877[_0x1422('0x2f')]=_0x55d8e9[_0x1422('0x6')](',');break;case _0x1422('0x24'):_0x192877[_0x1422('0x2f')]='%'+_0x55d8e9+'%';break;case _0x1422('0x25'):_0x192877[_0x1422('0x2f')]=_0x55d8e9+'%';break;case _0x1422('0x26'):_0x192877[_0x1422('0x2f')]='%'+_0x55d8e9;break;case _0x1422('0x2e'):var _0x37cc3c=_0x55d8e9[_0x1422('0x6')](',');var _0x55d8e9=_0x37cc3c['shift']();var _0x27aa2e=_0x37cc3c[_0x1422('0x30')]();if(_0x3e370b===_0x1422('0x31')){_0x55d8e9=moment(_0x55d8e9)[_0x1422('0x32')](0x0,!![])[_0x1422('0x16')]();_0x27aa2e=moment(_0x27aa2e)[_0x1422('0x32')](0x0,!![])[_0x1422('0x15')](0x17,'hours')[_0x1422('0x15')](0x3b,_0x1422('0x33'))['add'](0x3b,_0x1422('0x34'))['format']();}_0x192877={'start':_0x55d8e9,'end':_0x27aa2e};break;default:_0x192877[_0x1422('0x2f')]=_0x55d8e9;break;}return _0x192877;}