20a6ee59b29f02c026772aff88191e66a74e23dc
[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 _0xda75=['value','includes','$gt','$lte','add','days','YYYY-MM-DD','castTo','CAST(','field','$ne','$notIn','text','\x20OR\x20','$in','NOT\x20IN\x20?','<>\x20?','$substring','$startsWith','$endsWith','$lt','<\x20?','>\x20?','<=\x20?','$gte','start','pop','format','minutes','seconds','lodash','moment','parseSearch','sqlOperator','[$or]','and','replace','[$and]','split','length','slice','shift','match','forEach','filter','indexOf','map','conditions','buildExpression','operator','$eq','$between'];(function(_0x41414f,_0x13b8c4){var _0x286eda=function(_0x2e0df6){while(--_0x2e0df6){_0x41414f['push'](_0x41414f['shift']());}};_0x286eda(++_0x13b8c4);}(_0xda75,0x18a));var _0x5da7=function(_0x2cc292,_0x56afad){_0x2cc292=_0x2cc292-0x0;var _0x5e27a9=_0xda75[_0x2cc292];return _0x5e27a9;};'use strict';var _=require(_0x5da7('0x0'));var moment=require(_0x5da7('0x1'));exports[_0x5da7('0x2')]=function(_0x201783){var _0x35cb5b={'conditions':[]};_0x35cb5b[_0x5da7('0x3')]=_['startsWith'](_0x201783,_0x5da7('0x4'))?'or':_0x5da7('0x5');var _0x10dccb=_0x201783[_0x5da7('0x6')](_0x5da7('0x7'),'')['replace']('[$or]','')[_0x5da7('0x8')]('||');for(var _0x2a75b1=0x0;_0x2a75b1<_0x10dccb[_0x5da7('0x9')];_0x2a75b1++){var _0x503328=_0x10dccb[_0x2a75b1][_0x5da7('0x8')](':=');var _0x581e3d=_0x503328[0x0];var _0x451860=_0x503328[_0x5da7('0xa')](0x1);_0x451860['forEach'](function(_0x70949d){var _0x5597c3=_0x70949d[_0x5da7('0x8')]('[')[_0x5da7('0xb')]();var _0x54522f=_0x70949d[_0x5da7('0xc')](/\[(.*?)\]/g);_0x54522f[_0x5da7('0xd')](function(_0x47eeef){var _0x2288a5=_0x47eeef['split']('[')[_0x5da7('0xe')](function(_0x2ddb51){return _0x2ddb51[_0x5da7('0xf')](']')>-0x1;})[_0x5da7('0x10')](function(_0x24d9ad){return _0x24d9ad[_0x5da7('0x8')](']')[0x0];})[0x0];_0x35cb5b[_0x5da7('0x11')]['push']({'field':_0x581e3d,'operator':_0x5597c3,'value':_0x2288a5});});});}return _0x35cb5b;};exports[_0x5da7('0x12')]=function(_0x27f44e,_0x5b785d,_0x39dbb5){var _0x2d0f8c={};if(_0x5b785d==='DATE'){if(_0x39dbb5[_0x5da7('0x13')]===_0x5da7('0x14')){_0x39dbb5[_0x5da7('0x13')]=_0x5da7('0x15');_0x39dbb5[_0x5da7('0x16')]+=','+_0x39dbb5[_0x5da7('0x16')];}else if(_[_0x5da7('0x17')]([_0x5da7('0x18'),_0x5da7('0x19')],_0x39dbb5[_0x5da7('0x13')])){_0x39dbb5['value']=moment(_0x39dbb5[_0x5da7('0x16')])[_0x5da7('0x1a')](0x1,_0x5da7('0x1b'))['format'](_0x5da7('0x1c'));}}if(_0x39dbb5['castTo']){_0x5b785d=_0x39dbb5[_0x5da7('0x1d')];_0x2d0f8c['text']=_0x5da7('0x1e')+_0x27f44e+'.'+_0x39dbb5[_0x5da7('0x1f')]+'\x20AS\x20'+_0x39dbb5[_0x5da7('0x1d')]+')\x20'+parseOperator(_0x39dbb5[_0x5da7('0x13')]);}else{_0x2d0f8c['text']=_0x27f44e+'.'+_0x39dbb5[_0x5da7('0x1f')]+'\x20'+parseOperator(_0x39dbb5[_0x5da7('0x13')]);}if(_[_0x5da7('0x17')]([_0x5da7('0x20'),_0x5da7('0x21')],_0x39dbb5[_0x5da7('0x13')]))_0x2d0f8c[_0x5da7('0x22')]='('+_0x2d0f8c['text']+_0x5da7('0x23')+_0x27f44e+'.'+_0x39dbb5[_0x5da7('0x1f')]+'\x20IS\x20NULL)';_0x2d0f8c['value']=parseValue(_0x5b785d,_0x39dbb5[_0x5da7('0x13')],_0x39dbb5[_0x5da7('0x16')]);return _0x2d0f8c;};function parseOperator(_0x1262b1){var _0x4095bb;switch(_0x1262b1){case _0x5da7('0x24'):_0x4095bb='IN\x20?';break;case'$notIn':_0x4095bb=_0x5da7('0x25');break;case'$eq':_0x4095bb='=\x20?';break;case _0x5da7('0x20'):_0x4095bb=_0x5da7('0x26');break;case _0x5da7('0x27'):case _0x5da7('0x28'):case _0x5da7('0x29'):_0x4095bb='LIKE\x20?';break;case _0x5da7('0x2a'):_0x4095bb=_0x5da7('0x2b');break;case _0x5da7('0x18'):_0x4095bb=_0x5da7('0x2c');break;case _0x5da7('0x19'):_0x4095bb=_0x5da7('0x2d');break;case _0x5da7('0x2e'):_0x4095bb='>=\x20?';break;case _0x5da7('0x15'):_0x4095bb='BETWEEN\x20?\x20AND\x20?';break;}return _0x4095bb;}function parseValue(_0x1a8683,_0x2c09b6,_0x324916){var _0x1428e2={'start':undefined,'end':undefined};switch(_0x2c09b6){case'$in':case'$notIn':_0x1428e2['start']=_0x324916['split'](',');break;case _0x5da7('0x27'):_0x1428e2[_0x5da7('0x2f')]='%'+_0x324916+'%';break;case _0x5da7('0x28'):_0x1428e2[_0x5da7('0x2f')]=_0x324916+'%';break;case _0x5da7('0x29'):_0x1428e2[_0x5da7('0x2f')]='%'+_0x324916;break;case _0x5da7('0x15'):var _0x495835=_0x324916[_0x5da7('0x8')](',');var _0x324916=_0x495835[_0x5da7('0xb')]();var _0x45f8fc=_0x495835[_0x5da7('0x30')]();if(_0x1a8683==='DATE'){_0x324916=moment(_0x324916)['utcOffset'](0x0,!![])[_0x5da7('0x31')]();_0x45f8fc=moment(_0x45f8fc)['utcOffset'](0x0,!![])[_0x5da7('0x1a')](0x17,'hours')[_0x5da7('0x1a')](0x3b,_0x5da7('0x32'))[_0x5da7('0x1a')](0x3b,_0x5da7('0x33'))[_0x5da7('0x31')]();}_0x1428e2={'start':_0x324916,'end':_0x45f8fc};break;default:_0x1428e2[_0x5da7('0x2f')]=_0x324916;break;}return _0x1428e2;}