f7022e125bd8def8d9c06334504fb346f32a02bb
[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 _0xabe8=['YYYY-MM-DD','castTo','CAST(','field','\x20AS\x20','text','$ne','$notIn','\x20OR\x20','$in','$eq','=\x20?','<>\x20?','$startsWith','$endsWith','$lt','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','$substring','utcOffset','format','hours','minutes','lodash','moment','parseSearch','sqlOperator','and','[$and]','replace','[$or]','split','length','shift','forEach','filter','conditions','push','DATE','operator','$between','value','includes','$gt','$lte','add','days'];(function(_0x52b8eb,_0x395554){var _0x4b2c00=function(_0x4559bd){while(--_0x4559bd){_0x52b8eb['push'](_0x52b8eb['shift']());}};_0x4b2c00(++_0x395554);}(_0xabe8,0x154));var _0x8abe=function(_0x48849d,_0x4856a4){_0x48849d=_0x48849d-0x0;var _0x507751=_0xabe8[_0x48849d];return _0x507751;};'use strict';var _=require(_0x8abe('0x0'));var moment=require(_0x8abe('0x1'));exports[_0x8abe('0x2')]=function(_0xf86594){var _0x3c2813={'conditions':[]};_0x3c2813[_0x8abe('0x3')]=_['startsWith'](_0xf86594,'[$or]')?'or':_0x8abe('0x4');var _0x17cd1f=_0xf86594['replace'](_0x8abe('0x5'),'')[_0x8abe('0x6')](_0x8abe('0x7'),'')[_0x8abe('0x8')]('||');for(var _0x50e8fb=0x0;_0x50e8fb<_0x17cd1f[_0x8abe('0x9')];_0x50e8fb++){var _0x44c853=_0x17cd1f[_0x50e8fb]['split'](':=');var _0x2b63d0=_0x44c853[0x0];var _0x56f5d7=_0x44c853['slice'](0x1);_0x56f5d7['forEach'](function(_0x4d66e1){var _0x34435a=_0x4d66e1[_0x8abe('0x8')]('[')[_0x8abe('0xa')]();var _0x3f5c7b=_0x4d66e1['match'](/\[(.*?)\]/g);_0x3f5c7b[_0x8abe('0xb')](function(_0x3299b5){var _0x3476d5=_0x3299b5['split']('[')[_0x8abe('0xc')](function(_0x2b87b4){return _0x2b87b4['indexOf'](']')>-0x1;})['map'](function(_0x59f791){return _0x59f791[_0x8abe('0x8')](']')[0x0];})[0x0];_0x3c2813[_0x8abe('0xd')][_0x8abe('0xe')]({'field':_0x2b63d0,'operator':_0x34435a,'value':_0x3476d5});});});}return _0x3c2813;};exports['buildExpression']=function(_0x1a3a8b,_0x3af8ae,_0x38fbd4){var _0x348a2e={};if(_0x3af8ae===_0x8abe('0xf')){if(_0x38fbd4[_0x8abe('0x10')]==='$eq'){_0x38fbd4[_0x8abe('0x10')]=_0x8abe('0x11');_0x38fbd4['value']+=','+_0x38fbd4[_0x8abe('0x12')];}else if(_[_0x8abe('0x13')]([_0x8abe('0x14'),_0x8abe('0x15')],_0x38fbd4[_0x8abe('0x10')])){_0x38fbd4[_0x8abe('0x12')]=moment(_0x38fbd4[_0x8abe('0x12')])[_0x8abe('0x16')](0x1,_0x8abe('0x17'))['format'](_0x8abe('0x18'));}}if(_0x38fbd4[_0x8abe('0x19')]){_0x3af8ae=_0x38fbd4[_0x8abe('0x19')];_0x348a2e['text']=_0x8abe('0x1a')+_0x1a3a8b+'.'+_0x38fbd4[_0x8abe('0x1b')]+_0x8abe('0x1c')+_0x38fbd4[_0x8abe('0x19')]+')\x20'+parseOperator(_0x38fbd4['operator']);}else{_0x348a2e[_0x8abe('0x1d')]=_0x1a3a8b+'.'+_0x38fbd4[_0x8abe('0x1b')]+'\x20'+parseOperator(_0x38fbd4[_0x8abe('0x10')]);}if(_[_0x8abe('0x13')]([_0x8abe('0x1e'),_0x8abe('0x1f')],_0x38fbd4['operator']))_0x348a2e['text']='('+_0x348a2e[_0x8abe('0x1d')]+_0x8abe('0x20')+_0x1a3a8b+'.'+_0x38fbd4['field']+'\x20IS\x20NULL)';_0x348a2e[_0x8abe('0x12')]=parseValue(_0x3af8ae,_0x38fbd4[_0x8abe('0x10')],_0x38fbd4[_0x8abe('0x12')]);return _0x348a2e;};function parseOperator(_0x2945e9){var _0x4cf5d4;switch(_0x2945e9){case _0x8abe('0x21'):_0x4cf5d4='IN\x20?';break;case _0x8abe('0x1f'):_0x4cf5d4='NOT\x20IN\x20?';break;case _0x8abe('0x22'):_0x4cf5d4=_0x8abe('0x23');break;case _0x8abe('0x1e'):_0x4cf5d4=_0x8abe('0x24');break;case'$substring':case _0x8abe('0x25'):case _0x8abe('0x26'):_0x4cf5d4='LIKE\x20?';break;case _0x8abe('0x27'):_0x4cf5d4=_0x8abe('0x28');break;case _0x8abe('0x14'):_0x4cf5d4=_0x8abe('0x29');break;case _0x8abe('0x15'):_0x4cf5d4=_0x8abe('0x2a');break;case _0x8abe('0x2b'):_0x4cf5d4=_0x8abe('0x2c');break;case'$between':_0x4cf5d4=_0x8abe('0x2d');break;}return _0x4cf5d4;}function parseValue(_0x53017a,_0x8f57d7,_0x15c424){var _0x4de8b1={'start':undefined,'end':undefined};switch(_0x8f57d7){case'$in':case _0x8abe('0x1f'):_0x4de8b1[_0x8abe('0x2e')]=_0x15c424[_0x8abe('0x8')](',');break;case _0x8abe('0x2f'):_0x4de8b1[_0x8abe('0x2e')]='%'+_0x15c424+'%';break;case _0x8abe('0x25'):_0x4de8b1['start']=_0x15c424+'%';break;case _0x8abe('0x26'):_0x4de8b1[_0x8abe('0x2e')]='%'+_0x15c424;break;case _0x8abe('0x11'):var _0x4c3932=_0x15c424['split'](',');var _0x15c424=_0x4c3932[_0x8abe('0xa')]();var _0x1f1076=_0x4c3932['pop']();if(_0x53017a===_0x8abe('0xf')){_0x15c424=moment(_0x15c424)[_0x8abe('0x30')](0x0,!![])[_0x8abe('0x31')]();_0x1f1076=moment(_0x1f1076)[_0x8abe('0x30')](0x0,!![])[_0x8abe('0x16')](0x17,_0x8abe('0x32'))[_0x8abe('0x16')](0x3b,_0x8abe('0x33'))['add'](0x3b,'seconds')[_0x8abe('0x31')]();}_0x4de8b1={'start':_0x15c424,'end':_0x1f1076};break;default:_0x4de8b1[_0x8abe('0x2e')]=_0x15c424;break;}return _0x4de8b1;}