Built motion from commit (unavailable).|2.4.17
[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 _0x6c09=['DATE','utcOffset','format','minutes','seconds','lodash','moment','sqlOperator','startsWith','[$or]','and','replace','split','slice','forEach','match','indexOf','map','conditions','buildExpression','operator','$between','value','includes','$gt','$lte','add','days','castTo','text','CAST(','field','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','NOT\x20IN\x20?','$eq','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','>\x20?','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','$in','start','shift','pop'];(function(_0x4a3b4b,_0x1319d4){var _0x334c77=function(_0x5e48f1){while(--_0x5e48f1){_0x4a3b4b['push'](_0x4a3b4b['shift']());}};_0x334c77(++_0x1319d4);}(_0x6c09,0x178));var _0x96c0=function(_0x32d0c8,_0x3c0c6d){_0x32d0c8=_0x32d0c8-0x0;var _0x412f5b=_0x6c09[_0x32d0c8];return _0x412f5b;};'use strict';var _=require(_0x96c0('0x0'));var moment=require(_0x96c0('0x1'));exports['parseSearch']=function(_0xa0260d){var _0x170add={'conditions':[]};_0x170add[_0x96c0('0x2')]=_[_0x96c0('0x3')](_0xa0260d,_0x96c0('0x4'))?'or':_0x96c0('0x5');var _0x3f37df=_0xa0260d[_0x96c0('0x6')]('[$and]','')[_0x96c0('0x6')]('[$or]','')[_0x96c0('0x7')]('||');for(var _0x2308d2=0x0;_0x2308d2<_0x3f37df['length'];_0x2308d2++){var _0x3fb701=_0x3f37df[_0x2308d2][_0x96c0('0x7')](':=');var _0x1122e5=_0x3fb701[0x0];var _0x52cbce=_0x3fb701[_0x96c0('0x8')](0x1);_0x52cbce[_0x96c0('0x9')](function(_0x4b260f){var _0x50cb64=_0x4b260f['split']('[')['shift']();var _0x1f4ebc=_0x4b260f[_0x96c0('0xa')](/\[(.*?)\]/g);_0x1f4ebc[_0x96c0('0x9')](function(_0x267504){var _0x247aa6=_0x267504[_0x96c0('0x7')]('[')['filter'](function(_0x92c165){return _0x92c165[_0x96c0('0xb')](']')>-0x1;})[_0x96c0('0xc')](function(_0x867aa3){return _0x867aa3[_0x96c0('0x7')](']')[0x0];})[0x0];_0x170add[_0x96c0('0xd')]['push']({'field':_0x1122e5,'operator':_0x50cb64,'value':_0x247aa6});});});}return _0x170add;};exports[_0x96c0('0xe')]=function(_0x151c8f,_0x1f3982,_0x18eba5){var _0x316388={};if(_0x1f3982==='DATE'){if(_0x18eba5[_0x96c0('0xf')]==='$eq'){_0x18eba5[_0x96c0('0xf')]=_0x96c0('0x10');_0x18eba5['value']+=','+_0x18eba5[_0x96c0('0x11')];}else if(_[_0x96c0('0x12')]([_0x96c0('0x13'),_0x96c0('0x14')],_0x18eba5[_0x96c0('0xf')])){_0x18eba5[_0x96c0('0x11')]=moment(_0x18eba5[_0x96c0('0x11')])[_0x96c0('0x15')](0x1,_0x96c0('0x16'))['format']('YYYY-MM-DD');}}if(_0x18eba5[_0x96c0('0x17')]){_0x1f3982=_0x18eba5[_0x96c0('0x17')];_0x316388[_0x96c0('0x18')]=_0x96c0('0x19')+_0x151c8f+'.'+_0x18eba5[_0x96c0('0x1a')]+'\x20AS\x20'+_0x18eba5[_0x96c0('0x17')]+')\x20'+parseOperator(_0x18eba5[_0x96c0('0xf')]);}else{_0x316388[_0x96c0('0x18')]=_0x151c8f+'.'+_0x18eba5['field']+'\x20'+parseOperator(_0x18eba5[_0x96c0('0xf')]);}if(_['includes']([_0x96c0('0x1b'),_0x96c0('0x1c')],_0x18eba5[_0x96c0('0xf')]))_0x316388[_0x96c0('0x18')]='('+_0x316388[_0x96c0('0x18')]+_0x96c0('0x1d')+_0x151c8f+'.'+_0x18eba5[_0x96c0('0x1a')]+_0x96c0('0x1e');_0x316388[_0x96c0('0x11')]=parseValue(_0x1f3982,_0x18eba5[_0x96c0('0xf')],_0x18eba5[_0x96c0('0x11')]);return _0x316388;};function parseOperator(_0x86c436){var _0x569326;switch(_0x86c436){case'$in':_0x569326='IN\x20?';break;case _0x96c0('0x1c'):_0x569326=_0x96c0('0x1f');break;case _0x96c0('0x20'):_0x569326=_0x96c0('0x21');break;case _0x96c0('0x1b'):_0x569326=_0x96c0('0x22');break;case _0x96c0('0x23'):case _0x96c0('0x24'):case _0x96c0('0x25'):_0x569326=_0x96c0('0x26');break;case'$lt':_0x569326='<\x20?';break;case _0x96c0('0x13'):_0x569326=_0x96c0('0x27');break;case _0x96c0('0x14'):_0x569326=_0x96c0('0x28');break;case _0x96c0('0x29'):_0x569326=_0x96c0('0x2a');break;case _0x96c0('0x10'):_0x569326=_0x96c0('0x2b');break;}return _0x569326;}function parseValue(_0x5aade0,_0x2b382a,_0x2d8eec){var _0xcdce2e={'start':undefined,'end':undefined};switch(_0x2b382a){case _0x96c0('0x2c'):case'$notIn':_0xcdce2e[_0x96c0('0x2d')]=_0x2d8eec[_0x96c0('0x7')](',');break;case _0x96c0('0x23'):_0xcdce2e[_0x96c0('0x2d')]='%'+_0x2d8eec+'%';break;case _0x96c0('0x24'):_0xcdce2e['start']=_0x2d8eec+'%';break;case _0x96c0('0x25'):_0xcdce2e[_0x96c0('0x2d')]='%'+_0x2d8eec;break;case _0x96c0('0x10'):var _0x5bb59f=_0x2d8eec[_0x96c0('0x7')](',');var _0x2d8eec=_0x5bb59f[_0x96c0('0x2e')]();var _0x170c64=_0x5bb59f[_0x96c0('0x2f')]();if(_0x5aade0===_0x96c0('0x30')){_0x2d8eec=moment(_0x2d8eec)[_0x96c0('0x31')](0x0,!![])[_0x96c0('0x32')]();_0x170c64=moment(_0x170c64)['utcOffset'](0x0,!![])[_0x96c0('0x15')](0x17,'hours')[_0x96c0('0x15')](0x3b,_0x96c0('0x33'))[_0x96c0('0x15')](0x3b,_0x96c0('0x34'))[_0x96c0('0x32')]();}_0xcdce2e={'start':_0x2d8eec,'end':_0x170c64};break;default:_0xcdce2e[_0x96c0('0x2d')]=_0x2d8eec;break;}return _0xcdce2e;}