Built motion from commit (unavailable).|2.5.16
[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 _0xcfc5=['shift','match','indexOf','map','push','buildExpression','operator','$eq','$between','value','includes','$gt','$lte','add','days','format','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20IS\x20NULL)','$in','=\x20?','<>\x20?','$substring','$startsWith','LIKE\x20?','$lt','>\x20?','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','pop','DATE','utcOffset','hours','seconds','lodash','moment','parseSearch','[$or]','and','replace','[$and]','split','slice','forEach'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0xcfc5,0x1d3));var _0x5cfc=function(_0x58547b,_0x4b89c2){_0x58547b=_0x58547b-0x0;var _0x1d3fd2=_0xcfc5[_0x58547b];return _0x1d3fd2;};'use strict';var _=require(_0x5cfc('0x0'));var moment=require(_0x5cfc('0x1'));exports[_0x5cfc('0x2')]=function(_0x2ce8d1){var _0x1e8188={'conditions':[]};_0x1e8188['sqlOperator']=_['startsWith'](_0x2ce8d1,_0x5cfc('0x3'))?'or':_0x5cfc('0x4');var _0x5cc289=_0x2ce8d1[_0x5cfc('0x5')](_0x5cfc('0x6'),'')[_0x5cfc('0x5')](_0x5cfc('0x3'),'')['split']('||');for(var _0x5dadb6=0x0;_0x5dadb6<_0x5cc289['length'];_0x5dadb6++){var _0x50b368=_0x5cc289[_0x5dadb6][_0x5cfc('0x7')](':=');var _0x4921ed=_0x50b368[0x0];var _0x5ae901=_0x50b368[_0x5cfc('0x8')](0x1);_0x5ae901[_0x5cfc('0x9')](function(_0x468778){var _0x4294bb=_0x468778[_0x5cfc('0x7')]('[')[_0x5cfc('0xa')]();var _0x1235e1=_0x468778[_0x5cfc('0xb')](/\[(.*?)\]/g);_0x1235e1[_0x5cfc('0x9')](function(_0x18c33f){var _0x1fe55e=_0x18c33f['split']('[')['filter'](function(_0x59d10d){return _0x59d10d[_0x5cfc('0xc')](']')>-0x1;})[_0x5cfc('0xd')](function(_0xa7f905){return _0xa7f905['split'](']')[0x0];})[0x0];_0x1e8188['conditions'][_0x5cfc('0xe')]({'field':_0x4921ed,'operator':_0x4294bb,'value':_0x1fe55e});});});}return _0x1e8188;};exports[_0x5cfc('0xf')]=function(_0x437bc4,_0x1f3f6c,_0x5c582f){var _0xa3c248={};if(_0x1f3f6c==='DATE'){if(_0x5c582f[_0x5cfc('0x10')]===_0x5cfc('0x11')){_0x5c582f[_0x5cfc('0x10')]=_0x5cfc('0x12');_0x5c582f[_0x5cfc('0x13')]+=','+_0x5c582f[_0x5cfc('0x13')];}else if(_[_0x5cfc('0x14')]([_0x5cfc('0x15'),_0x5cfc('0x16')],_0x5c582f[_0x5cfc('0x10')])){_0x5c582f[_0x5cfc('0x13')]=moment(_0x5c582f[_0x5cfc('0x13')])[_0x5cfc('0x17')](0x1,_0x5cfc('0x18'))[_0x5cfc('0x19')](_0x5cfc('0x1a'));}}if(_0x5c582f[_0x5cfc('0x1b')]){_0x1f3f6c=_0x5c582f[_0x5cfc('0x1b')];_0xa3c248[_0x5cfc('0x1c')]=_0x5cfc('0x1d')+_0x437bc4+'.'+_0x5c582f[_0x5cfc('0x1e')]+_0x5cfc('0x1f')+_0x5c582f[_0x5cfc('0x1b')]+')\x20'+parseOperator(_0x5c582f[_0x5cfc('0x10')]);}else{_0xa3c248[_0x5cfc('0x1c')]=_0x437bc4+'.'+_0x5c582f[_0x5cfc('0x1e')]+'\x20'+parseOperator(_0x5c582f[_0x5cfc('0x10')]);}if(_['includes']([_0x5cfc('0x20'),_0x5cfc('0x21')],_0x5c582f[_0x5cfc('0x10')]))_0xa3c248[_0x5cfc('0x1c')]='('+_0xa3c248['text']+'\x20OR\x20'+_0x437bc4+'.'+_0x5c582f[_0x5cfc('0x1e')]+_0x5cfc('0x22');_0xa3c248[_0x5cfc('0x13')]=parseValue(_0x1f3f6c,_0x5c582f[_0x5cfc('0x10')],_0x5c582f[_0x5cfc('0x13')]);return _0xa3c248;};function parseOperator(_0x432fe3){var _0x3aaba0;switch(_0x432fe3){case _0x5cfc('0x23'):_0x3aaba0='IN\x20?';break;case _0x5cfc('0x21'):_0x3aaba0='NOT\x20IN\x20?';break;case _0x5cfc('0x11'):_0x3aaba0=_0x5cfc('0x24');break;case'$ne':_0x3aaba0=_0x5cfc('0x25');break;case _0x5cfc('0x26'):case _0x5cfc('0x27'):case'$endsWith':_0x3aaba0=_0x5cfc('0x28');break;case _0x5cfc('0x29'):_0x3aaba0='<\x20?';break;case _0x5cfc('0x15'):_0x3aaba0=_0x5cfc('0x2a');break;case'$lte':_0x3aaba0=_0x5cfc('0x2b');break;case _0x5cfc('0x2c'):_0x3aaba0=_0x5cfc('0x2d');break;case'$between':_0x3aaba0=_0x5cfc('0x2e');break;}return _0x3aaba0;}function parseValue(_0xee3c,_0x109a75,_0x138f62){var _0x1f4c47={'start':undefined,'end':undefined};switch(_0x109a75){case _0x5cfc('0x23'):case'$notIn':_0x1f4c47[_0x5cfc('0x2f')]=_0x138f62['split'](',');break;case _0x5cfc('0x26'):_0x1f4c47[_0x5cfc('0x2f')]='%'+_0x138f62+'%';break;case _0x5cfc('0x27'):_0x1f4c47[_0x5cfc('0x2f')]=_0x138f62+'%';break;case'$endsWith':_0x1f4c47['start']='%'+_0x138f62;break;case _0x5cfc('0x12'):var _0x17407a=_0x138f62[_0x5cfc('0x7')](',');var _0x138f62=_0x17407a[_0x5cfc('0xa')]();var _0x5de872=_0x17407a[_0x5cfc('0x30')]();if(_0xee3c===_0x5cfc('0x31')){_0x138f62=moment(_0x138f62)[_0x5cfc('0x32')](0x0,!![])[_0x5cfc('0x19')]();_0x5de872=moment(_0x5de872)[_0x5cfc('0x32')](0x0,!![])[_0x5cfc('0x17')](0x17,_0x5cfc('0x33'))[_0x5cfc('0x17')](0x3b,'minutes')['add'](0x3b,_0x5cfc('0x34'))[_0x5cfc('0x19')]();}_0x1f4c47={'start':_0x138f62,'end':_0x5de872};break;default:_0x1f4c47[_0x5cfc('0x2f')]=_0x138f62;break;}return _0x1f4c47;}