Built motion from commit 994c64e1.|2.6.1
[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 _0xe617=['[$or]','and','replace','split','slice','forEach','match','filter','indexOf','map','conditions','push','DATE','operator','value','$gt','$lte','add','format','YYYY-MM-DD','castTo','text','field','\x20AS\x20','$ne','$notIn','$in','IN\x20?','$eq','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','$lt','<\x20?','>\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','utcOffset','hours','minutes','seconds','lodash','moment','sqlOperator'];(function(_0xf0bc07,_0x510ebf){var _0x1c50c2=function(_0x2e2bdf){while(--_0x2e2bdf){_0xf0bc07['push'](_0xf0bc07['shift']());}};_0x1c50c2(++_0x510ebf);}(_0xe617,0x185));var _0x7e61=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe617[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x7e61('0x0'));var moment=require(_0x7e61('0x1'));exports['parseSearch']=function(_0x31a168){var _0x2b9c05={'conditions':[]};_0x2b9c05[_0x7e61('0x2')]=_['startsWith'](_0x31a168,_0x7e61('0x3'))?'or':_0x7e61('0x4');var _0x17564b=_0x31a168[_0x7e61('0x5')]('[$and]','')['replace'](_0x7e61('0x3'),'')['split']('||');for(var _0x564a79=0x0;_0x564a79<_0x17564b['length'];_0x564a79++){var _0x120038=_0x17564b[_0x564a79][_0x7e61('0x6')](':=');var _0x49a7e6=_0x120038[0x0];var _0x3d998e=_0x120038[_0x7e61('0x7')](0x1);_0x3d998e[_0x7e61('0x8')](function(_0x350186){var _0x87c2c=_0x350186[_0x7e61('0x6')]('[')['shift']();var _0x3caceb=_0x350186[_0x7e61('0x9')](/\[(.*?)\]/g);_0x3caceb[_0x7e61('0x8')](function(_0x545462){var _0x2acd56=_0x545462[_0x7e61('0x6')]('[')[_0x7e61('0xa')](function(_0x4c7925){return _0x4c7925[_0x7e61('0xb')](']')>-0x1;})[_0x7e61('0xc')](function(_0x1116ce){return _0x1116ce['split'](']')[0x0];})[0x0];_0x2b9c05[_0x7e61('0xd')][_0x7e61('0xe')]({'field':_0x49a7e6,'operator':_0x87c2c,'value':_0x2acd56});});});}return _0x2b9c05;};exports['buildExpression']=function(_0x453599,_0x192e75,_0x1be9b2){var _0x4948f5={};if(_0x192e75===_0x7e61('0xf')){if(_0x1be9b2[_0x7e61('0x10')]==='$eq'){_0x1be9b2[_0x7e61('0x10')]='$between';_0x1be9b2[_0x7e61('0x11')]+=','+_0x1be9b2[_0x7e61('0x11')];}else if(_['includes']([_0x7e61('0x12'),_0x7e61('0x13')],_0x1be9b2[_0x7e61('0x10')])){_0x1be9b2[_0x7e61('0x11')]=moment(_0x1be9b2[_0x7e61('0x11')])[_0x7e61('0x14')](0x1,'days')[_0x7e61('0x15')](_0x7e61('0x16'));}}if(_0x1be9b2[_0x7e61('0x17')]){_0x192e75=_0x1be9b2['castTo'];_0x4948f5[_0x7e61('0x18')]='CAST('+_0x453599+'.'+_0x1be9b2[_0x7e61('0x19')]+_0x7e61('0x1a')+_0x1be9b2[_0x7e61('0x17')]+')\x20'+parseOperator(_0x1be9b2[_0x7e61('0x10')]);}else{_0x4948f5['text']=_0x453599+'.'+_0x1be9b2[_0x7e61('0x19')]+'\x20'+parseOperator(_0x1be9b2['operator']);}if(_['includes']([_0x7e61('0x1b'),_0x7e61('0x1c')],_0x1be9b2[_0x7e61('0x10')]))_0x4948f5[_0x7e61('0x18')]='('+_0x4948f5[_0x7e61('0x18')]+'\x20OR\x20'+_0x453599+'.'+_0x1be9b2['field']+'\x20IS\x20NULL)';_0x4948f5[_0x7e61('0x11')]=parseValue(_0x192e75,_0x1be9b2['operator'],_0x1be9b2[_0x7e61('0x11')]);return _0x4948f5;};function parseOperator(_0x196aee){var _0x163131;switch(_0x196aee){case _0x7e61('0x1d'):_0x163131=_0x7e61('0x1e');break;case _0x7e61('0x1c'):_0x163131='NOT\x20IN\x20?';break;case _0x7e61('0x1f'):_0x163131=_0x7e61('0x20');break;case _0x7e61('0x1b'):_0x163131=_0x7e61('0x21');break;case _0x7e61('0x22'):case _0x7e61('0x23'):case _0x7e61('0x24'):_0x163131='LIKE\x20?';break;case _0x7e61('0x25'):_0x163131=_0x7e61('0x26');break;case _0x7e61('0x12'):_0x163131=_0x7e61('0x27');break;case _0x7e61('0x13'):_0x163131='<=\x20?';break;case _0x7e61('0x28'):_0x163131=_0x7e61('0x29');break;case _0x7e61('0x2a'):_0x163131=_0x7e61('0x2b');break;}return _0x163131;}function parseValue(_0x28bc0d,_0x5751b6,_0x65a491){var _0x5128f5={'start':undefined,'end':undefined};switch(_0x5751b6){case _0x7e61('0x1d'):case _0x7e61('0x1c'):_0x5128f5['start']=_0x65a491['split'](',');break;case'$substring':_0x5128f5[_0x7e61('0x2c')]='%'+_0x65a491+'%';break;case _0x7e61('0x23'):_0x5128f5['start']=_0x65a491+'%';break;case _0x7e61('0x24'):_0x5128f5[_0x7e61('0x2c')]='%'+_0x65a491;break;case'$between':var _0x4d0eae=_0x65a491['split'](',');var _0x65a491=_0x4d0eae['shift']();var _0x1e6403=_0x4d0eae['pop']();if(_0x28bc0d===_0x7e61('0xf')){_0x65a491=moment(_0x65a491)[_0x7e61('0x2d')](0x0,!![])['format']();_0x1e6403=moment(_0x1e6403)[_0x7e61('0x2d')](0x0,!![])[_0x7e61('0x14')](0x17,_0x7e61('0x2e'))[_0x7e61('0x14')](0x3b,_0x7e61('0x2f'))[_0x7e61('0x14')](0x3b,_0x7e61('0x30'))[_0x7e61('0x15')]();}_0x5128f5={'start':_0x65a491,'end':_0x1e6403};break;default:_0x5128f5[_0x7e61('0x2c')]=_0x65a491;break;}return _0x5128f5;}