937dfcc1a1b6e07a8cbb4e5601f3f6758dee1e46
[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 _0x8a8d=['parseSearch','sqlOperator','startsWith','replace','[$and]','[$or]','split','shift','match','indexOf','map','push','buildExpression','DATE','$eq','operator','$between','value','includes','$gt','$lte','add','format','castTo','text','CAST(','field','\x20AS\x20','$ne','\x20OR\x20','NOT\x20IN\x20?','=\x20?','$startsWith','$endsWith','$lt','<\x20?','<=\x20?','$gte','>=\x20?','$notIn','start','$substring','pop','utcOffset','hours','minutes','seconds','lodash','moment'];(function(_0x29fa5f,_0x457445){var _0x6bb4ff=function(_0xa737ea){while(--_0xa737ea){_0x29fa5f['push'](_0x29fa5f['shift']());}};_0x6bb4ff(++_0x457445);}(_0x8a8d,0x124));var _0xd8a8=function(_0x4f7b58,_0x1ee1eb){_0x4f7b58=_0x4f7b58-0x0;var _0x9fb36=_0x8a8d[_0x4f7b58];return _0x9fb36;};'use strict';var _=require(_0xd8a8('0x0'));var moment=require(_0xd8a8('0x1'));exports[_0xd8a8('0x2')]=function(_0x3205f5){var _0x447087={'conditions':[]};_0x447087[_0xd8a8('0x3')]=_[_0xd8a8('0x4')](_0x3205f5,'[$or]')?'or':'and';var _0x56f862=_0x3205f5[_0xd8a8('0x5')](_0xd8a8('0x6'),'')[_0xd8a8('0x5')](_0xd8a8('0x7'),'')[_0xd8a8('0x8')]('||');for(var _0x3aece1=0x0;_0x3aece1<_0x56f862['length'];_0x3aece1++){var _0x274572=_0x56f862[_0x3aece1][_0xd8a8('0x8')](':=');var _0x2a0af6=_0x274572[0x0];var _0x5294ce=_0x274572['slice'](0x1);_0x5294ce['forEach'](function(_0x51eb48){var _0x37bbd0=_0x51eb48[_0xd8a8('0x8')]('[')[_0xd8a8('0x9')]();var _0x1101e1=_0x51eb48[_0xd8a8('0xa')](/\[(.*?)\]/g);_0x1101e1['forEach'](function(_0x3fad57){var _0x287500=_0x3fad57['split']('[')['filter'](function(_0x5a0623){return _0x5a0623[_0xd8a8('0xb')](']')>-0x1;})[_0xd8a8('0xc')](function(_0x3d3a65){return _0x3d3a65[_0xd8a8('0x8')](']')[0x0];})[0x0];_0x447087['conditions'][_0xd8a8('0xd')]({'field':_0x2a0af6,'operator':_0x37bbd0,'value':_0x287500});});});}return _0x447087;};exports[_0xd8a8('0xe')]=function(_0x1d932d,_0x32eec4,_0x10ed82){var _0x5a2425={};if(_0x32eec4===_0xd8a8('0xf')){if(_0x10ed82['operator']===_0xd8a8('0x10')){_0x10ed82[_0xd8a8('0x11')]=_0xd8a8('0x12');_0x10ed82['value']+=','+_0x10ed82[_0xd8a8('0x13')];}else if(_[_0xd8a8('0x14')]([_0xd8a8('0x15'),_0xd8a8('0x16')],_0x10ed82[_0xd8a8('0x11')])){_0x10ed82['value']=moment(_0x10ed82[_0xd8a8('0x13')])[_0xd8a8('0x17')](0x1,'days')[_0xd8a8('0x18')]('YYYY-MM-DD');}}if(_0x10ed82[_0xd8a8('0x19')]){_0x32eec4=_0x10ed82[_0xd8a8('0x19')];_0x5a2425[_0xd8a8('0x1a')]=_0xd8a8('0x1b')+_0x1d932d+'.'+_0x10ed82[_0xd8a8('0x1c')]+_0xd8a8('0x1d')+_0x10ed82[_0xd8a8('0x19')]+')\x20'+parseOperator(_0x10ed82[_0xd8a8('0x11')]);}else{_0x5a2425[_0xd8a8('0x1a')]=_0x1d932d+'.'+_0x10ed82[_0xd8a8('0x1c')]+'\x20'+parseOperator(_0x10ed82['operator']);}if(_[_0xd8a8('0x14')]([_0xd8a8('0x1e'),'$notIn'],_0x10ed82['operator']))_0x5a2425[_0xd8a8('0x1a')]='('+_0x5a2425[_0xd8a8('0x1a')]+_0xd8a8('0x1f')+_0x1d932d+'.'+_0x10ed82[_0xd8a8('0x1c')]+'\x20IS\x20NULL)';_0x5a2425[_0xd8a8('0x13')]=parseValue(_0x32eec4,_0x10ed82[_0xd8a8('0x11')],_0x10ed82[_0xd8a8('0x13')]);return _0x5a2425;};function parseOperator(_0x4e822d){var _0x4ca1f9;switch(_0x4e822d){case'$in':_0x4ca1f9='IN\x20?';break;case'$notIn':_0x4ca1f9=_0xd8a8('0x20');break;case _0xd8a8('0x10'):_0x4ca1f9=_0xd8a8('0x21');break;case _0xd8a8('0x1e'):_0x4ca1f9='<>\x20?';break;case'$substring':case _0xd8a8('0x22'):case _0xd8a8('0x23'):_0x4ca1f9='LIKE\x20?';break;case _0xd8a8('0x24'):_0x4ca1f9=_0xd8a8('0x25');break;case _0xd8a8('0x15'):_0x4ca1f9='>\x20?';break;case _0xd8a8('0x16'):_0x4ca1f9=_0xd8a8('0x26');break;case _0xd8a8('0x27'):_0x4ca1f9=_0xd8a8('0x28');break;case'$between':_0x4ca1f9='BETWEEN\x20?\x20AND\x20?';break;}return _0x4ca1f9;}function parseValue(_0x2c9ba3,_0x18c0c5,_0x29ff00){var _0x1ab125={'start':undefined,'end':undefined};switch(_0x18c0c5){case'$in':case _0xd8a8('0x29'):_0x1ab125[_0xd8a8('0x2a')]=_0x29ff00[_0xd8a8('0x8')](',');break;case _0xd8a8('0x2b'):_0x1ab125[_0xd8a8('0x2a')]='%'+_0x29ff00+'%';break;case _0xd8a8('0x22'):_0x1ab125[_0xd8a8('0x2a')]=_0x29ff00+'%';break;case _0xd8a8('0x23'):_0x1ab125[_0xd8a8('0x2a')]='%'+_0x29ff00;break;case'$between':var _0x34ee2c=_0x29ff00[_0xd8a8('0x8')](',');var _0x29ff00=_0x34ee2c[_0xd8a8('0x9')]();var _0x5540ca=_0x34ee2c[_0xd8a8('0x2c')]();if(_0x2c9ba3===_0xd8a8('0xf')){_0x29ff00=moment(_0x29ff00)[_0xd8a8('0x2d')](0x0,!![])[_0xd8a8('0x18')]();_0x5540ca=moment(_0x5540ca)[_0xd8a8('0x2d')](0x0,!![])[_0xd8a8('0x17')](0x17,_0xd8a8('0x2e'))['add'](0x3b,_0xd8a8('0x2f'))['add'](0x3b,_0xd8a8('0x30'))[_0xd8a8('0x18')]();}_0x1ab125={'start':_0x29ff00,'end':_0x5540ca};break;default:_0x1ab125['start']=_0x29ff00;break;}return _0x1ab125;}