Built motion from commit (unavailable).|2.5.24
[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 _0x793c=['minutes','seconds','moment','parseSearch','sqlOperator','startsWith','and','replace','[$and]','[$or]','length','split','shift','match','filter','indexOf','map','conditions','push','buildExpression','DATE','operator','$eq','$between','value','includes','$lte','days','format','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','IN\x20?','NOT\x20IN\x20?','=\x20?','<>\x20?','$startsWith','$endsWith','LIKE\x20?','$lt','$gt','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','$in','start','$substring','pop','add'];(function(_0x35885a,_0x42fed7){var _0xe86249=function(_0x98edb3){while(--_0x98edb3){_0x35885a['push'](_0x35885a['shift']());}};_0xe86249(++_0x42fed7);}(_0x793c,0xe2));var _0xc793=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0x793c[_0x40220a];return _0x3903cc;};'use strict';var _=require('lodash');var moment=require(_0xc793('0x0'));exports[_0xc793('0x1')]=function(_0x3313bf){var _0x17010f={'conditions':[]};_0x17010f[_0xc793('0x2')]=_[_0xc793('0x3')](_0x3313bf,'[$or]')?'or':_0xc793('0x4');var _0x47aabb=_0x3313bf[_0xc793('0x5')](_0xc793('0x6'),'')['replace'](_0xc793('0x7'),'')['split']('||');for(var _0x65e9e1=0x0;_0x65e9e1<_0x47aabb[_0xc793('0x8')];_0x65e9e1++){var _0x5b3723=_0x47aabb[_0x65e9e1][_0xc793('0x9')](':=');var _0xc09a9a=_0x5b3723[0x0];var _0x2916ec=_0x5b3723['slice'](0x1);_0x2916ec['forEach'](function(_0x25d39f){var _0x56c939=_0x25d39f[_0xc793('0x9')]('[')[_0xc793('0xa')]();var _0x2e9cc1=_0x25d39f[_0xc793('0xb')](/\[(.*?)\]/g);_0x2e9cc1['forEach'](function(_0x251bbc){var _0x2ab53c=_0x251bbc[_0xc793('0x9')]('[')[_0xc793('0xc')](function(_0x13dab1){return _0x13dab1[_0xc793('0xd')](']')>-0x1;})[_0xc793('0xe')](function(_0x5e2ad1){return _0x5e2ad1[_0xc793('0x9')](']')[0x0];})[0x0];_0x17010f[_0xc793('0xf')][_0xc793('0x10')]({'field':_0xc09a9a,'operator':_0x56c939,'value':_0x2ab53c});});});}return _0x17010f;};exports[_0xc793('0x11')]=function(_0x5373b2,_0x28c4ec,_0x402393){var _0x1ecb43={};if(_0x28c4ec===_0xc793('0x12')){if(_0x402393[_0xc793('0x13')]===_0xc793('0x14')){_0x402393['operator']=_0xc793('0x15');_0x402393[_0xc793('0x16')]+=','+_0x402393[_0xc793('0x16')];}else if(_[_0xc793('0x17')](['$gt',_0xc793('0x18')],_0x402393['operator'])){_0x402393[_0xc793('0x16')]=moment(_0x402393[_0xc793('0x16')])['add'](0x1,_0xc793('0x19'))[_0xc793('0x1a')]('YYYY-MM-DD');}}if(_0x402393[_0xc793('0x1b')]){_0x28c4ec=_0x402393[_0xc793('0x1b')];_0x1ecb43[_0xc793('0x1c')]=_0xc793('0x1d')+_0x5373b2+'.'+_0x402393[_0xc793('0x1e')]+_0xc793('0x1f')+_0x402393[_0xc793('0x1b')]+')\x20'+parseOperator(_0x402393['operator']);}else{_0x1ecb43[_0xc793('0x1c')]=_0x5373b2+'.'+_0x402393[_0xc793('0x1e')]+'\x20'+parseOperator(_0x402393['operator']);}if(_[_0xc793('0x17')]([_0xc793('0x20'),_0xc793('0x21')],_0x402393[_0xc793('0x13')]))_0x1ecb43['text']='('+_0x1ecb43[_0xc793('0x1c')]+_0xc793('0x22')+_0x5373b2+'.'+_0x402393[_0xc793('0x1e')]+_0xc793('0x23');_0x1ecb43[_0xc793('0x16')]=parseValue(_0x28c4ec,_0x402393['operator'],_0x402393[_0xc793('0x16')]);return _0x1ecb43;};function parseOperator(_0x128947){var _0x2ed291;switch(_0x128947){case'$in':_0x2ed291=_0xc793('0x24');break;case _0xc793('0x21'):_0x2ed291=_0xc793('0x25');break;case _0xc793('0x14'):_0x2ed291=_0xc793('0x26');break;case _0xc793('0x20'):_0x2ed291=_0xc793('0x27');break;case'$substring':case _0xc793('0x28'):case _0xc793('0x29'):_0x2ed291=_0xc793('0x2a');break;case _0xc793('0x2b'):_0x2ed291='<\x20?';break;case _0xc793('0x2c'):_0x2ed291='>\x20?';break;case _0xc793('0x18'):_0x2ed291=_0xc793('0x2d');break;case _0xc793('0x2e'):_0x2ed291=_0xc793('0x2f');break;case'$between':_0x2ed291=_0xc793('0x30');break;}return _0x2ed291;}function parseValue(_0x3301ec,_0x4904ff,_0x44e95c){var _0x5288bf={'start':undefined,'end':undefined};switch(_0x4904ff){case _0xc793('0x31'):case'$notIn':_0x5288bf[_0xc793('0x32')]=_0x44e95c[_0xc793('0x9')](',');break;case _0xc793('0x33'):_0x5288bf[_0xc793('0x32')]='%'+_0x44e95c+'%';break;case _0xc793('0x28'):_0x5288bf[_0xc793('0x32')]=_0x44e95c+'%';break;case'$endsWith':_0x5288bf['start']='%'+_0x44e95c;break;case _0xc793('0x15'):var _0xb45659=_0x44e95c[_0xc793('0x9')](',');var _0x44e95c=_0xb45659[_0xc793('0xa')]();var _0x1f38d2=_0xb45659[_0xc793('0x34')]();if(_0x3301ec===_0xc793('0x12')){_0x44e95c=moment(_0x44e95c)['utcOffset'](0x0,!![])[_0xc793('0x1a')]();_0x1f38d2=moment(_0x1f38d2)['utcOffset'](0x0,!![])[_0xc793('0x35')](0x17,'hours')[_0xc793('0x35')](0x3b,_0xc793('0x36'))['add'](0x3b,_0xc793('0x37'))['format']();}_0x5288bf={'start':_0x44e95c,'end':_0x1f38d2};break;default:_0x5288bf[_0xc793('0x32')]=_0x44e95c;break;}return _0x5288bf;}