Built motion from commit 00bf23f6.|2.6.16
[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 _0xa3d7=['hours','seconds','lodash','parseSearch','sqlOperator','startsWith','[$or]','and','replace','[$and]','length','split','slice','forEach','shift','filter','indexOf','map','conditions','push','buildExpression','DATE','operator','$eq','$between','value','includes','$gt','add','days','format','castTo','text','CAST(','\x20AS\x20','field','$ne','$notIn','\x20IS\x20NULL)','NOT\x20IN\x20?','=\x20?','<>\x20?','$substring','LIKE\x20?','$lt','<\x20?','>\x20?','$lte','$gte','>=\x20?','$in','start','$startsWith','$endsWith','utcOffset'];(function(_0x5d9e81,_0x157f6b){var _0x5d4d20=function(_0x287faa){while(--_0x287faa){_0x5d9e81['push'](_0x5d9e81['shift']());}};_0x5d4d20(++_0x157f6b);}(_0xa3d7,0xa7));var _0x7a3d=function(_0x298ed3,_0x4ab5e1){_0x298ed3=_0x298ed3-0x0;var _0x5aad28=_0xa3d7[_0x298ed3];return _0x5aad28;};'use strict';var _=require(_0x7a3d('0x0'));var moment=require('moment');exports[_0x7a3d('0x1')]=function(_0x50df5a){var _0x249a68={'conditions':[]};_0x249a68[_0x7a3d('0x2')]=_[_0x7a3d('0x3')](_0x50df5a,_0x7a3d('0x4'))?'or':_0x7a3d('0x5');var _0xedb860=_0x50df5a[_0x7a3d('0x6')](_0x7a3d('0x7'),'')['replace'](_0x7a3d('0x4'),'')['split']('||');for(var _0x2815e9=0x0;_0x2815e9<_0xedb860[_0x7a3d('0x8')];_0x2815e9++){var _0x59a5b3=_0xedb860[_0x2815e9][_0x7a3d('0x9')](':=');var _0x4574cd=_0x59a5b3[0x0];var _0x7aa088=_0x59a5b3[_0x7a3d('0xa')](0x1);_0x7aa088[_0x7a3d('0xb')](function(_0x1afd0d){var _0x2045e0=_0x1afd0d[_0x7a3d('0x9')]('[')[_0x7a3d('0xc')]();var _0x53be07=_0x1afd0d['match'](/\[(.*?)\]/g);_0x53be07['forEach'](function(_0x48dc72){var _0x4c4490=_0x48dc72[_0x7a3d('0x9')]('[')[_0x7a3d('0xd')](function(_0x31dfaf){return _0x31dfaf[_0x7a3d('0xe')](']')>-0x1;})[_0x7a3d('0xf')](function(_0x49bc76){return _0x49bc76['split'](']')[0x0];})[0x0];_0x249a68[_0x7a3d('0x10')][_0x7a3d('0x11')]({'field':_0x4574cd,'operator':_0x2045e0,'value':_0x4c4490});});});}return _0x249a68;};exports[_0x7a3d('0x12')]=function(_0x3858bf,_0x336f8d,_0x5ca658){var _0x2bfef1={};if(_0x336f8d===_0x7a3d('0x13')){if(_0x5ca658[_0x7a3d('0x14')]===_0x7a3d('0x15')){_0x5ca658['operator']=_0x7a3d('0x16');_0x5ca658[_0x7a3d('0x17')]+=','+_0x5ca658[_0x7a3d('0x17')];}else if(_[_0x7a3d('0x18')]([_0x7a3d('0x19'),'$lte'],_0x5ca658[_0x7a3d('0x14')])){_0x5ca658['value']=moment(_0x5ca658[_0x7a3d('0x17')])[_0x7a3d('0x1a')](0x1,_0x7a3d('0x1b'))[_0x7a3d('0x1c')]('YYYY-MM-DD');}}if(_0x5ca658[_0x7a3d('0x1d')]){_0x336f8d=_0x5ca658['castTo'];_0x2bfef1[_0x7a3d('0x1e')]=_0x7a3d('0x1f')+_0x3858bf+'.'+_0x5ca658['field']+_0x7a3d('0x20')+_0x5ca658[_0x7a3d('0x1d')]+')\x20'+parseOperator(_0x5ca658[_0x7a3d('0x14')]);}else{_0x2bfef1['text']=_0x3858bf+'.'+_0x5ca658[_0x7a3d('0x21')]+'\x20'+parseOperator(_0x5ca658[_0x7a3d('0x14')]);}if(_[_0x7a3d('0x18')]([_0x7a3d('0x22'),_0x7a3d('0x23')],_0x5ca658[_0x7a3d('0x14')]))_0x2bfef1[_0x7a3d('0x1e')]='('+_0x2bfef1[_0x7a3d('0x1e')]+'\x20OR\x20'+_0x3858bf+'.'+_0x5ca658['field']+_0x7a3d('0x24');_0x2bfef1['value']=parseValue(_0x336f8d,_0x5ca658['operator'],_0x5ca658[_0x7a3d('0x17')]);return _0x2bfef1;};function parseOperator(_0x41ed7e){var _0x8c965b;switch(_0x41ed7e){case'$in':_0x8c965b='IN\x20?';break;case _0x7a3d('0x23'):_0x8c965b=_0x7a3d('0x25');break;case _0x7a3d('0x15'):_0x8c965b=_0x7a3d('0x26');break;case _0x7a3d('0x22'):_0x8c965b=_0x7a3d('0x27');break;case _0x7a3d('0x28'):case'$startsWith':case'$endsWith':_0x8c965b=_0x7a3d('0x29');break;case _0x7a3d('0x2a'):_0x8c965b=_0x7a3d('0x2b');break;case _0x7a3d('0x19'):_0x8c965b=_0x7a3d('0x2c');break;case _0x7a3d('0x2d'):_0x8c965b='<=\x20?';break;case _0x7a3d('0x2e'):_0x8c965b=_0x7a3d('0x2f');break;case _0x7a3d('0x16'):_0x8c965b='BETWEEN\x20?\x20AND\x20?';break;}return _0x8c965b;}function parseValue(_0x324023,_0x193ed0,_0x1a63a8){var _0x12bf5b={'start':undefined,'end':undefined};switch(_0x193ed0){case _0x7a3d('0x30'):case _0x7a3d('0x23'):_0x12bf5b['start']=_0x1a63a8[_0x7a3d('0x9')](',');break;case _0x7a3d('0x28'):_0x12bf5b[_0x7a3d('0x31')]='%'+_0x1a63a8+'%';break;case _0x7a3d('0x32'):_0x12bf5b[_0x7a3d('0x31')]=_0x1a63a8+'%';break;case _0x7a3d('0x33'):_0x12bf5b['start']='%'+_0x1a63a8;break;case'$between':var _0x1b3e28=_0x1a63a8['split'](',');var _0x1a63a8=_0x1b3e28[_0x7a3d('0xc')]();var _0x239e85=_0x1b3e28['pop']();if(_0x324023===_0x7a3d('0x13')){_0x1a63a8=moment(_0x1a63a8)['utcOffset'](0x0,!![])['format']();_0x239e85=moment(_0x239e85)[_0x7a3d('0x34')](0x0,!![])[_0x7a3d('0x1a')](0x17,_0x7a3d('0x35'))[_0x7a3d('0x1a')](0x3b,'minutes')[_0x7a3d('0x1a')](0x3b,_0x7a3d('0x36'))[_0x7a3d('0x1c')]();}_0x12bf5b={'start':_0x1a63a8,'end':_0x239e85};break;default:_0x12bf5b[_0x7a3d('0x31')]=_0x1a63a8;break;}return _0x12bf5b;}