f42452f74df85721a0f05a269aa6ba914acc6d81
[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 _0x32ef=['text','CAST(','field','\x20AS\x20','$ne','\x20OR\x20','$in','IN\x20?','NOT\x20IN\x20?','<>\x20?','$substring','$startsWith','$endsWith','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','$notIn','start','shift','pop','DATE','utcOffset','hours','minutes','seconds','lodash','moment','parseSearch','startsWith','[$or]','and','replace','[$and]','split','length','slice','forEach','filter','map','conditions','push','buildExpression','$eq','operator','value','includes','$gt','$lte','add','format','YYYY-MM-DD','castTo'];(function(_0x4ea43f,_0x2c334b){var _0x1293de=function(_0x41b278){while(--_0x41b278){_0x4ea43f['push'](_0x4ea43f['shift']());}};_0x1293de(++_0x2c334b);}(_0x32ef,0x135));var _0xf32e=function(_0x47bfa9,_0x35afd9){_0x47bfa9=_0x47bfa9-0x0;var _0x16de27=_0x32ef[_0x47bfa9];return _0x16de27;};'use strict';var _=require(_0xf32e('0x0'));var moment=require(_0xf32e('0x1'));exports[_0xf32e('0x2')]=function(_0x4bad99){var _0x416cc1={'conditions':[]};_0x416cc1['sqlOperator']=_[_0xf32e('0x3')](_0x4bad99,_0xf32e('0x4'))?'or':_0xf32e('0x5');var _0x2592c2=_0x4bad99[_0xf32e('0x6')](_0xf32e('0x7'),'')[_0xf32e('0x6')](_0xf32e('0x4'),'')[_0xf32e('0x8')]('||');for(var _0x28505b=0x0;_0x28505b<_0x2592c2[_0xf32e('0x9')];_0x28505b++){var _0x22e3b0=_0x2592c2[_0x28505b][_0xf32e('0x8')](':=');var _0x44910d=_0x22e3b0[0x0];var _0x1d833e=_0x22e3b0[_0xf32e('0xa')](0x1);_0x1d833e[_0xf32e('0xb')](function(_0x4e7090){var _0x44308a=_0x4e7090['split']('[')['shift']();var _0x5ddb0f=_0x4e7090['match'](/\[(.*?)\]/g);_0x5ddb0f['forEach'](function(_0x2a84b3){var _0x430252=_0x2a84b3[_0xf32e('0x8')]('[')[_0xf32e('0xc')](function(_0x46a7f0){return _0x46a7f0['indexOf'](']')>-0x1;})[_0xf32e('0xd')](function(_0x1db890){return _0x1db890[_0xf32e('0x8')](']')[0x0];})[0x0];_0x416cc1[_0xf32e('0xe')][_0xf32e('0xf')]({'field':_0x44910d,'operator':_0x44308a,'value':_0x430252});});});}return _0x416cc1;};exports[_0xf32e('0x10')]=function(_0x46546b,_0x2c58ee,_0x555cb4){var _0xdc8a2e={};if(_0x2c58ee==='DATE'){if(_0x555cb4['operator']===_0xf32e('0x11')){_0x555cb4[_0xf32e('0x12')]='$between';_0x555cb4[_0xf32e('0x13')]+=','+_0x555cb4['value'];}else if(_[_0xf32e('0x14')]([_0xf32e('0x15'),_0xf32e('0x16')],_0x555cb4[_0xf32e('0x12')])){_0x555cb4['value']=moment(_0x555cb4['value'])[_0xf32e('0x17')](0x1,'days')[_0xf32e('0x18')](_0xf32e('0x19'));}}if(_0x555cb4[_0xf32e('0x1a')]){_0x2c58ee=_0x555cb4[_0xf32e('0x1a')];_0xdc8a2e[_0xf32e('0x1b')]=_0xf32e('0x1c')+_0x46546b+'.'+_0x555cb4[_0xf32e('0x1d')]+_0xf32e('0x1e')+_0x555cb4[_0xf32e('0x1a')]+')\x20'+parseOperator(_0x555cb4[_0xf32e('0x12')]);}else{_0xdc8a2e[_0xf32e('0x1b')]=_0x46546b+'.'+_0x555cb4[_0xf32e('0x1d')]+'\x20'+parseOperator(_0x555cb4[_0xf32e('0x12')]);}if(_[_0xf32e('0x14')]([_0xf32e('0x1f'),'$notIn'],_0x555cb4['operator']))_0xdc8a2e['text']='('+_0xdc8a2e[_0xf32e('0x1b')]+_0xf32e('0x20')+_0x46546b+'.'+_0x555cb4[_0xf32e('0x1d')]+'\x20IS\x20NULL)';_0xdc8a2e[_0xf32e('0x13')]=parseValue(_0x2c58ee,_0x555cb4[_0xf32e('0x12')],_0x555cb4[_0xf32e('0x13')]);return _0xdc8a2e;};function parseOperator(_0x298593){var _0x54bae9;switch(_0x298593){case _0xf32e('0x21'):_0x54bae9=_0xf32e('0x22');break;case'$notIn':_0x54bae9=_0xf32e('0x23');break;case _0xf32e('0x11'):_0x54bae9='=\x20?';break;case _0xf32e('0x1f'):_0x54bae9=_0xf32e('0x24');break;case _0xf32e('0x25'):case _0xf32e('0x26'):case _0xf32e('0x27'):_0x54bae9='LIKE\x20?';break;case'$lt':_0x54bae9=_0xf32e('0x28');break;case _0xf32e('0x15'):_0x54bae9=_0xf32e('0x29');break;case _0xf32e('0x16'):_0x54bae9=_0xf32e('0x2a');break;case _0xf32e('0x2b'):_0x54bae9=_0xf32e('0x2c');break;case _0xf32e('0x2d'):_0x54bae9=_0xf32e('0x2e');break;}return _0x54bae9;}function parseValue(_0x256685,_0x48f489,_0x41509d){var _0x2bb526={'start':undefined,'end':undefined};switch(_0x48f489){case'$in':case _0xf32e('0x2f'):_0x2bb526[_0xf32e('0x30')]=_0x41509d[_0xf32e('0x8')](',');break;case'$substring':_0x2bb526[_0xf32e('0x30')]='%'+_0x41509d+'%';break;case _0xf32e('0x26'):_0x2bb526['start']=_0x41509d+'%';break;case _0xf32e('0x27'):_0x2bb526['start']='%'+_0x41509d;break;case _0xf32e('0x2d'):var _0x2e24d0=_0x41509d[_0xf32e('0x8')](',');var _0x41509d=_0x2e24d0[_0xf32e('0x31')]();var _0x532588=_0x2e24d0[_0xf32e('0x32')]();if(_0x256685===_0xf32e('0x33')){_0x41509d=moment(_0x41509d)[_0xf32e('0x34')](0x0,!![])['format']();_0x532588=moment(_0x532588)[_0xf32e('0x34')](0x0,!![])[_0xf32e('0x17')](0x17,_0xf32e('0x35'))[_0xf32e('0x17')](0x3b,_0xf32e('0x36'))[_0xf32e('0x17')](0x3b,_0xf32e('0x37'))[_0xf32e('0x18')]();}_0x2bb526={'start':_0x41509d,'end':_0x532588};break;default:_0x2bb526['start']=_0x41509d;break;}return _0x2bb526;}