Built motion from commit b5996064.|2.6.21
[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 _0x5fac=['$gte','>=\x20?','start','pop','add','minutes','seconds','moment','parseSearch','sqlOperator','startsWith','[$or]','and','replace','[$and]','length','split','slice','shift','match','forEach','filter','map','conditions','push','buildExpression','DATE','$eq','$between','value','includes','$gt','operator','days','format','YYYY-MM-DD','castTo','CAST(','\x20AS\x20','text','field','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','NOT\x20IN\x20?','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','<\x20?','<=\x20?'];(function(_0x3c04ef,_0x9d110c){var _0x6a3a69=function(_0x333514){while(--_0x333514){_0x3c04ef['push'](_0x3c04ef['shift']());}};_0x6a3a69(++_0x9d110c);}(_0x5fac,0x75));var _0xc5fa=function(_0x12b8a9,_0x4ac313){_0x12b8a9=_0x12b8a9-0x0;var _0x1b87d4=_0x5fac[_0x12b8a9];return _0x1b87d4;};'use strict';var _=require('lodash');var moment=require(_0xc5fa('0x0'));exports[_0xc5fa('0x1')]=function(_0x38b712){var _0x3e3253={'conditions':[]};_0x3e3253[_0xc5fa('0x2')]=_[_0xc5fa('0x3')](_0x38b712,_0xc5fa('0x4'))?'or':_0xc5fa('0x5');var _0x437ba9=_0x38b712[_0xc5fa('0x6')](_0xc5fa('0x7'),'')[_0xc5fa('0x6')](_0xc5fa('0x4'),'')['split']('||');for(var _0x14144f=0x0;_0x14144f<_0x437ba9[_0xc5fa('0x8')];_0x14144f++){var _0x1e121a=_0x437ba9[_0x14144f][_0xc5fa('0x9')](':=');var _0x4bfaa8=_0x1e121a[0x0];var _0x1d149e=_0x1e121a[_0xc5fa('0xa')](0x1);_0x1d149e['forEach'](function(_0xe3b81e){var _0x4fcc6b=_0xe3b81e[_0xc5fa('0x9')]('[')[_0xc5fa('0xb')]();var _0x19f18a=_0xe3b81e[_0xc5fa('0xc')](/\[(.*?)\]/g);_0x19f18a[_0xc5fa('0xd')](function(_0x3e4d96){var _0x3ed985=_0x3e4d96[_0xc5fa('0x9')]('[')[_0xc5fa('0xe')](function(_0x9ae0d3){return _0x9ae0d3['indexOf'](']')>-0x1;})[_0xc5fa('0xf')](function(_0x313342){return _0x313342['split'](']')[0x0];})[0x0];_0x3e3253[_0xc5fa('0x10')][_0xc5fa('0x11')]({'field':_0x4bfaa8,'operator':_0x4fcc6b,'value':_0x3ed985});});});}return _0x3e3253;};exports[_0xc5fa('0x12')]=function(_0x16b575,_0x420c79,_0x33ae3a){var _0x3d802b={};if(_0x420c79===_0xc5fa('0x13')){if(_0x33ae3a['operator']===_0xc5fa('0x14')){_0x33ae3a['operator']=_0xc5fa('0x15');_0x33ae3a[_0xc5fa('0x16')]+=','+_0x33ae3a[_0xc5fa('0x16')];}else if(_[_0xc5fa('0x17')]([_0xc5fa('0x18'),'$lte'],_0x33ae3a[_0xc5fa('0x19')])){_0x33ae3a[_0xc5fa('0x16')]=moment(_0x33ae3a[_0xc5fa('0x16')])['add'](0x1,_0xc5fa('0x1a'))[_0xc5fa('0x1b')](_0xc5fa('0x1c'));}}if(_0x33ae3a[_0xc5fa('0x1d')]){_0x420c79=_0x33ae3a[_0xc5fa('0x1d')];_0x3d802b['text']=_0xc5fa('0x1e')+_0x16b575+'.'+_0x33ae3a['field']+_0xc5fa('0x1f')+_0x33ae3a['castTo']+')\x20'+parseOperator(_0x33ae3a[_0xc5fa('0x19')]);}else{_0x3d802b[_0xc5fa('0x20')]=_0x16b575+'.'+_0x33ae3a[_0xc5fa('0x21')]+'\x20'+parseOperator(_0x33ae3a[_0xc5fa('0x19')]);}if(_[_0xc5fa('0x17')]([_0xc5fa('0x22'),_0xc5fa('0x23')],_0x33ae3a['operator']))_0x3d802b[_0xc5fa('0x20')]='('+_0x3d802b[_0xc5fa('0x20')]+_0xc5fa('0x24')+_0x16b575+'.'+_0x33ae3a[_0xc5fa('0x21')]+_0xc5fa('0x25');_0x3d802b[_0xc5fa('0x16')]=parseValue(_0x420c79,_0x33ae3a['operator'],_0x33ae3a[_0xc5fa('0x16')]);return _0x3d802b;};function parseOperator(_0x5b84b1){var _0x12de1e;switch(_0x5b84b1){case _0xc5fa('0x26'):_0x12de1e='IN\x20?';break;case _0xc5fa('0x23'):_0x12de1e=_0xc5fa('0x27');break;case _0xc5fa('0x14'):_0x12de1e=_0xc5fa('0x28');break;case _0xc5fa('0x22'):_0x12de1e=_0xc5fa('0x29');break;case _0xc5fa('0x2a'):case _0xc5fa('0x2b'):case _0xc5fa('0x2c'):_0x12de1e=_0xc5fa('0x2d');break;case'$lt':_0x12de1e=_0xc5fa('0x2e');break;case'$gt':_0x12de1e='>\x20?';break;case'$lte':_0x12de1e=_0xc5fa('0x2f');break;case _0xc5fa('0x30'):_0x12de1e=_0xc5fa('0x31');break;case'$between':_0x12de1e='BETWEEN\x20?\x20AND\x20?';break;}return _0x12de1e;}function parseValue(_0x2f62e3,_0x337315,_0x939948){var _0xbe8200={'start':undefined,'end':undefined};switch(_0x337315){case _0xc5fa('0x26'):case _0xc5fa('0x23'):_0xbe8200[_0xc5fa('0x32')]=_0x939948[_0xc5fa('0x9')](',');break;case _0xc5fa('0x2a'):_0xbe8200[_0xc5fa('0x32')]='%'+_0x939948+'%';break;case'$startsWith':_0xbe8200[_0xc5fa('0x32')]=_0x939948+'%';break;case _0xc5fa('0x2c'):_0xbe8200['start']='%'+_0x939948;break;case _0xc5fa('0x15'):var _0x6f4161=_0x939948[_0xc5fa('0x9')](',');var _0x939948=_0x6f4161[_0xc5fa('0xb')]();var _0xe054f2=_0x6f4161[_0xc5fa('0x33')]();if(_0x2f62e3===_0xc5fa('0x13')){_0x939948=moment(_0x939948)['utcOffset'](0x0,!![])[_0xc5fa('0x1b')]();_0xe054f2=moment(_0xe054f2)['utcOffset'](0x0,!![])[_0xc5fa('0x34')](0x17,'hours')['add'](0x3b,_0xc5fa('0x35'))['add'](0x3b,_0xc5fa('0x36'))[_0xc5fa('0x1b')]();}_0xbe8200={'start':_0x939948,'end':_0xe054f2};break;default:_0xbe8200['start']=_0x939948;break;}return _0xbe8200;}