cb84624a8277fbeca7264beceb007e2d4f5b7974
[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 _0x5d6c=['YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','$eq','=\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','>\x20?','<=\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','shift','hours','minutes','lodash','moment','parseSearch','sqlOperator','startsWith','and','replace','[$or]','split','length','slice','forEach','match','filter','indexOf','map','conditions','push','DATE','operator','value','includes','$gt','$lte','add','format'];(function(_0x4b6ccc,_0x146dc3){var _0x15e250=function(_0xef70d5){while(--_0xef70d5){_0x4b6ccc['push'](_0x4b6ccc['shift']());}};_0x15e250(++_0x146dc3);}(_0x5d6c,0xfe));var _0xc5d6=function(_0x4120d6,_0x469587){_0x4120d6=_0x4120d6-0x0;var _0x10724c=_0x5d6c[_0x4120d6];return _0x10724c;};'use strict';var _=require(_0xc5d6('0x0'));var moment=require(_0xc5d6('0x1'));exports[_0xc5d6('0x2')]=function(_0x29632c){var _0x12666a={'conditions':[]};_0x12666a[_0xc5d6('0x3')]=_[_0xc5d6('0x4')](_0x29632c,'[$or]')?'or':_0xc5d6('0x5');var _0x4241bc=_0x29632c[_0xc5d6('0x6')]('[$and]','')['replace'](_0xc5d6('0x7'),'')[_0xc5d6('0x8')]('||');for(var _0x34499f=0x0;_0x34499f<_0x4241bc[_0xc5d6('0x9')];_0x34499f++){var _0x166839=_0x4241bc[_0x34499f][_0xc5d6('0x8')](':=');var _0x4a2a2b=_0x166839[0x0];var _0x1ee126=_0x166839[_0xc5d6('0xa')](0x1);_0x1ee126[_0xc5d6('0xb')](function(_0x536208){var _0xfcdd50=_0x536208[_0xc5d6('0x8')]('[')['shift']();var _0x5bbad7=_0x536208[_0xc5d6('0xc')](/\[(.*?)\]/g);_0x5bbad7[_0xc5d6('0xb')](function(_0x170ff3){var _0x5d1cb5=_0x170ff3[_0xc5d6('0x8')]('[')[_0xc5d6('0xd')](function(_0x3d0478){return _0x3d0478[_0xc5d6('0xe')](']')>-0x1;})[_0xc5d6('0xf')](function(_0x35e851){return _0x35e851[_0xc5d6('0x8')](']')[0x0];})[0x0];_0x12666a[_0xc5d6('0x10')][_0xc5d6('0x11')]({'field':_0x4a2a2b,'operator':_0xfcdd50,'value':_0x5d1cb5});});});}return _0x12666a;};exports['buildExpression']=function(_0x58b7e9,_0x3369b6,_0xb5b796){var _0x5795c0={};if(_0x3369b6===_0xc5d6('0x12')){if(_0xb5b796[_0xc5d6('0x13')]==='$eq'){_0xb5b796['operator']='$between';_0xb5b796[_0xc5d6('0x14')]+=','+_0xb5b796[_0xc5d6('0x14')];}else if(_[_0xc5d6('0x15')]([_0xc5d6('0x16'),_0xc5d6('0x17')],_0xb5b796[_0xc5d6('0x13')])){_0xb5b796[_0xc5d6('0x14')]=moment(_0xb5b796[_0xc5d6('0x14')])[_0xc5d6('0x18')](0x1,'days')[_0xc5d6('0x19')](_0xc5d6('0x1a'));}}if(_0xb5b796[_0xc5d6('0x1b')]){_0x3369b6=_0xb5b796[_0xc5d6('0x1b')];_0x5795c0[_0xc5d6('0x1c')]=_0xc5d6('0x1d')+_0x58b7e9+'.'+_0xb5b796[_0xc5d6('0x1e')]+_0xc5d6('0x1f')+_0xb5b796[_0xc5d6('0x1b')]+')\x20'+parseOperator(_0xb5b796[_0xc5d6('0x13')]);}else{_0x5795c0[_0xc5d6('0x1c')]=_0x58b7e9+'.'+_0xb5b796[_0xc5d6('0x1e')]+'\x20'+parseOperator(_0xb5b796[_0xc5d6('0x13')]);}if(_[_0xc5d6('0x15')]([_0xc5d6('0x20'),_0xc5d6('0x21')],_0xb5b796[_0xc5d6('0x13')]))_0x5795c0['text']='('+_0x5795c0['text']+_0xc5d6('0x22')+_0x58b7e9+'.'+_0xb5b796[_0xc5d6('0x1e')]+_0xc5d6('0x23');_0x5795c0[_0xc5d6('0x14')]=parseValue(_0x3369b6,_0xb5b796['operator'],_0xb5b796['value']);return _0x5795c0;};function parseOperator(_0x370150){var _0xec4e93;switch(_0x370150){case _0xc5d6('0x24'):_0xec4e93=_0xc5d6('0x25');break;case _0xc5d6('0x21'):_0xec4e93=_0xc5d6('0x26');break;case _0xc5d6('0x27'):_0xec4e93=_0xc5d6('0x28');break;case _0xc5d6('0x20'):_0xec4e93='<>\x20?';break;case _0xc5d6('0x29'):case _0xc5d6('0x2a'):case _0xc5d6('0x2b'):_0xec4e93=_0xc5d6('0x2c');break;case _0xc5d6('0x2d'):_0xec4e93='<\x20?';break;case'$gt':_0xec4e93=_0xc5d6('0x2e');break;case _0xc5d6('0x17'):_0xec4e93=_0xc5d6('0x2f');break;case _0xc5d6('0x30'):_0xec4e93=_0xc5d6('0x31');break;case _0xc5d6('0x32'):_0xec4e93=_0xc5d6('0x33');break;}return _0xec4e93;}function parseValue(_0x376429,_0x44f9c9,_0x4883af){var _0x28d725={'start':undefined,'end':undefined};switch(_0x44f9c9){case'$in':case _0xc5d6('0x21'):_0x28d725[_0xc5d6('0x34')]=_0x4883af[_0xc5d6('0x8')](',');break;case _0xc5d6('0x29'):_0x28d725[_0xc5d6('0x34')]='%'+_0x4883af+'%';break;case _0xc5d6('0x2a'):_0x28d725[_0xc5d6('0x34')]=_0x4883af+'%';break;case _0xc5d6('0x2b'):_0x28d725['start']='%'+_0x4883af;break;case _0xc5d6('0x32'):var _0x417e20=_0x4883af['split'](',');var _0x4883af=_0x417e20[_0xc5d6('0x35')]();var _0x520a27=_0x417e20['pop']();if(_0x376429===_0xc5d6('0x12')){_0x4883af=moment(_0x4883af)['utcOffset'](0x0,!![])['format']();_0x520a27=moment(_0x520a27)['utcOffset'](0x0,!![])[_0xc5d6('0x18')](0x17,_0xc5d6('0x36'))[_0xc5d6('0x18')](0x3b,_0xc5d6('0x37'))[_0xc5d6('0x18')](0x3b,'seconds')[_0xc5d6('0x19')]();}_0x28d725={'start':_0x4883af,'end':_0x520a27};break;default:_0x28d725[_0xc5d6('0x34')]=_0x4883af;break;}return _0x28d725;}