8b47bcd00a27f9081b76b3676e443c3f6eebc7ae
[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 _0x4180=['$lte','add','format','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','includes','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','shift','pop','utcOffset','hours','minutes','seconds','lodash','sqlOperator','startsWith','[$or]','replace','split','length','match','forEach','indexOf','map','conditions','push','buildExpression','DATE','operator','$eq','value','$gt'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x4180,0x137));var _0x0418=function(_0x450a2c,_0x32600a){_0x450a2c=_0x450a2c-0x0;var _0x527dd5=_0x4180[_0x450a2c];return _0x527dd5;};'use strict';var _=require(_0x0418('0x0'));var moment=require('moment');exports['parseSearch']=function(_0x2121cb){var _0x5b86cf={'conditions':[]};_0x5b86cf[_0x0418('0x1')]=_[_0x0418('0x2')](_0x2121cb,_0x0418('0x3'))?'or':'and';var _0x54ed74=_0x2121cb[_0x0418('0x4')]('[$and]','')[_0x0418('0x4')](_0x0418('0x3'),'')[_0x0418('0x5')]('||');for(var _0x612be7=0x0;_0x612be7<_0x54ed74[_0x0418('0x6')];_0x612be7++){var _0x430a0d=_0x54ed74[_0x612be7][_0x0418('0x5')](':=');var _0x254c8f=_0x430a0d[0x0];var _0x285b3e=_0x430a0d['slice'](0x1);_0x285b3e['forEach'](function(_0x552300){var _0x4caeff=_0x552300['split']('[')['shift']();var _0x519f71=_0x552300[_0x0418('0x7')](/\[(.*?)\]/g);_0x519f71[_0x0418('0x8')](function(_0x5c4a77){var _0x3bcff0=_0x5c4a77[_0x0418('0x5')]('[')['filter'](function(_0x38c974){return _0x38c974[_0x0418('0x9')](']')>-0x1;})[_0x0418('0xa')](function(_0x2242fa){return _0x2242fa[_0x0418('0x5')](']')[0x0];})[0x0];_0x5b86cf[_0x0418('0xb')][_0x0418('0xc')]({'field':_0x254c8f,'operator':_0x4caeff,'value':_0x3bcff0});});});}return _0x5b86cf;};exports[_0x0418('0xd')]=function(_0xdfd503,_0x409003,_0x3be4e1){var _0x1abdad={};if(_0x409003===_0x0418('0xe')){if(_0x3be4e1[_0x0418('0xf')]===_0x0418('0x10')){_0x3be4e1[_0x0418('0xf')]='$between';_0x3be4e1[_0x0418('0x11')]+=','+_0x3be4e1[_0x0418('0x11')];}else if(_['includes']([_0x0418('0x12'),_0x0418('0x13')],_0x3be4e1[_0x0418('0xf')])){_0x3be4e1[_0x0418('0x11')]=moment(_0x3be4e1[_0x0418('0x11')])[_0x0418('0x14')](0x1,'days')[_0x0418('0x15')](_0x0418('0x16'));}}if(_0x3be4e1[_0x0418('0x17')]){_0x409003=_0x3be4e1[_0x0418('0x17')];_0x1abdad[_0x0418('0x18')]=_0x0418('0x19')+_0xdfd503+'.'+_0x3be4e1[_0x0418('0x1a')]+_0x0418('0x1b')+_0x3be4e1[_0x0418('0x17')]+')\x20'+parseOperator(_0x3be4e1[_0x0418('0xf')]);}else{_0x1abdad[_0x0418('0x18')]=_0xdfd503+'.'+_0x3be4e1[_0x0418('0x1a')]+'\x20'+parseOperator(_0x3be4e1[_0x0418('0xf')]);}if(_[_0x0418('0x1c')]([_0x0418('0x1d'),_0x0418('0x1e')],_0x3be4e1[_0x0418('0xf')]))_0x1abdad[_0x0418('0x18')]='('+_0x1abdad[_0x0418('0x18')]+_0x0418('0x1f')+_0xdfd503+'.'+_0x3be4e1[_0x0418('0x1a')]+_0x0418('0x20');_0x1abdad[_0x0418('0x11')]=parseValue(_0x409003,_0x3be4e1[_0x0418('0xf')],_0x3be4e1[_0x0418('0x11')]);return _0x1abdad;};function parseOperator(_0x58d438){var _0x12a501;switch(_0x58d438){case _0x0418('0x21'):_0x12a501='IN\x20?';break;case _0x0418('0x1e'):_0x12a501='NOT\x20IN\x20?';break;case _0x0418('0x10'):_0x12a501=_0x0418('0x22');break;case'$ne':_0x12a501=_0x0418('0x23');break;case _0x0418('0x24'):case _0x0418('0x25'):case _0x0418('0x26'):_0x12a501=_0x0418('0x27');break;case _0x0418('0x28'):_0x12a501=_0x0418('0x29');break;case _0x0418('0x12'):_0x12a501=_0x0418('0x2a');break;case _0x0418('0x13'):_0x12a501=_0x0418('0x2b');break;case _0x0418('0x2c'):_0x12a501=_0x0418('0x2d');break;case _0x0418('0x2e'):_0x12a501=_0x0418('0x2f');break;}return _0x12a501;}function parseValue(_0xc7ef2a,_0x129ec6,_0x14c12a){var _0x375d06={'start':undefined,'end':undefined};switch(_0x129ec6){case _0x0418('0x21'):case'$notIn':_0x375d06[_0x0418('0x30')]=_0x14c12a[_0x0418('0x5')](',');break;case'$substring':_0x375d06['start']='%'+_0x14c12a+'%';break;case'$startsWith':_0x375d06[_0x0418('0x30')]=_0x14c12a+'%';break;case _0x0418('0x26'):_0x375d06[_0x0418('0x30')]='%'+_0x14c12a;break;case _0x0418('0x2e'):var _0x2c89a3=_0x14c12a[_0x0418('0x5')](',');var _0x14c12a=_0x2c89a3[_0x0418('0x31')]();var _0x51c165=_0x2c89a3[_0x0418('0x32')]();if(_0xc7ef2a===_0x0418('0xe')){_0x14c12a=moment(_0x14c12a)['utcOffset'](0x0,!![])['format']();_0x51c165=moment(_0x51c165)[_0x0418('0x33')](0x0,!![])[_0x0418('0x14')](0x17,_0x0418('0x34'))[_0x0418('0x14')](0x3b,_0x0418('0x35'))[_0x0418('0x14')](0x3b,_0x0418('0x36'))['format']();}_0x375d06={'start':_0x14c12a,'end':_0x51c165};break;default:_0x375d06['start']=_0x14c12a;break;}return _0x375d06;}