ffe406ccaf49d3cef00e9f40fd54c23728919bbf
[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 _0x5856=['YYYY-MM-DD','castTo','CAST(','field','\x20AS\x20','operator','text','$ne','$notIn','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','$lte','<=\x20?','$gte','BETWEEN\x20?\x20AND\x20?','start','pop','utcOffset','hours','minutes','seconds','moment','parseSearch','sqlOperator','startsWith','replace','[$and]','split','slice','forEach','shift','match','filter','indexOf','map','push','buildExpression','$eq','$between','value','includes','$gt','add','days','format'];(function(_0x4e9f20,_0x37ba77){var _0x57d043=function(_0xea2dbf){while(--_0xea2dbf){_0x4e9f20['push'](_0x4e9f20['shift']());}};_0x57d043(++_0x37ba77);}(_0x5856,0x1d7));var _0x6585=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0x5856[_0x134c2e];return _0x2825db;};'use strict';var _=require('lodash');var moment=require(_0x6585('0x0'));exports[_0x6585('0x1')]=function(_0x489e11){var _0x3aaa78={'conditions':[]};_0x3aaa78[_0x6585('0x2')]=_[_0x6585('0x3')](_0x489e11,'[$or]')?'or':'and';var _0x10f980=_0x489e11[_0x6585('0x4')](_0x6585('0x5'),'')['replace']('[$or]','')[_0x6585('0x6')]('||');for(var _0x56dd59=0x0;_0x56dd59<_0x10f980['length'];_0x56dd59++){var _0x1ac7bf=_0x10f980[_0x56dd59][_0x6585('0x6')](':=');var _0x3ed2ae=_0x1ac7bf[0x0];var _0x558436=_0x1ac7bf[_0x6585('0x7')](0x1);_0x558436[_0x6585('0x8')](function(_0x55416f){var _0x18942c=_0x55416f[_0x6585('0x6')]('[')[_0x6585('0x9')]();var _0x542abe=_0x55416f[_0x6585('0xa')](/\[(.*?)\]/g);_0x542abe[_0x6585('0x8')](function(_0x5ba9fd){var _0x2dfb2d=_0x5ba9fd[_0x6585('0x6')]('[')[_0x6585('0xb')](function(_0xfade3d){return _0xfade3d[_0x6585('0xc')](']')>-0x1;})[_0x6585('0xd')](function(_0x5d718f){return _0x5d718f[_0x6585('0x6')](']')[0x0];})[0x0];_0x3aaa78['conditions'][_0x6585('0xe')]({'field':_0x3ed2ae,'operator':_0x18942c,'value':_0x2dfb2d});});});}return _0x3aaa78;};exports[_0x6585('0xf')]=function(_0x10a190,_0x5bc666,_0xd5f782){var _0x48c112={};if(_0x5bc666==='DATE'){if(_0xd5f782['operator']===_0x6585('0x10')){_0xd5f782['operator']=_0x6585('0x11');_0xd5f782['value']+=','+_0xd5f782[_0x6585('0x12')];}else if(_[_0x6585('0x13')]([_0x6585('0x14'),'$lte'],_0xd5f782['operator'])){_0xd5f782[_0x6585('0x12')]=moment(_0xd5f782['value'])[_0x6585('0x15')](0x1,_0x6585('0x16'))[_0x6585('0x17')](_0x6585('0x18'));}}if(_0xd5f782[_0x6585('0x19')]){_0x5bc666=_0xd5f782[_0x6585('0x19')];_0x48c112['text']=_0x6585('0x1a')+_0x10a190+'.'+_0xd5f782[_0x6585('0x1b')]+_0x6585('0x1c')+_0xd5f782[_0x6585('0x19')]+')\x20'+parseOperator(_0xd5f782[_0x6585('0x1d')]);}else{_0x48c112[_0x6585('0x1e')]=_0x10a190+'.'+_0xd5f782[_0x6585('0x1b')]+'\x20'+parseOperator(_0xd5f782['operator']);}if(_[_0x6585('0x13')]([_0x6585('0x1f'),_0x6585('0x20')],_0xd5f782['operator']))_0x48c112['text']='('+_0x48c112[_0x6585('0x1e')]+'\x20OR\x20'+_0x10a190+'.'+_0xd5f782[_0x6585('0x1b')]+_0x6585('0x21');_0x48c112['value']=parseValue(_0x5bc666,_0xd5f782[_0x6585('0x1d')],_0xd5f782[_0x6585('0x12')]);return _0x48c112;};function parseOperator(_0x395be6){var _0x36bc85;switch(_0x395be6){case _0x6585('0x22'):_0x36bc85=_0x6585('0x23');break;case _0x6585('0x20'):_0x36bc85=_0x6585('0x24');break;case _0x6585('0x10'):_0x36bc85='=\x20?';break;case'$ne':_0x36bc85=_0x6585('0x25');break;case _0x6585('0x26'):case _0x6585('0x27'):case _0x6585('0x28'):_0x36bc85=_0x6585('0x29');break;case _0x6585('0x2a'):_0x36bc85=_0x6585('0x2b');break;case _0x6585('0x14'):_0x36bc85=_0x6585('0x2c');break;case _0x6585('0x2d'):_0x36bc85=_0x6585('0x2e');break;case _0x6585('0x2f'):_0x36bc85='>=\x20?';break;case _0x6585('0x11'):_0x36bc85=_0x6585('0x30');break;}return _0x36bc85;}function parseValue(_0x75b09,_0x5c1d33,_0x16f662){var _0x3980c1={'start':undefined,'end':undefined};switch(_0x5c1d33){case'$in':case _0x6585('0x20'):_0x3980c1[_0x6585('0x31')]=_0x16f662[_0x6585('0x6')](',');break;case _0x6585('0x26'):_0x3980c1[_0x6585('0x31')]='%'+_0x16f662+'%';break;case _0x6585('0x27'):_0x3980c1[_0x6585('0x31')]=_0x16f662+'%';break;case _0x6585('0x28'):_0x3980c1[_0x6585('0x31')]='%'+_0x16f662;break;case _0x6585('0x11'):var _0x423865=_0x16f662[_0x6585('0x6')](',');var _0x16f662=_0x423865[_0x6585('0x9')]();var _0x3b7372=_0x423865[_0x6585('0x32')]();if(_0x75b09==='DATE'){_0x16f662=moment(_0x16f662)[_0x6585('0x33')](0x0,!![])['format']();_0x3b7372=moment(_0x3b7372)[_0x6585('0x33')](0x0,!![])[_0x6585('0x15')](0x17,_0x6585('0x34'))[_0x6585('0x15')](0x3b,_0x6585('0x35'))[_0x6585('0x15')](0x3b,_0x6585('0x36'))[_0x6585('0x17')]();}_0x3980c1={'start':_0x16f662,'end':_0x3b7372};break;default:_0x3980c1[_0x6585('0x31')]=_0x16f662;break;}return _0x3980c1;}