Built motion from commit b0a9a629.|2.6.33
[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 _0x880b=['keys','includes','model','alias','split','filters','isEmpty','forOwn','find','type','DATE','isPlainObject','$gte','format','utc','YYYY-MM-DD','subtract','name','uniqueid','isArray','limit','offset','map','priority','cast','unsigned','substr','DESC','col','omit','length','isObject','isString','unset','hasOwnProperty','isNumeric','match','isEmail','getFullTextValue','\x22{EXPR}\x22','replace','forEach','push','{EXPR}','query','$id','intersection','fields','attributes','order','sort','pick','filter','object','columns','value','where','lower','merge','options','include','escapeLIKESpecialChars','lodash','sequelize','moment','../../mysqldb','parse'];(function(_0x4ac494,_0x27bd53){var _0x1e410f=function(_0x57e87b){while(--_0x57e87b){_0x4ac494['push'](_0x4ac494['shift']());}};_0x1e410f(++_0x27bd53);}(_0x880b,0x18d));var _0xb880=function(_0x1058aa,_0x43c08f){_0x1058aa=_0x1058aa-0x0;var _0x2f9bd8=_0x880b[_0x1058aa];return _0x2f9bd8;};'use strict';var _=require(_0xb880('0x0'));var sequelize=require(_0xb880('0x1'));var moment=require(_0xb880('0x2'));var db=require(_0xb880('0x3'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x97a109){var _0x3f0e43=['ne'];try{var _0x54b51f=JSON[_0xb880('0x4')](_0x97a109);var _0x41dac5=Object[_0xb880('0x5')](_0x54b51f)[0x0];return _0x3f0e43[_0xb880('0x6')](_0x41dac5);}catch(_0x117df8){return![];}}function getOperatorValue(_0xcaa234){var _0x580116=JSON['parse'](_0xcaa234);var _0x2ce261=Object['keys'](_0x580116)[0x0];var _0x250fbf=_0x580116[_0x2ce261];return{['$'+_0x2ce261]:_0x250fbf};}function parseIncludeModel(_0x5135ef){var _0x1b8692=JSON[_0xb880('0x4')](_0x5135ef);return{'model':db[_0x1b8692[_0xb880('0x7')]],'as':_0x1b8692[_0xb880('0x8')],'attributes':_0x1b8692['fields'],'raw':_0x1b8692['raw']};}exports['fields']=function(_0x229bdc){var _0x6cff72=null;if(_0x229bdc){_0x6cff72=_0x229bdc[_0xb880('0x9')](',');}return _0x6cff72;};exports[_0xb880('0xa')]=function(_0x5ba637,_0x46efcb){var _0x55a1ac={};if(!_[_0xb880('0xb')](_0x5ba637)){_[_0xb880('0xc')](_0x5ba637,function(_0x29d5b6,_0x49c309){try{if(_0x46efcb){var _0x18217c=_[_0xb880('0xd')](_0x46efcb,{'name':_0x49c309})||{};if(hasSequelizeOperator(_0x29d5b6)){_0x55a1ac[_0x49c309]=getOperatorValue(_0x29d5b6);}else if(_0x18217c[_0xb880('0xe')]===_0xb880('0xf')&&_[_0xb880('0x10')](_0x29d5b6)){var _0xe237ba=JSON[_0xb880('0x4')](_0x29d5b6);var _0x29a7ec={'$gte':moment(moment(_0xe237ba[_0xb880('0x11')])[_0xb880('0x12')]('YYYY-MM-DD'))[_0xb880('0x13')]()['format'](),'$lte':moment(moment(_0xe237ba['$lte'])[_0xb880('0x12')](_0xb880('0x14')))[_0xb880('0x13')]()[_0xb880('0x15')](0x1,'s')[_0xb880('0x12')]()};_0x55a1ac[_0x49c309]=_0x29a7ec;}else if(_0x18217c[_0xb880('0x16')]===_0xb880('0x17')){_0x55a1ac[_0x49c309]=_0x29d5b6;}else{_0x55a1ac[_0x49c309]=_[_0xb880('0x18')](_0x29d5b6)?_0x29d5b6:JSON[_0xb880('0x4')](_0x29d5b6);}}else{_0x55a1ac[_0x49c309]=_[_0xb880('0x18')](_0x29d5b6)?_0x29d5b6:JSON[_0xb880('0x4')](_0x29d5b6);}}catch(_0x2c3d7f){_0x55a1ac[_0x49c309]=_0x29d5b6[_0xb880('0x9')](',');}});}return _0x55a1ac;};exports[_0xb880('0x19')]=function(_0x1a12c9){_0x1a12c9=parseInt(_0x1a12c9,0xa);if(!_0x1a12c9||_0x1a12c9<0x0){_0x1a12c9=LIMIT_VALUE;}return _0x1a12c9;};exports[_0xb880('0x1a')]=function(_0x2729fe){_0x2729fe=parseInt(_0x2729fe,0xa);if(!_0x2729fe||_0x2729fe<0x0){_0x2729fe=0x0;}return _0x2729fe;};exports['sort']=function(_0xae90a9){var _0x45fd2f,_0x238e27=null;if(_0xae90a9){_0x45fd2f=_0xae90a9[_0xb880('0x9')](',');_0x238e27=_[_0xb880('0x1b')](_0x45fd2f,function(_0x126cbb){if(_0x126cbb['indexOf']('-')===0x0){return[_0x126cbb===_0xb880('0x1c')?sequelize[_0xb880('0x1d')](sequelize['col'](_0xb880('0x1c')),_0xb880('0x1e')):_0x126cbb[_0xb880('0x1f')](0x1),_0xb880('0x20')];}else{return[_0x126cbb===_0xb880('0x1c')?sequelize[_0xb880('0x1d')](sequelize[_0xb880('0x21')]('priority'),_0xb880('0x1e')):_0x126cbb,'ASC'];}});}return _0x238e27;};exports[_0xb880('0x22')]=function(_0x405a5c,_0x42cc3f){if(_[_0xb880('0xb')](_0x405a5c)){return _0x405a5c;}if(_[_0xb880('0x18')](_0x405a5c)){for(var _0x138460=0x0;_0x138460<_0x405a5c[_0xb880('0x23')];_0x138460+=0x1){_0x405a5c[_0x138460]=this[_0xb880('0x22')](_0x405a5c[_0x138460],_0x42cc3f);}return _0x405a5c;}if(!_[_0xb880('0x24')](_0x405a5c)){return _0x405a5c;}if(_[_0xb880('0x25')](_0x42cc3f)){_0x42cc3f=[_0x42cc3f];}if(!_[_0xb880('0x18')](_0x42cc3f)){return _0x405a5c;}for(var _0x3f131a=0x0;_0x3f131a<_0x42cc3f[_0xb880('0x23')];_0x3f131a+=0x1){_[_0xb880('0x26')](_0x405a5c,_0x42cc3f[_0x3f131a]);}for(var _0x2d62d2 in _0x405a5c){if(_0x405a5c[_0xb880('0x27')](_0x2d62d2)){_0x405a5c[_0x2d62d2]=this[_0xb880('0x22')](_0x405a5c[_0x2d62d2],_0x42cc3f);}}return _0x405a5c;};exports[_0xb880('0x28')]=function(_0x2939d){return _0x2939d[_0xb880('0x29')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xb880('0x2a')]=function(_0x229194){return _0x229194[_0xb880('0x29')](/^\S+@\S+$/)?!![]:![];};exports[_0xb880('0x2b')]=function(_0x59404e,_0x3ae4ac){var _0x3a7b6b=[];var _0x12fce2=/([^:]")"+/g;var _0x1210c9=/[*<>~@-]/g;var _0x5d3560=/[ `!@#$%^&*()_\-?~<>]/;var _0x531d71=/[ ,]+/;var _0x34fb3c=_0x3ae4ac?_0xb880('0x2c'):'{EXPR}';if(_0x3ae4ac){_0x59404e=_0x59404e[_0xb880('0x2d')](_0x1210c9,'\x20')['trim']();}_0x59404e[_0xb880('0x9')](_0x531d71)[_0xb880('0x2e')](function(_0x5c4cd8){_0x5c4cd8=_0x5c4cd8['replace'](_0x12fce2,'$1');_0x5c4cd8='+'+_0x5c4cd8+'*';var _0x33a118=_0x5c4cd8[_0xb880('0x29')](_0x5d3560);if(_0x33a118){_0x5c4cd8='\x22'+_0x5c4cd8+'\x22';}_0x3a7b6b[_0xb880('0x2f')](_0x5c4cd8);});_0x34fb3c=_0x34fb3c[_0xb880('0x2d')](_0xb880('0x30'),_0x3a7b6b['join']('\x20'));return _0x34fb3c;};exports['getOptions']=function(_0x2cadbc,_0x5e7003,_0x1b16b8){var _0x1b8380={},_0x182767={};if(_0x5e7003[_0xb880('0x31')][_0xb880('0x32')]){_0x5e7003[_0xb880('0x31')]['id']=_0x5e7003[_0xb880('0x31')][_0xb880('0x32')];delete _0x5e7003['query'][_0xb880('0x32')];}_0x1b8380[_0xb880('0x7')]=_[_0xb880('0x1b')](_0x2cadbc,_0xb880('0x16'));_0x1b8380['query']=_[_0xb880('0x5')](_0x5e7003[_0xb880('0x31')]);_0x1b8380[_0xb880('0xa')]=_[_0xb880('0x33')](_0x1b8380[_0xb880('0x7')],_0x1b8380[_0xb880('0x31')]);_0x182767['attributes']=_['intersection'](_0x1b8380[_0xb880('0x7')],this[_0xb880('0x34')](_0x5e7003[_0xb880('0x31')][_0xb880('0x34')]));_0x182767['attributes']=_0x182767['attributes']['length']?_0x182767[_0xb880('0x35')]:_0x1b8380['model'];if(!_0x5e7003['query']['hasOwnProperty']('nolimit')){_0x182767[_0xb880('0x19')]=this[_0xb880('0x19')](_0x5e7003['query']['limit']);_0x182767[_0xb880('0x1a')]=this[_0xb880('0x1a')](_0x5e7003[_0xb880('0x31')][_0xb880('0x1a')]);}_0x182767[_0xb880('0x36')]=this[_0xb880('0x37')](_0x5e7003['query'][_0xb880('0x37')]);_0x182767['where']=this[_0xb880('0xa')](_[_0xb880('0x38')](_0x5e7003[_0xb880('0x31')],_0x1b8380[_0xb880('0xa')]),_0x2cadbc);if(_0x5e7003[_0xb880('0x31')][_0xb880('0x39')]){var _0xd9d114=_0x2cadbc;var _0x4ce13c=_0x5e7003[_0xb880('0x31')][_0xb880('0x39')];if(typeof _0x4ce13c===_0xb880('0x3a')){_0xd9d114=_['filter'](_0x2cadbc,function(_0x6a6482){return _['includes'](_0x4ce13c[_0xb880('0x3b')],_0x6a6482[_0xb880('0x16')]);});_0x4ce13c=_0x4ce13c[_0xb880('0x3c')];}_0x182767['where']=_['merge'](_0x182767[_0xb880('0x3d')],{'$or':_[_0xb880('0x1b')](_0xd9d114,function(_0x1918e5){if(_0x1918e5['type']!=='VIRTUAL'){if(_0x1b16b8){return sequelize['where'](sequelize['fn'](_0xb880('0x3e'),sequelize['col'](_0x1918e5[_0xb880('0x16')])),{'$like':sequelize['fn'](_0xb880('0x3e'),'%'+_0x5e7003['query']['filter']+'%')});}else{var _0x805834={};_0x805834[_0x1918e5[_0xb880('0x16')]]={'$like':'%'+_0x5e7003['query'][_0xb880('0x39')]+'%'};return _0x805834;}}})});}_0x182767=_[_0xb880('0x3f')]({},_0x182767,_0x5e7003[_0xb880('0x40')]);return _0x182767;};exports[_0xb880('0x41')]=function(_0x71cdb){var _0x5b7a6e=[];if(_0x71cdb['includeAll']){_0x5b7a6e[_0xb880('0x2f')]({'all':!![]});}else if(_0x71cdb[_0xb880('0x41')]){if(Array[_0xb880('0x18')](_0x71cdb[_0xb880('0x41')])){_0x5b7a6e=Object[_0xb880('0x5')](_0x71cdb[_0xb880('0x41')])['map'](function(_0x3de5cd){return parseIncludeModel(_0x71cdb[_0xb880('0x41')][_0x3de5cd]);});}else{var _0x165d4c=parseIncludeModel(_0x71cdb[_0xb880('0x41')]);_0x5b7a6e[_0xb880('0x2f')](_0x165d4c);}}return _0x5b7a6e;};exports[_0xb880('0x42')]=function(_0x51aa53){return _0x51aa53[_0xb880('0x2d')](/[%_^-]/g,function(_0x2b58f3){return'\x5c'+_0x2b58f3;});};