99f4fb11a92bf03d22f6b1c336e6a0705c81a2dd
[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 _0x82f8=['operator','value','$gt','days','format','YYYY-MM-DD','castTo','text','field','\x20AS\x20','includes','$ne','$notIn','\x20OR\x20','$in','NOT\x20IN\x20?','=\x20?','$substring','$startsWith','$endsWith','>\x20?','$lte','<=\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','utcOffset','add','hours','minutes','lodash','moment','parseSearch','startsWith','[$or]','and','replace','split','slice','shift','filter','indexOf','map','buildExpression'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0x82f8,0x162));var _0x882f=function(_0x3947ee,_0x2956db){_0x3947ee=_0x3947ee-0x0;var _0x2ce2cb=_0x82f8[_0x3947ee];return _0x2ce2cb;};'use strict';var _=require(_0x882f('0x0'));var moment=require(_0x882f('0x1'));exports[_0x882f('0x2')]=function(_0x15731f){var _0x54b672={'conditions':[]};_0x54b672['sqlOperator']=_[_0x882f('0x3')](_0x15731f,_0x882f('0x4'))?'or':_0x882f('0x5');var _0x18f1f2=_0x15731f[_0x882f('0x6')]('[$and]','')['replace']('[$or]','')['split']('||');for(var _0x2f9ce1=0x0;_0x2f9ce1<_0x18f1f2['length'];_0x2f9ce1++){var _0x136837=_0x18f1f2[_0x2f9ce1][_0x882f('0x7')](':=');var _0x526b36=_0x136837[0x0];var _0x20a44e=_0x136837[_0x882f('0x8')](0x1);_0x20a44e['forEach'](function(_0x1ee4e0){var _0x4d807f=_0x1ee4e0[_0x882f('0x7')]('[')[_0x882f('0x9')]();var _0xbdeb42=_0x1ee4e0['match'](/\[(.*?)\]/g);_0xbdeb42['forEach'](function(_0x98050a){var _0x1a4e86=_0x98050a[_0x882f('0x7')]('[')[_0x882f('0xa')](function(_0x17105e){return _0x17105e[_0x882f('0xb')](']')>-0x1;})[_0x882f('0xc')](function(_0x969c79){return _0x969c79['split'](']')[0x0];})[0x0];_0x54b672['conditions']['push']({'field':_0x526b36,'operator':_0x4d807f,'value':_0x1a4e86});});});}return _0x54b672;};exports[_0x882f('0xd')]=function(_0x4b2c2c,_0x3d74df,_0x49ae45){var _0x23d8c3={};if(_0x3d74df==='DATE'){if(_0x49ae45[_0x882f('0xe')]==='$eq'){_0x49ae45[_0x882f('0xe')]='$between';_0x49ae45[_0x882f('0xf')]+=','+_0x49ae45[_0x882f('0xf')];}else if(_['includes']([_0x882f('0x10'),'$lte'],_0x49ae45['operator'])){_0x49ae45[_0x882f('0xf')]=moment(_0x49ae45['value'])['add'](0x1,_0x882f('0x11'))[_0x882f('0x12')](_0x882f('0x13'));}}if(_0x49ae45[_0x882f('0x14')]){_0x3d74df=_0x49ae45[_0x882f('0x14')];_0x23d8c3[_0x882f('0x15')]='CAST('+_0x4b2c2c+'.'+_0x49ae45[_0x882f('0x16')]+_0x882f('0x17')+_0x49ae45[_0x882f('0x14')]+')\x20'+parseOperator(_0x49ae45[_0x882f('0xe')]);}else{_0x23d8c3['text']=_0x4b2c2c+'.'+_0x49ae45[_0x882f('0x16')]+'\x20'+parseOperator(_0x49ae45[_0x882f('0xe')]);}if(_[_0x882f('0x18')]([_0x882f('0x19'),_0x882f('0x1a')],_0x49ae45[_0x882f('0xe')]))_0x23d8c3[_0x882f('0x15')]='('+_0x23d8c3[_0x882f('0x15')]+_0x882f('0x1b')+_0x4b2c2c+'.'+_0x49ae45[_0x882f('0x16')]+'\x20IS\x20NULL)';_0x23d8c3[_0x882f('0xf')]=parseValue(_0x3d74df,_0x49ae45['operator'],_0x49ae45[_0x882f('0xf')]);return _0x23d8c3;};function parseOperator(_0x1877ea){var _0xd5b1b6;switch(_0x1877ea){case _0x882f('0x1c'):_0xd5b1b6='IN\x20?';break;case'$notIn':_0xd5b1b6=_0x882f('0x1d');break;case'$eq':_0xd5b1b6=_0x882f('0x1e');break;case _0x882f('0x19'):_0xd5b1b6='<>\x20?';break;case _0x882f('0x1f'):case _0x882f('0x20'):case _0x882f('0x21'):_0xd5b1b6='LIKE\x20?';break;case'$lt':_0xd5b1b6='<\x20?';break;case _0x882f('0x10'):_0xd5b1b6=_0x882f('0x22');break;case _0x882f('0x23'):_0xd5b1b6=_0x882f('0x24');break;case _0x882f('0x25'):_0xd5b1b6=_0x882f('0x26');break;case _0x882f('0x27'):_0xd5b1b6=_0x882f('0x28');break;}return _0xd5b1b6;}function parseValue(_0x1f18f7,_0x16df80,_0xe8d35){var _0x1a564f={'start':undefined,'end':undefined};switch(_0x16df80){case _0x882f('0x1c'):case _0x882f('0x1a'):_0x1a564f[_0x882f('0x29')]=_0xe8d35['split'](',');break;case _0x882f('0x1f'):_0x1a564f[_0x882f('0x29')]='%'+_0xe8d35+'%';break;case _0x882f('0x20'):_0x1a564f['start']=_0xe8d35+'%';break;case _0x882f('0x21'):_0x1a564f['start']='%'+_0xe8d35;break;case _0x882f('0x27'):var _0xa63894=_0xe8d35[_0x882f('0x7')](',');var _0xe8d35=_0xa63894['shift']();var _0x2e2676=_0xa63894['pop']();if(_0x1f18f7==='DATE'){_0xe8d35=moment(_0xe8d35)[_0x882f('0x2a')](0x0,!![])[_0x882f('0x12')]();_0x2e2676=moment(_0x2e2676)[_0x882f('0x2a')](0x0,!![])[_0x882f('0x2b')](0x17,_0x882f('0x2c'))['add'](0x3b,_0x882f('0x2d'))[_0x882f('0x2b')](0x3b,'seconds')[_0x882f('0x12')]();}_0x1a564f={'start':_0xe8d35,'end':_0x2e2676};break;default:_0x1a564f[_0x882f('0x29')]=_0xe8d35;break;}return _0x1a564f;}