Built motion from commit 192134f6.|2.6.25
[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 _0x1b5d=['\x20AS\x20','$ne','$notIn','\x20OR\x20','$in','IN\x20?','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','<\x20?','$gt','>\x20?','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','pop','utcOffset','hours','seconds','lodash','parseSearch','startsWith','[$or]','replace','[$and]','split','forEach','shift','match','indexOf','push','DATE','operator','$eq','$between','value','includes','$lte','add','days','format','YYYY-MM-DD','castTo','text','field'];(function(_0x235e65,_0x2017d4){var _0x395018=function(_0xc2dd76){while(--_0xc2dd76){_0x235e65['push'](_0x235e65['shift']());}};_0x395018(++_0x2017d4);}(_0x1b5d,0x10c));var _0xd1b5=function(_0x1c388e,_0x31f2de){_0x1c388e=_0x1c388e-0x0;var _0x4e2966=_0x1b5d[_0x1c388e];return _0x4e2966;};'use strict';var _=require(_0xd1b5('0x0'));var moment=require('moment');exports[_0xd1b5('0x1')]=function(_0x3511bd){var _0x331bcb={'conditions':[]};_0x331bcb['sqlOperator']=_[_0xd1b5('0x2')](_0x3511bd,_0xd1b5('0x3'))?'or':'and';var _0x52453b=_0x3511bd[_0xd1b5('0x4')](_0xd1b5('0x5'),'')[_0xd1b5('0x4')]('[$or]','')[_0xd1b5('0x6')]('||');for(var _0x3088b0=0x0;_0x3088b0<_0x52453b['length'];_0x3088b0++){var _0x59620e=_0x52453b[_0x3088b0][_0xd1b5('0x6')](':=');var _0x520343=_0x59620e[0x0];var _0x408985=_0x59620e['slice'](0x1);_0x408985[_0xd1b5('0x7')](function(_0x36fc35){var _0x22edf7=_0x36fc35[_0xd1b5('0x6')]('[')[_0xd1b5('0x8')]();var _0x2b1417=_0x36fc35[_0xd1b5('0x9')](/\[(.*?)\]/g);_0x2b1417[_0xd1b5('0x7')](function(_0x1ff108){var _0x556e34=_0x1ff108[_0xd1b5('0x6')]('[')['filter'](function(_0x3c0171){return _0x3c0171[_0xd1b5('0xa')](']')>-0x1;})['map'](function(_0x154213){return _0x154213['split'](']')[0x0];})[0x0];_0x331bcb['conditions'][_0xd1b5('0xb')]({'field':_0x520343,'operator':_0x22edf7,'value':_0x556e34});});});}return _0x331bcb;};exports['buildExpression']=function(_0x438836,_0x525aed,_0x5a9276){var _0x17df5a={};if(_0x525aed===_0xd1b5('0xc')){if(_0x5a9276[_0xd1b5('0xd')]===_0xd1b5('0xe')){_0x5a9276[_0xd1b5('0xd')]=_0xd1b5('0xf');_0x5a9276[_0xd1b5('0x10')]+=','+_0x5a9276[_0xd1b5('0x10')];}else if(_[_0xd1b5('0x11')](['$gt',_0xd1b5('0x12')],_0x5a9276[_0xd1b5('0xd')])){_0x5a9276[_0xd1b5('0x10')]=moment(_0x5a9276[_0xd1b5('0x10')])[_0xd1b5('0x13')](0x1,_0xd1b5('0x14'))[_0xd1b5('0x15')](_0xd1b5('0x16'));}}if(_0x5a9276[_0xd1b5('0x17')]){_0x525aed=_0x5a9276['castTo'];_0x17df5a[_0xd1b5('0x18')]='CAST('+_0x438836+'.'+_0x5a9276[_0xd1b5('0x19')]+_0xd1b5('0x1a')+_0x5a9276[_0xd1b5('0x17')]+')\x20'+parseOperator(_0x5a9276[_0xd1b5('0xd')]);}else{_0x17df5a[_0xd1b5('0x18')]=_0x438836+'.'+_0x5a9276[_0xd1b5('0x19')]+'\x20'+parseOperator(_0x5a9276['operator']);}if(_[_0xd1b5('0x11')]([_0xd1b5('0x1b'),_0xd1b5('0x1c')],_0x5a9276[_0xd1b5('0xd')]))_0x17df5a[_0xd1b5('0x18')]='('+_0x17df5a[_0xd1b5('0x18')]+_0xd1b5('0x1d')+_0x438836+'.'+_0x5a9276[_0xd1b5('0x19')]+'\x20IS\x20NULL)';_0x17df5a[_0xd1b5('0x10')]=parseValue(_0x525aed,_0x5a9276[_0xd1b5('0xd')],_0x5a9276[_0xd1b5('0x10')]);return _0x17df5a;};function parseOperator(_0x23b6a7){var _0x2863cf;switch(_0x23b6a7){case _0xd1b5('0x1e'):_0x2863cf=_0xd1b5('0x1f');break;case _0xd1b5('0x1c'):_0x2863cf='NOT\x20IN\x20?';break;case _0xd1b5('0xe'):_0x2863cf=_0xd1b5('0x20');break;case _0xd1b5('0x1b'):_0x2863cf=_0xd1b5('0x21');break;case _0xd1b5('0x22'):case _0xd1b5('0x23'):case _0xd1b5('0x24'):_0x2863cf='LIKE\x20?';break;case'$lt':_0x2863cf=_0xd1b5('0x25');break;case _0xd1b5('0x26'):_0x2863cf=_0xd1b5('0x27');break;case _0xd1b5('0x12'):_0x2863cf=_0xd1b5('0x28');break;case _0xd1b5('0x29'):_0x2863cf=_0xd1b5('0x2a');break;case _0xd1b5('0xf'):_0x2863cf=_0xd1b5('0x2b');break;}return _0x2863cf;}function parseValue(_0x366213,_0xda9ec8,_0x39692a){var _0x46c95a={'start':undefined,'end':undefined};switch(_0xda9ec8){case _0xd1b5('0x1e'):case _0xd1b5('0x1c'):_0x46c95a[_0xd1b5('0x2c')]=_0x39692a[_0xd1b5('0x6')](',');break;case'$substring':_0x46c95a[_0xd1b5('0x2c')]='%'+_0x39692a+'%';break;case'$startsWith':_0x46c95a['start']=_0x39692a+'%';break;case'$endsWith':_0x46c95a['start']='%'+_0x39692a;break;case _0xd1b5('0xf'):var _0x37d17f=_0x39692a['split'](',');var _0x39692a=_0x37d17f[_0xd1b5('0x8')]();var _0x2b5b54=_0x37d17f[_0xd1b5('0x2d')]();if(_0x366213===_0xd1b5('0xc')){_0x39692a=moment(_0x39692a)[_0xd1b5('0x2e')](0x0,!![])[_0xd1b5('0x15')]();_0x2b5b54=moment(_0x2b5b54)[_0xd1b5('0x2e')](0x0,!![])['add'](0x17,_0xd1b5('0x2f'))[_0xd1b5('0x13')](0x3b,'minutes')[_0xd1b5('0x13')](0x3b,_0xd1b5('0x30'))[_0xd1b5('0x15')]();}_0x46c95a={'start':_0x39692a,'end':_0x2b5b54};break;default:_0x46c95a['start']=_0x39692a;break;}return _0x46c95a;}