Built motion from commit (unavailable).|2.5.21
[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 _0x50aa=['replace','[$and]','split','length','slice','shift','match','forEach','filter','indexOf','map','conditions','push','DATE','operator','$eq','$between','value','includes','$gt','$lte','add','format','YYYY-MM-DD','castTo','CAST(','field','$ne','$notIn','text','\x20IS\x20NULL)','$in','IN\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','<=\x20?','>=\x20?','start','pop','utcOffset','minutes','lodash','parseSearch','sqlOperator','[$or]'];(function(_0x68c979,_0x431cff){var _0x4f0001=function(_0xa7595d){while(--_0xa7595d){_0x68c979['push'](_0x68c979['shift']());}};_0x4f0001(++_0x431cff);}(_0x50aa,0x15a));var _0xa50a=function(_0x2ba740,_0x62a305){_0x2ba740=_0x2ba740-0x0;var _0x358bda=_0x50aa[_0x2ba740];return _0x358bda;};'use strict';var _=require(_0xa50a('0x0'));var moment=require('moment');exports[_0xa50a('0x1')]=function(_0x25160a){var _0x3efdf3={'conditions':[]};_0x3efdf3[_0xa50a('0x2')]=_['startsWith'](_0x25160a,_0xa50a('0x3'))?'or':'and';var _0x40f119=_0x25160a[_0xa50a('0x4')](_0xa50a('0x5'),'')['replace'](_0xa50a('0x3'),'')[_0xa50a('0x6')]('||');for(var _0x379fe2=0x0;_0x379fe2<_0x40f119[_0xa50a('0x7')];_0x379fe2++){var _0x133dfa=_0x40f119[_0x379fe2][_0xa50a('0x6')](':=');var _0x59aebb=_0x133dfa[0x0];var _0xd9c76d=_0x133dfa[_0xa50a('0x8')](0x1);_0xd9c76d['forEach'](function(_0x23aef8){var _0x8b9015=_0x23aef8[_0xa50a('0x6')]('[')[_0xa50a('0x9')]();var _0x3bbf43=_0x23aef8[_0xa50a('0xa')](/\[(.*?)\]/g);_0x3bbf43[_0xa50a('0xb')](function(_0x38cd8c){var _0x2fe76e=_0x38cd8c[_0xa50a('0x6')]('[')[_0xa50a('0xc')](function(_0x4f9fd3){return _0x4f9fd3[_0xa50a('0xd')](']')>-0x1;})[_0xa50a('0xe')](function(_0x510669){return _0x510669[_0xa50a('0x6')](']')[0x0];})[0x0];_0x3efdf3[_0xa50a('0xf')][_0xa50a('0x10')]({'field':_0x59aebb,'operator':_0x8b9015,'value':_0x2fe76e});});});}return _0x3efdf3;};exports['buildExpression']=function(_0x5d5e01,_0x1bb960,_0x1008f4){var _0x2b6744={};if(_0x1bb960===_0xa50a('0x11')){if(_0x1008f4[_0xa50a('0x12')]===_0xa50a('0x13')){_0x1008f4[_0xa50a('0x12')]=_0xa50a('0x14');_0x1008f4['value']+=','+_0x1008f4[_0xa50a('0x15')];}else if(_[_0xa50a('0x16')]([_0xa50a('0x17'),_0xa50a('0x18')],_0x1008f4[_0xa50a('0x12')])){_0x1008f4[_0xa50a('0x15')]=moment(_0x1008f4['value'])[_0xa50a('0x19')](0x1,'days')[_0xa50a('0x1a')](_0xa50a('0x1b'));}}if(_0x1008f4[_0xa50a('0x1c')]){_0x1bb960=_0x1008f4['castTo'];_0x2b6744['text']=_0xa50a('0x1d')+_0x5d5e01+'.'+_0x1008f4[_0xa50a('0x1e')]+'\x20AS\x20'+_0x1008f4[_0xa50a('0x1c')]+')\x20'+parseOperator(_0x1008f4['operator']);}else{_0x2b6744['text']=_0x5d5e01+'.'+_0x1008f4[_0xa50a('0x1e')]+'\x20'+parseOperator(_0x1008f4[_0xa50a('0x12')]);}if(_[_0xa50a('0x16')]([_0xa50a('0x1f'),_0xa50a('0x20')],_0x1008f4[_0xa50a('0x12')]))_0x2b6744[_0xa50a('0x21')]='('+_0x2b6744['text']+'\x20OR\x20'+_0x5d5e01+'.'+_0x1008f4[_0xa50a('0x1e')]+_0xa50a('0x22');_0x2b6744['value']=parseValue(_0x1bb960,_0x1008f4[_0xa50a('0x12')],_0x1008f4['value']);return _0x2b6744;};function parseOperator(_0x46e37a){var _0x5ea56a;switch(_0x46e37a){case _0xa50a('0x23'):_0x5ea56a=_0xa50a('0x24');break;case _0xa50a('0x20'):_0x5ea56a='NOT\x20IN\x20?';break;case _0xa50a('0x13'):_0x5ea56a='=\x20?';break;case'$ne':_0x5ea56a='<>\x20?';break;case _0xa50a('0x25'):case _0xa50a('0x26'):case _0xa50a('0x27'):_0x5ea56a=_0xa50a('0x28');break;case _0xa50a('0x29'):_0x5ea56a=_0xa50a('0x2a');break;case _0xa50a('0x17'):_0x5ea56a=_0xa50a('0x2b');break;case _0xa50a('0x18'):_0x5ea56a=_0xa50a('0x2c');break;case'$gte':_0x5ea56a=_0xa50a('0x2d');break;case _0xa50a('0x14'):_0x5ea56a='BETWEEN\x20?\x20AND\x20?';break;}return _0x5ea56a;}function parseValue(_0x4d3a9c,_0x34e9a1,_0x294b78){var _0x43822a={'start':undefined,'end':undefined};switch(_0x34e9a1){case _0xa50a('0x23'):case _0xa50a('0x20'):_0x43822a[_0xa50a('0x2e')]=_0x294b78[_0xa50a('0x6')](',');break;case _0xa50a('0x25'):_0x43822a[_0xa50a('0x2e')]='%'+_0x294b78+'%';break;case _0xa50a('0x26'):_0x43822a[_0xa50a('0x2e')]=_0x294b78+'%';break;case'$endsWith':_0x43822a['start']='%'+_0x294b78;break;case _0xa50a('0x14'):var _0x45f8a9=_0x294b78[_0xa50a('0x6')](',');var _0x294b78=_0x45f8a9[_0xa50a('0x9')]();var _0x491508=_0x45f8a9[_0xa50a('0x2f')]();if(_0x4d3a9c===_0xa50a('0x11')){_0x294b78=moment(_0x294b78)[_0xa50a('0x30')](0x0,!![])['format']();_0x491508=moment(_0x491508)[_0xa50a('0x30')](0x0,!![])[_0xa50a('0x19')](0x17,'hours')[_0xa50a('0x19')](0x3b,_0xa50a('0x31'))[_0xa50a('0x19')](0x3b,'seconds')[_0xa50a('0x1a')]();}_0x43822a={'start':_0x294b78,'end':_0x491508};break;default:_0x43822a['start']=_0x294b78;break;}return _0x43822a;}