Built motion from commit 14588770.|2.5.38
[motion2.git] / server / components / parsers / qs.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 _0xd1ad=['split','sort','map','priority','cast','col','unsigned','substr','DESC','ASC','omit','isEmpty','length','isString','hasOwnProperty','isNumeric','match','isEmail','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','model','filters','intersection','attributes','nolimit','limit','offset','where','pick','filter','object','columns','name','value','merge','type','VIRTUAL','lower','sequelize','moment','parse','keys','includes','fields','forOwn','find','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','subtract','uniqueid','isArray'];(function(_0x221ded,_0x117817){var _0x55210a=function(_0xba8819){while(--_0xba8819){_0x221ded['push'](_0x221ded['shift']());}};_0x55210a(++_0x117817);}(_0xd1ad,0x1d7));var _0xdd1a=function(_0x22e47a,_0x4ea10c){_0x22e47a=_0x22e47a-0x0;var _0x15a12a=_0xd1ad[_0x22e47a];return _0x15a12a;};'use strict';var _=require('lodash');var sequelize=require(_0xdd1a('0x0'));var moment=require(_0xdd1a('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x3d38f4){var _0x36a3bb=['ne'];try{var _0x3445b0=JSON[_0xdd1a('0x2')](_0x3d38f4);var _0x2e6276=Object[_0xdd1a('0x3')](_0x3445b0)[0x0];return _0x36a3bb[_0xdd1a('0x4')](_0x2e6276);}catch(_0x3091cc){return![];}}function getOperatorValue(_0x18797d){var _0x419636=JSON['parse'](_0x18797d);var _0x1f0675=Object[_0xdd1a('0x3')](_0x419636)[0x0];var _0x5bf7a9=_0x419636[_0x1f0675];return{['$'+_0x1f0675]:_0x5bf7a9};}exports[_0xdd1a('0x5')]=function(_0x25b340){var _0x226672=null;if(_0x25b340){_0x226672=_0x25b340['split'](',');}return _0x226672;};exports['filters']=function(_0x5577c3,_0x27b12e){var _0xf52d5={};if(!_['isEmpty'](_0x5577c3)){_[_0xdd1a('0x6')](_0x5577c3,function(_0x1aab76,_0xe0957c){try{if(_0x27b12e){var _0x1a8c79=_[_0xdd1a('0x7')](_0x27b12e,{'name':_0xe0957c})||{};if(hasSequelizeOperator(_0x1aab76)){_0xf52d5[_0xe0957c]=getOperatorValue(_0x1aab76);}else if(_0x1a8c79['type']===_0xdd1a('0x8')&&_[_0xdd1a('0x9')](_0x1aab76)){var _0xd8ff49=JSON['parse'](_0x1aab76);var _0x30cd10={'$gte':moment(moment(_0xd8ff49[_0xdd1a('0xa')])[_0xdd1a('0xb')](_0xdd1a('0xc')))[_0xdd1a('0xd')]()[_0xdd1a('0xb')](),'$lte':moment(moment(_0xd8ff49['$lte'])[_0xdd1a('0xb')](_0xdd1a('0xc')))[_0xdd1a('0xd')]()[_0xdd1a('0xe')](0x1,'s')[_0xdd1a('0xb')]()};_0xf52d5[_0xe0957c]=_0x30cd10;}else if(_0x1a8c79['name']===_0xdd1a('0xf')){_0xf52d5[_0xe0957c]=_0x1aab76;}else{_0xf52d5[_0xe0957c]=_[_0xdd1a('0x10')](_0x1aab76)?_0x1aab76:JSON['parse'](_0x1aab76);}}else{_0xf52d5[_0xe0957c]=_[_0xdd1a('0x10')](_0x1aab76)?_0x1aab76:JSON[_0xdd1a('0x2')](_0x1aab76);}}catch(_0x1f66e2){_0xf52d5[_0xe0957c]=_0x1aab76[_0xdd1a('0x11')](',');}});}return _0xf52d5;};exports['limit']=function(_0x3cd1f9){_0x3cd1f9=parseInt(_0x3cd1f9,0xa);if(!_0x3cd1f9||_0x3cd1f9<0x0){_0x3cd1f9=LIMIT_VALUE;}return _0x3cd1f9;};exports['offset']=function(_0x3b4472){_0x3b4472=parseInt(_0x3b4472,0xa);if(!_0x3b4472||_0x3b4472<0x0){_0x3b4472=0x0;}return _0x3b4472;};exports[_0xdd1a('0x12')]=function(_0x3c27da){var _0x26c851,_0x57f907=null;if(_0x3c27da){_0x26c851=_0x3c27da[_0xdd1a('0x11')](',');_0x57f907=_[_0xdd1a('0x13')](_0x26c851,function(_0x1323af){if(_0x1323af['indexOf']('-')===0x0){return[_0x1323af===_0xdd1a('0x14')?sequelize[_0xdd1a('0x15')](sequelize[_0xdd1a('0x16')](_0xdd1a('0x14')),_0xdd1a('0x17')):_0x1323af[_0xdd1a('0x18')](0x1),_0xdd1a('0x19')];}else{return[_0x1323af==='priority'?sequelize[_0xdd1a('0x15')](sequelize[_0xdd1a('0x16')](_0xdd1a('0x14')),'unsigned'):_0x1323af,_0xdd1a('0x1a')];}});}return _0x57f907;};exports[_0xdd1a('0x1b')]=function(_0x156646,_0x60f617){if(_[_0xdd1a('0x1c')](_0x156646)){return _0x156646;}if(_[_0xdd1a('0x10')](_0x156646)){for(var _0x17098b=0x0;_0x17098b<_0x156646[_0xdd1a('0x1d')];_0x17098b+=0x1){_0x156646[_0x17098b]=this[_0xdd1a('0x1b')](_0x156646[_0x17098b],_0x60f617);}return _0x156646;}if(!_['isObject'](_0x156646)){return _0x156646;}if(_[_0xdd1a('0x1e')](_0x60f617)){_0x60f617=[_0x60f617];}if(!_[_0xdd1a('0x10')](_0x60f617)){return _0x156646;}for(var _0x49551f=0x0;_0x49551f<_0x60f617['length'];_0x49551f+=0x1){_['unset'](_0x156646,_0x60f617[_0x49551f]);}for(var _0x15b632 in _0x156646){if(_0x156646[_0xdd1a('0x1f')](_0x15b632)){_0x156646[_0x15b632]=this[_0xdd1a('0x1b')](_0x156646[_0x15b632],_0x60f617);}}return _0x156646;};exports[_0xdd1a('0x20')]=function(_0x18df8f){return _0x18df8f[_0xdd1a('0x21')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xdd1a('0x22')]=function(_0x555ede){return _0x555ede[_0xdd1a('0x21')](/^\S+@\S+$/)?!![]:![];};exports[_0xdd1a('0x23')]=function(_0xab3b95){var _0x38fed1=[];_0xab3b95[_0xdd1a('0x11')](/[ ,]+/)[_0xdd1a('0x24')](function(_0x45f452){_0x45f452=_0x45f452[_0xdd1a('0x25')](/([^:]")"+/g,'$1');_0x45f452='+'+_0x45f452+'*';if(_0x45f452[_0xdd1a('0x4')]('@'))_0x45f452='\x22'+_0x45f452+'\x22';_0x38fed1[_0xdd1a('0x26')](_0x45f452);});return _0x38fed1[_0xdd1a('0x27')]('\x20');};exports[_0xdd1a('0x28')]=function(_0x55bfac,_0x4abb59,_0x512bbf){var _0x50e0e7={},_0xce2a58={};if(_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x2a')]){_0x4abb59[_0xdd1a('0x29')]['id']=_0x4abb59['query'][_0xdd1a('0x2a')];delete _0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x2a')];}_0x50e0e7[_0xdd1a('0x2b')]=_[_0xdd1a('0x13')](_0x55bfac,'name');_0x50e0e7[_0xdd1a('0x29')]=_['keys'](_0x4abb59['query']);_0x50e0e7[_0xdd1a('0x2c')]=_[_0xdd1a('0x2d')](_0x50e0e7['model'],_0x50e0e7[_0xdd1a('0x29')]);_0xce2a58['attributes']=_['intersection'](_0x50e0e7['model'],this['fields'](_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x5')]));_0xce2a58['attributes']=_0xce2a58[_0xdd1a('0x2e')][_0xdd1a('0x1d')]?_0xce2a58[_0xdd1a('0x2e')]:_0x50e0e7['model'];if(!_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x1f')](_0xdd1a('0x2f'))){_0xce2a58['limit']=this[_0xdd1a('0x30')](_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x30')]);_0xce2a58[_0xdd1a('0x31')]=this['offset'](_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x31')]);}_0xce2a58['order']=this[_0xdd1a('0x12')](_0x4abb59[_0xdd1a('0x29')]['sort']);_0xce2a58[_0xdd1a('0x32')]=this['filters'](_[_0xdd1a('0x33')](_0x4abb59[_0xdd1a('0x29')],_0x50e0e7[_0xdd1a('0x2c')]),_0x55bfac);if(_0x4abb59[_0xdd1a('0x29')]['filter']){var _0x5d3f02=_0x55bfac;var _0x48dd3f=_0x4abb59['query'][_0xdd1a('0x34')];if(typeof _0x48dd3f===_0xdd1a('0x35')){_0x5d3f02=_[_0xdd1a('0x34')](_0x55bfac,function(_0x3be13f){return _[_0xdd1a('0x4')](_0x48dd3f[_0xdd1a('0x36')],_0x3be13f[_0xdd1a('0x37')]);});_0x48dd3f=_0x48dd3f[_0xdd1a('0x38')];}_0xce2a58[_0xdd1a('0x32')]=_[_0xdd1a('0x39')](_0xce2a58[_0xdd1a('0x32')],{'$or':_['map'](_0x5d3f02,function(_0x52f4bb){if(_0x52f4bb[_0xdd1a('0x3a')]!==_0xdd1a('0x3b')){if(_0x512bbf){return sequelize['where'](sequelize['fn'](_0xdd1a('0x3c'),sequelize[_0xdd1a('0x16')](_0x52f4bb[_0xdd1a('0x37')])),{'$like':sequelize['fn']('lower','%'+_0x4abb59['query'][_0xdd1a('0x34')]+'%')});}else{var _0x253416={};_0x253416[_0x52f4bb[_0xdd1a('0x37')]]={'$like':'%'+_0x4abb59[_0xdd1a('0x29')][_0xdd1a('0x34')]+'%'};return _0x253416;}}})});}_0xce2a58=_[_0xdd1a('0x39')]({},_0xce2a58,_0x4abb59['options']);return _0xce2a58;};