Built motion from commit 936e8062.|2.5.33
[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 _0x37a1=['$lte','days','format','YYYY-MM-DD','castTo','text','CAST(','field','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','$lt','<\x20?','>\x20?','<=\x20?','$gte','BETWEEN\x20?\x20AND\x20?','start','pop','DATE','utcOffset','add','hours','seconds','lodash','moment','parseSearch','sqlOperator','startsWith','and','replace','[$and]','[$or]','split','length','slice','shift','match','forEach','filter','indexOf','conditions','push','buildExpression','operator','$eq','$between','value','includes','$gt'];(function(_0x283279,_0x2c3d68){var _0x5d1fae=function(_0x30bbbb){while(--_0x30bbbb){_0x283279['push'](_0x283279['shift']());}};_0x5d1fae(++_0x2c3d68);}(_0x37a1,0x97));var _0x137a=function(_0x5a18e5,_0x4431f7){_0x5a18e5=_0x5a18e5-0x0;var _0x1cd589=_0x37a1[_0x5a18e5];return _0x1cd589;};'use strict';var _=require(_0x137a('0x0'));var moment=require(_0x137a('0x1'));exports[_0x137a('0x2')]=function(_0x2ad5ac){var _0x1897ff={'conditions':[]};_0x1897ff[_0x137a('0x3')]=_[_0x137a('0x4')](_0x2ad5ac,'[$or]')?'or':_0x137a('0x5');var _0x32be8e=_0x2ad5ac[_0x137a('0x6')](_0x137a('0x7'),'')[_0x137a('0x6')](_0x137a('0x8'),'')[_0x137a('0x9')]('||');for(var _0x1039e=0x0;_0x1039e<_0x32be8e[_0x137a('0xa')];_0x1039e++){var _0x4e40b1=_0x32be8e[_0x1039e][_0x137a('0x9')](':=');var _0xb458bb=_0x4e40b1[0x0];var _0x15a3db=_0x4e40b1[_0x137a('0xb')](0x1);_0x15a3db['forEach'](function(_0x3cddf1){var _0x535796=_0x3cddf1[_0x137a('0x9')]('[')[_0x137a('0xc')]();var _0x4fb6f9=_0x3cddf1[_0x137a('0xd')](/\[(.*?)\]/g);_0x4fb6f9[_0x137a('0xe')](function(_0x2e97f2){var _0x1e4513=_0x2e97f2[_0x137a('0x9')]('[')[_0x137a('0xf')](function(_0x3f7497){return _0x3f7497[_0x137a('0x10')](']')>-0x1;})['map'](function(_0x339db0){return _0x339db0[_0x137a('0x9')](']')[0x0];})[0x0];_0x1897ff[_0x137a('0x11')][_0x137a('0x12')]({'field':_0xb458bb,'operator':_0x535796,'value':_0x1e4513});});});}return _0x1897ff;};exports[_0x137a('0x13')]=function(_0x3229f0,_0x3954a4,_0x51f8d9){var _0x44c9f7={};if(_0x3954a4==='DATE'){if(_0x51f8d9[_0x137a('0x14')]===_0x137a('0x15')){_0x51f8d9[_0x137a('0x14')]=_0x137a('0x16');_0x51f8d9[_0x137a('0x17')]+=','+_0x51f8d9['value'];}else if(_[_0x137a('0x18')]([_0x137a('0x19'),_0x137a('0x1a')],_0x51f8d9[_0x137a('0x14')])){_0x51f8d9[_0x137a('0x17')]=moment(_0x51f8d9[_0x137a('0x17')])['add'](0x1,_0x137a('0x1b'))[_0x137a('0x1c')](_0x137a('0x1d'));}}if(_0x51f8d9[_0x137a('0x1e')]){_0x3954a4=_0x51f8d9[_0x137a('0x1e')];_0x44c9f7[_0x137a('0x1f')]=_0x137a('0x20')+_0x3229f0+'.'+_0x51f8d9[_0x137a('0x21')]+'\x20AS\x20'+_0x51f8d9[_0x137a('0x1e')]+')\x20'+parseOperator(_0x51f8d9[_0x137a('0x14')]);}else{_0x44c9f7['text']=_0x3229f0+'.'+_0x51f8d9[_0x137a('0x21')]+'\x20'+parseOperator(_0x51f8d9[_0x137a('0x14')]);}if(_['includes']([_0x137a('0x22'),_0x137a('0x23')],_0x51f8d9[_0x137a('0x14')]))_0x44c9f7['text']='('+_0x44c9f7['text']+_0x137a('0x24')+_0x3229f0+'.'+_0x51f8d9[_0x137a('0x21')]+_0x137a('0x25');_0x44c9f7['value']=parseValue(_0x3954a4,_0x51f8d9[_0x137a('0x14')],_0x51f8d9[_0x137a('0x17')]);return _0x44c9f7;};function parseOperator(_0x39b846){var _0x343ac1;switch(_0x39b846){case _0x137a('0x26'):_0x343ac1=_0x137a('0x27');break;case _0x137a('0x23'):_0x343ac1=_0x137a('0x28');break;case'$eq':_0x343ac1=_0x137a('0x29');break;case _0x137a('0x22'):_0x343ac1=_0x137a('0x2a');break;case _0x137a('0x2b'):case _0x137a('0x2c'):case _0x137a('0x2d'):_0x343ac1='LIKE\x20?';break;case _0x137a('0x2e'):_0x343ac1=_0x137a('0x2f');break;case _0x137a('0x19'):_0x343ac1=_0x137a('0x30');break;case _0x137a('0x1a'):_0x343ac1=_0x137a('0x31');break;case _0x137a('0x32'):_0x343ac1='>=\x20?';break;case'$between':_0x343ac1=_0x137a('0x33');break;}return _0x343ac1;}function parseValue(_0x5267bc,_0x35d394,_0xe4405a){var _0x5f0cc1={'start':undefined,'end':undefined};switch(_0x35d394){case'$in':case _0x137a('0x23'):_0x5f0cc1[_0x137a('0x34')]=_0xe4405a[_0x137a('0x9')](',');break;case'$substring':_0x5f0cc1[_0x137a('0x34')]='%'+_0xe4405a+'%';break;case _0x137a('0x2c'):_0x5f0cc1[_0x137a('0x34')]=_0xe4405a+'%';break;case _0x137a('0x2d'):_0x5f0cc1[_0x137a('0x34')]='%'+_0xe4405a;break;case _0x137a('0x16'):var _0x588ea0=_0xe4405a[_0x137a('0x9')](',');var _0xe4405a=_0x588ea0[_0x137a('0xc')]();var _0x1b882a=_0x588ea0[_0x137a('0x35')]();if(_0x5267bc===_0x137a('0x36')){_0xe4405a=moment(_0xe4405a)[_0x137a('0x37')](0x0,!![])['format']();_0x1b882a=moment(_0x1b882a)['utcOffset'](0x0,!![])[_0x137a('0x38')](0x17,_0x137a('0x39'))[_0x137a('0x38')](0x3b,'minutes')['add'](0x3b,_0x137a('0x3a'))[_0x137a('0x1c')]();}_0x5f0cc1={'start':_0xe4405a,'end':_0x1b882a};break;default:_0x5f0cc1[_0x137a('0x34')]=_0xe4405a;break;}return _0x5f0cc1;}