f115b46e64a2f0b023b2c92a16cb478078a7a1d2
[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 _0xcccd=['days','format','YYYY-MM-DD','castTo','CAST(','\x20AS\x20','text','field','includes','$ne','$notIn','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','$between','pop','utcOffset','minutes','seconds','lodash','moment','parseSearch','sqlOperator','startsWith','[$or]','replace','[$and]','split','slice','shift','match','forEach','map','push','buildExpression','DATE','operator','$eq','value','$gt','$lte','add'];(function(_0x15c421,_0x6366f7){var _0x5e5ed5=function(_0x206e66){while(--_0x206e66){_0x15c421['push'](_0x15c421['shift']());}};_0x5e5ed5(++_0x6366f7);}(_0xcccd,0x171));var _0xdccc=function(_0x3f02a3,_0x3fa603){_0x3f02a3=_0x3f02a3-0x0;var _0x2aa265=_0xcccd[_0x3f02a3];return _0x2aa265;};'use strict';var _=require(_0xdccc('0x0'));var moment=require(_0xdccc('0x1'));exports[_0xdccc('0x2')]=function(_0x13077a){var _0x1a16b3={'conditions':[]};_0x1a16b3[_0xdccc('0x3')]=_[_0xdccc('0x4')](_0x13077a,_0xdccc('0x5'))?'or':'and';var _0x11413c=_0x13077a[_0xdccc('0x6')](_0xdccc('0x7'),'')['replace']('[$or]','')[_0xdccc('0x8')]('||');for(var _0xbd4307=0x0;_0xbd4307<_0x11413c['length'];_0xbd4307++){var _0x26b44d=_0x11413c[_0xbd4307][_0xdccc('0x8')](':=');var _0xd37128=_0x26b44d[0x0];var _0x452d02=_0x26b44d[_0xdccc('0x9')](0x1);_0x452d02['forEach'](function(_0x2a8418){var _0x49d4b8=_0x2a8418[_0xdccc('0x8')]('[')[_0xdccc('0xa')]();var _0x58a26e=_0x2a8418[_0xdccc('0xb')](/\[(.*?)\]/g);_0x58a26e[_0xdccc('0xc')](function(_0x4911c8){var _0x44bf8d=_0x4911c8[_0xdccc('0x8')]('[')['filter'](function(_0x3ae6f9){return _0x3ae6f9['indexOf'](']')>-0x1;})[_0xdccc('0xd')](function(_0x2be29a){return _0x2be29a[_0xdccc('0x8')](']')[0x0];})[0x0];_0x1a16b3['conditions'][_0xdccc('0xe')]({'field':_0xd37128,'operator':_0x49d4b8,'value':_0x44bf8d});});});}return _0x1a16b3;};exports[_0xdccc('0xf')]=function(_0x41f4a0,_0x44470d,_0x2cf3c3){var _0x593dc5={};if(_0x44470d===_0xdccc('0x10')){if(_0x2cf3c3[_0xdccc('0x11')]===_0xdccc('0x12')){_0x2cf3c3[_0xdccc('0x11')]='$between';_0x2cf3c3[_0xdccc('0x13')]+=','+_0x2cf3c3['value'];}else if(_['includes']([_0xdccc('0x14'),_0xdccc('0x15')],_0x2cf3c3[_0xdccc('0x11')])){_0x2cf3c3[_0xdccc('0x13')]=moment(_0x2cf3c3[_0xdccc('0x13')])[_0xdccc('0x16')](0x1,_0xdccc('0x17'))[_0xdccc('0x18')](_0xdccc('0x19'));}}if(_0x2cf3c3[_0xdccc('0x1a')]){_0x44470d=_0x2cf3c3[_0xdccc('0x1a')];_0x593dc5['text']=_0xdccc('0x1b')+_0x41f4a0+'.'+_0x2cf3c3['field']+_0xdccc('0x1c')+_0x2cf3c3[_0xdccc('0x1a')]+')\x20'+parseOperator(_0x2cf3c3['operator']);}else{_0x593dc5[_0xdccc('0x1d')]=_0x41f4a0+'.'+_0x2cf3c3[_0xdccc('0x1e')]+'\x20'+parseOperator(_0x2cf3c3[_0xdccc('0x11')]);}if(_[_0xdccc('0x1f')]([_0xdccc('0x20'),_0xdccc('0x21')],_0x2cf3c3['operator']))_0x593dc5['text']='('+_0x593dc5[_0xdccc('0x1d')]+'\x20OR\x20'+_0x41f4a0+'.'+_0x2cf3c3[_0xdccc('0x1e')]+_0xdccc('0x22');_0x593dc5[_0xdccc('0x13')]=parseValue(_0x44470d,_0x2cf3c3[_0xdccc('0x11')],_0x2cf3c3[_0xdccc('0x13')]);return _0x593dc5;};function parseOperator(_0x2c711a){var _0x5504ba;switch(_0x2c711a){case _0xdccc('0x23'):_0x5504ba=_0xdccc('0x24');break;case _0xdccc('0x21'):_0x5504ba=_0xdccc('0x25');break;case'$eq':_0x5504ba='=\x20?';break;case _0xdccc('0x20'):_0x5504ba=_0xdccc('0x26');break;case _0xdccc('0x27'):case _0xdccc('0x28'):case _0xdccc('0x29'):_0x5504ba=_0xdccc('0x2a');break;case _0xdccc('0x2b'):_0x5504ba=_0xdccc('0x2c');break;case _0xdccc('0x14'):_0x5504ba=_0xdccc('0x2d');break;case _0xdccc('0x15'):_0x5504ba=_0xdccc('0x2e');break;case _0xdccc('0x2f'):_0x5504ba=_0xdccc('0x30');break;case'$between':_0x5504ba=_0xdccc('0x31');break;}return _0x5504ba;}function parseValue(_0x141ec9,_0x1845f7,_0x3dfec7){var _0xe6a0a={'start':undefined,'end':undefined};switch(_0x1845f7){case _0xdccc('0x23'):case'$notIn':_0xe6a0a['start']=_0x3dfec7[_0xdccc('0x8')](',');break;case _0xdccc('0x27'):_0xe6a0a[_0xdccc('0x32')]='%'+_0x3dfec7+'%';break;case _0xdccc('0x28'):_0xe6a0a[_0xdccc('0x32')]=_0x3dfec7+'%';break;case'$endsWith':_0xe6a0a['start']='%'+_0x3dfec7;break;case _0xdccc('0x33'):var _0x16be44=_0x3dfec7['split'](',');var _0x3dfec7=_0x16be44[_0xdccc('0xa')]();var _0xb04901=_0x16be44[_0xdccc('0x34')]();if(_0x141ec9===_0xdccc('0x10')){_0x3dfec7=moment(_0x3dfec7)[_0xdccc('0x35')](0x0,!![])['format']();_0xb04901=moment(_0xb04901)[_0xdccc('0x35')](0x0,!![])['add'](0x17,'hours')[_0xdccc('0x16')](0x3b,_0xdccc('0x36'))[_0xdccc('0x16')](0x3b,_0xdccc('0x37'))[_0xdccc('0x18')]();}_0xe6a0a={'start':_0x3dfec7,'end':_0xb04901};break;default:_0xe6a0a['start']=_0x3dfec7;break;}return _0xe6a0a;}