4e632a33b2e1facdfb757f236fe7e11aaae2f513
[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 _0x2e29=['$notIn','NOT\x20IN\x20?','$eq','=\x20?','$ne','<>\x20?','$substring','$startsWith','$endsWith','$lt','<\x20?','>\x20?','$lte','<=\x20?','$gte','start','pop','utcOffset','hours','minutes','seconds','lodash','moment','parseSearch','startsWith','[$or]','and','[$and]','replace','length','split','forEach','shift','match','filter','map','conditions','push','buildExpression','DATE','operator','$between','value','includes','$gt','add','days','format','YYYY-MM-DD','text','CAST(','field','\x20AS\x20','castTo','\x20IS\x20NULL)','$in','IN\x20?'];(function(_0x442214,_0x3a869f){var _0x2bddf9=function(_0x34b9c7){while(--_0x34b9c7){_0x442214['push'](_0x442214['shift']());}};_0x2bddf9(++_0x3a869f);}(_0x2e29,0xc0));var _0x92e2=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0x2e29[_0x39096d];return _0x13da4f;};'use strict';var _=require(_0x92e2('0x0'));var moment=require(_0x92e2('0x1'));exports[_0x92e2('0x2')]=function(_0x2af77d){var _0xf0878={'conditions':[]};_0xf0878['sqlOperator']=_[_0x92e2('0x3')](_0x2af77d,_0x92e2('0x4'))?'or':_0x92e2('0x5');var _0xddca51=_0x2af77d['replace'](_0x92e2('0x6'),'')[_0x92e2('0x7')](_0x92e2('0x4'),'')['split']('||');for(var _0x16f184=0x0;_0x16f184<_0xddca51[_0x92e2('0x8')];_0x16f184++){var _0x197fae=_0xddca51[_0x16f184][_0x92e2('0x9')](':=');var _0x1724c0=_0x197fae[0x0];var _0x3308e8=_0x197fae['slice'](0x1);_0x3308e8[_0x92e2('0xa')](function(_0x5d3303){var _0x57d8ec=_0x5d3303[_0x92e2('0x9')]('[')[_0x92e2('0xb')]();var _0x242ded=_0x5d3303[_0x92e2('0xc')](/\[(.*?)\]/g);_0x242ded[_0x92e2('0xa')](function(_0x2de385){var _0x2486fe=_0x2de385['split']('[')[_0x92e2('0xd')](function(_0x2f7f22){return _0x2f7f22['indexOf'](']')>-0x1;})[_0x92e2('0xe')](function(_0x4b5d29){return _0x4b5d29[_0x92e2('0x9')](']')[0x0];})[0x0];_0xf0878[_0x92e2('0xf')][_0x92e2('0x10')]({'field':_0x1724c0,'operator':_0x57d8ec,'value':_0x2486fe});});});}return _0xf0878;};exports[_0x92e2('0x11')]=function(_0x376141,_0x4dd2ff,_0x496579){var _0x2e21e1={};if(_0x4dd2ff===_0x92e2('0x12')){if(_0x496579['operator']==='$eq'){_0x496579[_0x92e2('0x13')]=_0x92e2('0x14');_0x496579['value']+=','+_0x496579[_0x92e2('0x15')];}else if(_[_0x92e2('0x16')]([_0x92e2('0x17'),'$lte'],_0x496579[_0x92e2('0x13')])){_0x496579[_0x92e2('0x15')]=moment(_0x496579[_0x92e2('0x15')])[_0x92e2('0x18')](0x1,_0x92e2('0x19'))[_0x92e2('0x1a')](_0x92e2('0x1b'));}}if(_0x496579['castTo']){_0x4dd2ff=_0x496579['castTo'];_0x2e21e1[_0x92e2('0x1c')]=_0x92e2('0x1d')+_0x376141+'.'+_0x496579[_0x92e2('0x1e')]+_0x92e2('0x1f')+_0x496579[_0x92e2('0x20')]+')\x20'+parseOperator(_0x496579[_0x92e2('0x13')]);}else{_0x2e21e1[_0x92e2('0x1c')]=_0x376141+'.'+_0x496579[_0x92e2('0x1e')]+'\x20'+parseOperator(_0x496579[_0x92e2('0x13')]);}if(_[_0x92e2('0x16')](['$ne','$notIn'],_0x496579['operator']))_0x2e21e1[_0x92e2('0x1c')]='('+_0x2e21e1['text']+'\x20OR\x20'+_0x376141+'.'+_0x496579['field']+_0x92e2('0x21');_0x2e21e1[_0x92e2('0x15')]=parseValue(_0x4dd2ff,_0x496579[_0x92e2('0x13')],_0x496579['value']);return _0x2e21e1;};function parseOperator(_0x30255f){var _0x313493;switch(_0x30255f){case _0x92e2('0x22'):_0x313493=_0x92e2('0x23');break;case _0x92e2('0x24'):_0x313493=_0x92e2('0x25');break;case _0x92e2('0x26'):_0x313493=_0x92e2('0x27');break;case _0x92e2('0x28'):_0x313493=_0x92e2('0x29');break;case _0x92e2('0x2a'):case _0x92e2('0x2b'):case _0x92e2('0x2c'):_0x313493='LIKE\x20?';break;case _0x92e2('0x2d'):_0x313493=_0x92e2('0x2e');break;case _0x92e2('0x17'):_0x313493=_0x92e2('0x2f');break;case _0x92e2('0x30'):_0x313493=_0x92e2('0x31');break;case _0x92e2('0x32'):_0x313493='>=\x20?';break;case _0x92e2('0x14'):_0x313493='BETWEEN\x20?\x20AND\x20?';break;}return _0x313493;}function parseValue(_0x1e7dc2,_0x22ba00,_0x38f20e){var _0x298318={'start':undefined,'end':undefined};switch(_0x22ba00){case _0x92e2('0x22'):case _0x92e2('0x24'):_0x298318[_0x92e2('0x33')]=_0x38f20e[_0x92e2('0x9')](',');break;case'$substring':_0x298318[_0x92e2('0x33')]='%'+_0x38f20e+'%';break;case _0x92e2('0x2b'):_0x298318[_0x92e2('0x33')]=_0x38f20e+'%';break;case _0x92e2('0x2c'):_0x298318[_0x92e2('0x33')]='%'+_0x38f20e;break;case _0x92e2('0x14'):var _0x5bc302=_0x38f20e['split'](',');var _0x38f20e=_0x5bc302['shift']();var _0x2362db=_0x5bc302[_0x92e2('0x34')]();if(_0x1e7dc2===_0x92e2('0x12')){_0x38f20e=moment(_0x38f20e)['utcOffset'](0x0,!![])['format']();_0x2362db=moment(_0x2362db)[_0x92e2('0x35')](0x0,!![])[_0x92e2('0x18')](0x17,_0x92e2('0x36'))[_0x92e2('0x18')](0x3b,_0x92e2('0x37'))[_0x92e2('0x18')](0x3b,_0x92e2('0x38'))[_0x92e2('0x1a')]();}_0x298318={'start':_0x38f20e,'end':_0x2362db};break;default:_0x298318['start']=_0x38f20e;break;}return _0x298318;}