1fb8ac9eb825c1660c8d32fb4bc8c62a93354569
[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 _0xc7c9=['[$or]','and','replace','split','slice','match','filter','map','conditions','push','operator','$eq','$between','value','includes','add','days','format','YYYY-MM-DD','castTo','text','CAST(','field','$ne','$notIn','IN\x20?','NOT\x20IN\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','<\x20?','$gt','$lte','$gte','>=\x20?','$in','start','shift','pop','DATE','utcOffset','hours','minutes','lodash','moment','parseSearch','sqlOperator','startsWith'];(function(_0x521929,_0x479be5){var _0x632436=function(_0x288290){while(--_0x288290){_0x521929['push'](_0x521929['shift']());}};_0x632436(++_0x479be5);}(_0xc7c9,0x18b));var _0x9c7c=function(_0x26f3da,_0x9833e){_0x26f3da=_0x26f3da-0x0;var _0x41730c=_0xc7c9[_0x26f3da];return _0x41730c;};'use strict';var _=require(_0x9c7c('0x0'));var moment=require(_0x9c7c('0x1'));exports[_0x9c7c('0x2')]=function(_0x332a05){var _0x242f97={'conditions':[]};_0x242f97[_0x9c7c('0x3')]=_[_0x9c7c('0x4')](_0x332a05,_0x9c7c('0x5'))?'or':_0x9c7c('0x6');var _0x36e8b8=_0x332a05[_0x9c7c('0x7')]('[$and]','')[_0x9c7c('0x7')]('[$or]','')[_0x9c7c('0x8')]('||');for(var _0x2cb00a=0x0;_0x2cb00a<_0x36e8b8['length'];_0x2cb00a++){var _0xfc490=_0x36e8b8[_0x2cb00a][_0x9c7c('0x8')](':=');var _0x229019=_0xfc490[0x0];var _0x54498b=_0xfc490[_0x9c7c('0x9')](0x1);_0x54498b['forEach'](function(_0x249d7c){var _0x2b3aa7=_0x249d7c[_0x9c7c('0x8')]('[')['shift']();var _0x5e850a=_0x249d7c[_0x9c7c('0xa')](/\[(.*?)\]/g);_0x5e850a['forEach'](function(_0x8a27ff){var _0x8d91d5=_0x8a27ff[_0x9c7c('0x8')]('[')[_0x9c7c('0xb')](function(_0x189746){return _0x189746['indexOf'](']')>-0x1;})[_0x9c7c('0xc')](function(_0x59ad2c){return _0x59ad2c[_0x9c7c('0x8')](']')[0x0];})[0x0];_0x242f97[_0x9c7c('0xd')][_0x9c7c('0xe')]({'field':_0x229019,'operator':_0x2b3aa7,'value':_0x8d91d5});});});}return _0x242f97;};exports['buildExpression']=function(_0x5e1578,_0x1d14e5,_0x138895){var _0x580a9a={};if(_0x1d14e5==='DATE'){if(_0x138895[_0x9c7c('0xf')]===_0x9c7c('0x10')){_0x138895[_0x9c7c('0xf')]=_0x9c7c('0x11');_0x138895['value']+=','+_0x138895[_0x9c7c('0x12')];}else if(_[_0x9c7c('0x13')](['$gt','$lte'],_0x138895[_0x9c7c('0xf')])){_0x138895['value']=moment(_0x138895['value'])[_0x9c7c('0x14')](0x1,_0x9c7c('0x15'))[_0x9c7c('0x16')](_0x9c7c('0x17'));}}if(_0x138895[_0x9c7c('0x18')]){_0x1d14e5=_0x138895[_0x9c7c('0x18')];_0x580a9a[_0x9c7c('0x19')]=_0x9c7c('0x1a')+_0x5e1578+'.'+_0x138895[_0x9c7c('0x1b')]+'\x20AS\x20'+_0x138895[_0x9c7c('0x18')]+')\x20'+parseOperator(_0x138895['operator']);}else{_0x580a9a[_0x9c7c('0x19')]=_0x5e1578+'.'+_0x138895[_0x9c7c('0x1b')]+'\x20'+parseOperator(_0x138895[_0x9c7c('0xf')]);}if(_['includes']([_0x9c7c('0x1c'),_0x9c7c('0x1d')],_0x138895[_0x9c7c('0xf')]))_0x580a9a[_0x9c7c('0x19')]='('+_0x580a9a[_0x9c7c('0x19')]+'\x20OR\x20'+_0x5e1578+'.'+_0x138895['field']+'\x20IS\x20NULL)';_0x580a9a['value']=parseValue(_0x1d14e5,_0x138895[_0x9c7c('0xf')],_0x138895[_0x9c7c('0x12')]);return _0x580a9a;};function parseOperator(_0x2bc2d2){var _0x20a4e1;switch(_0x2bc2d2){case'$in':_0x20a4e1=_0x9c7c('0x1e');break;case _0x9c7c('0x1d'):_0x20a4e1=_0x9c7c('0x1f');break;case'$eq':_0x20a4e1='=\x20?';break;case _0x9c7c('0x1c'):_0x20a4e1=_0x9c7c('0x20');break;case _0x9c7c('0x21'):case _0x9c7c('0x22'):case _0x9c7c('0x23'):_0x20a4e1=_0x9c7c('0x24');break;case'$lt':_0x20a4e1=_0x9c7c('0x25');break;case _0x9c7c('0x26'):_0x20a4e1='>\x20?';break;case _0x9c7c('0x27'):_0x20a4e1='<=\x20?';break;case _0x9c7c('0x28'):_0x20a4e1=_0x9c7c('0x29');break;case _0x9c7c('0x11'):_0x20a4e1='BETWEEN\x20?\x20AND\x20?';break;}return _0x20a4e1;}function parseValue(_0x29c394,_0x3b0e21,_0x5b57d0){var _0x43f94a={'start':undefined,'end':undefined};switch(_0x3b0e21){case _0x9c7c('0x2a'):case _0x9c7c('0x1d'):_0x43f94a[_0x9c7c('0x2b')]=_0x5b57d0[_0x9c7c('0x8')](',');break;case _0x9c7c('0x21'):_0x43f94a[_0x9c7c('0x2b')]='%'+_0x5b57d0+'%';break;case _0x9c7c('0x22'):_0x43f94a[_0x9c7c('0x2b')]=_0x5b57d0+'%';break;case _0x9c7c('0x23'):_0x43f94a[_0x9c7c('0x2b')]='%'+_0x5b57d0;break;case _0x9c7c('0x11'):var _0x3dda10=_0x5b57d0[_0x9c7c('0x8')](',');var _0x5b57d0=_0x3dda10[_0x9c7c('0x2c')]();var _0x550405=_0x3dda10[_0x9c7c('0x2d')]();if(_0x29c394===_0x9c7c('0x2e')){_0x5b57d0=moment(_0x5b57d0)[_0x9c7c('0x2f')](0x0,!![])['format']();_0x550405=moment(_0x550405)[_0x9c7c('0x2f')](0x0,!![])['add'](0x17,_0x9c7c('0x30'))[_0x9c7c('0x14')](0x3b,_0x9c7c('0x31'))['add'](0x3b,'seconds')['format']();}_0x43f94a={'start':_0x5b57d0,'end':_0x550405};break;default:_0x43f94a[_0x9c7c('0x2b')]=_0x5b57d0;break;}return _0x43f94a;}