Built motion from commit bab6f49e.|2.6.17
[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 _0x407e=['^[+]?[0-9]*$','getFullTextValue','\x22{EXPR}\x22','{EXPR}','forEach','replace','push','getOptions','query','$id','model','intersection','attributes','hasOwnProperty','nolimit','limit','offset','order','where','filter','object','columns','value','merge','type','VIRTUAL','lower','options','lodash','sequelize','moment','keys','parse','fields','split','filters','isEmpty','forOwn','find','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','name','uniqueid','isArray','sort','map','indexOf','priority','cast','col','unsigned','DESC','ASC','omit','isObject','isString','length','unset','isNumeric','match'];(function(_0x37424f,_0x361333){var _0xd433df=function(_0x4999e1){while(--_0x4999e1){_0x37424f['push'](_0x37424f['shift']());}};_0xd433df(++_0x361333);}(_0x407e,0x1a2));var _0xe407=function(_0x1b964a,_0x40fdc2){_0x1b964a=_0x1b964a-0x0;var _0x2559fa=_0x407e[_0x1b964a];return _0x2559fa;};'use strict';var _=require(_0xe407('0x0'));var sequelize=require(_0xe407('0x1'));var moment=require(_0xe407('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1105ec){var _0x146bb2=['ne'];try{var _0x3552db=JSON['parse'](_0x1105ec);var _0x55b479=Object[_0xe407('0x3')](_0x3552db)[0x0];return _0x146bb2['includes'](_0x55b479);}catch(_0x542562){return![];}}function getOperatorValue(_0x4e32f8){var _0x21e2e0=JSON[_0xe407('0x4')](_0x4e32f8);var _0x1ddfa5=Object[_0xe407('0x3')](_0x21e2e0)[0x0];var _0x48564c=_0x21e2e0[_0x1ddfa5];return{['$'+_0x1ddfa5]:_0x48564c};}exports[_0xe407('0x5')]=function(_0x1d0a7f){var _0xd7cf88=null;if(_0x1d0a7f){_0xd7cf88=_0x1d0a7f[_0xe407('0x6')](',');}return _0xd7cf88;};exports[_0xe407('0x7')]=function(_0xd5295f,_0x55977f){var _0xfd5577={};if(!_[_0xe407('0x8')](_0xd5295f)){_[_0xe407('0x9')](_0xd5295f,function(_0x4a8b03,_0x2abbd6){try{if(_0x55977f){var _0xd0d077=_[_0xe407('0xa')](_0x55977f,{'name':_0x2abbd6})||{};if(hasSequelizeOperator(_0x4a8b03)){_0xfd5577[_0x2abbd6]=getOperatorValue(_0x4a8b03);}else if(_0xd0d077['type']===_0xe407('0xb')&&_[_0xe407('0xc')](_0x4a8b03)){var _0x71d1c3=JSON[_0xe407('0x4')](_0x4a8b03);var _0x57e30f={'$gte':moment(moment(_0x71d1c3[_0xe407('0xd')])[_0xe407('0xe')](_0xe407('0xf')))[_0xe407('0x10')]()[_0xe407('0xe')](),'$lte':moment(moment(_0x71d1c3[_0xe407('0x11')])[_0xe407('0xe')](_0xe407('0xf')))[_0xe407('0x10')]()['subtract'](0x1,'s')[_0xe407('0xe')]()};_0xfd5577[_0x2abbd6]=_0x57e30f;}else if(_0xd0d077[_0xe407('0x12')]===_0xe407('0x13')){_0xfd5577[_0x2abbd6]=_0x4a8b03;}else{_0xfd5577[_0x2abbd6]=_[_0xe407('0x14')](_0x4a8b03)?_0x4a8b03:JSON['parse'](_0x4a8b03);}}else{_0xfd5577[_0x2abbd6]=_[_0xe407('0x14')](_0x4a8b03)?_0x4a8b03:JSON[_0xe407('0x4')](_0x4a8b03);}}catch(_0xb0d0ad){_0xfd5577[_0x2abbd6]=_0x4a8b03[_0xe407('0x6')](',');}});}return _0xfd5577;};exports['limit']=function(_0x1171ac){_0x1171ac=parseInt(_0x1171ac,0xa);if(!_0x1171ac||_0x1171ac<0x0){_0x1171ac=LIMIT_VALUE;}return _0x1171ac;};exports['offset']=function(_0x131fcc){_0x131fcc=parseInt(_0x131fcc,0xa);if(!_0x131fcc||_0x131fcc<0x0){_0x131fcc=0x0;}return _0x131fcc;};exports[_0xe407('0x15')]=function(_0x1211ec){var _0x25cc10,_0x1f5929=null;if(_0x1211ec){_0x25cc10=_0x1211ec[_0xe407('0x6')](',');_0x1f5929=_[_0xe407('0x16')](_0x25cc10,function(_0xeca012){if(_0xeca012[_0xe407('0x17')]('-')===0x0){return[_0xeca012===_0xe407('0x18')?sequelize[_0xe407('0x19')](sequelize[_0xe407('0x1a')](_0xe407('0x18')),_0xe407('0x1b')):_0xeca012['substr'](0x1),_0xe407('0x1c')];}else{return[_0xeca012===_0xe407('0x18')?sequelize[_0xe407('0x19')](sequelize['col'](_0xe407('0x18')),_0xe407('0x1b')):_0xeca012,_0xe407('0x1d')];}});}return _0x1f5929;};exports[_0xe407('0x1e')]=function(_0x61beb1,_0x36356d){if(_[_0xe407('0x8')](_0x61beb1)){return _0x61beb1;}if(_[_0xe407('0x14')](_0x61beb1)){for(var _0x5e1893=0x0;_0x5e1893<_0x61beb1['length'];_0x5e1893+=0x1){_0x61beb1[_0x5e1893]=this['omit'](_0x61beb1[_0x5e1893],_0x36356d);}return _0x61beb1;}if(!_[_0xe407('0x1f')](_0x61beb1)){return _0x61beb1;}if(_[_0xe407('0x20')](_0x36356d)){_0x36356d=[_0x36356d];}if(!_[_0xe407('0x14')](_0x36356d)){return _0x61beb1;}for(var _0x1785fb=0x0;_0x1785fb<_0x36356d[_0xe407('0x21')];_0x1785fb+=0x1){_[_0xe407('0x22')](_0x61beb1,_0x36356d[_0x1785fb]);}for(var _0x4d55d2 in _0x61beb1){if(_0x61beb1['hasOwnProperty'](_0x4d55d2)){_0x61beb1[_0x4d55d2]=this[_0xe407('0x1e')](_0x61beb1[_0x4d55d2],_0x36356d);}}return _0x61beb1;};exports[_0xe407('0x23')]=function(_0x53cf91){return _0x53cf91[_0xe407('0x24')](RegExp(_0xe407('0x25')))?!![]:![];};exports['isEmail']=function(_0x441cbf){return _0x441cbf['match'](/^\S+@\S+$/)?!![]:![];};exports[_0xe407('0x26')]=function(_0x368497,_0x54af83){var _0x21c5a0=[];var _0x250817=/[ `!@#$%^&*()_\-?~]/;var _0x1d9cf5=_0x54af83?_0xe407('0x27'):_0xe407('0x28');_0x368497['split'](/[ ,]+/)[_0xe407('0x29')](function(_0x4e49){_0x4e49=_0x4e49[_0xe407('0x2a')](/([^:]")"+/g,'$1');_0x4e49='+'+_0x4e49+'*';var _0x2c767e=_0x4e49['match'](_0x250817);if(_0x2c767e){_0x4e49='\x22'+_0x4e49+'\x22';}_0x21c5a0[_0xe407('0x2b')](_0x4e49);});_0x1d9cf5=_0x1d9cf5[_0xe407('0x2a')](_0xe407('0x28'),_0x21c5a0['join']('\x20'));return _0x1d9cf5;};exports[_0xe407('0x2c')]=function(_0x5aec56,_0x2f86f4,_0x53469b){var _0x49e182={},_0x4050b4={};if(_0x2f86f4['query']['$id']){_0x2f86f4[_0xe407('0x2d')]['id']=_0x2f86f4[_0xe407('0x2d')]['$id'];delete _0x2f86f4['query'][_0xe407('0x2e')];}_0x49e182[_0xe407('0x2f')]=_['map'](_0x5aec56,_0xe407('0x12'));_0x49e182['query']=_[_0xe407('0x3')](_0x2f86f4[_0xe407('0x2d')]);_0x49e182[_0xe407('0x7')]=_['intersection'](_0x49e182[_0xe407('0x2f')],_0x49e182[_0xe407('0x2d')]);_0x4050b4['attributes']=_[_0xe407('0x30')](_0x49e182['model'],this[_0xe407('0x5')](_0x2f86f4[_0xe407('0x2d')]['fields']));_0x4050b4[_0xe407('0x31')]=_0x4050b4[_0xe407('0x31')][_0xe407('0x21')]?_0x4050b4['attributes']:_0x49e182['model'];if(!_0x2f86f4['query'][_0xe407('0x32')](_0xe407('0x33'))){_0x4050b4[_0xe407('0x34')]=this[_0xe407('0x34')](_0x2f86f4['query']['limit']);_0x4050b4[_0xe407('0x35')]=this[_0xe407('0x35')](_0x2f86f4[_0xe407('0x2d')][_0xe407('0x35')]);}_0x4050b4[_0xe407('0x36')]=this[_0xe407('0x15')](_0x2f86f4[_0xe407('0x2d')][_0xe407('0x15')]);_0x4050b4[_0xe407('0x37')]=this[_0xe407('0x7')](_['pick'](_0x2f86f4[_0xe407('0x2d')],_0x49e182[_0xe407('0x7')]),_0x5aec56);if(_0x2f86f4[_0xe407('0x2d')][_0xe407('0x38')]){var _0x14d2bd=_0x5aec56;var _0x2fc4f8=_0x2f86f4[_0xe407('0x2d')]['filter'];if(typeof _0x2fc4f8===_0xe407('0x39')){_0x14d2bd=_[_0xe407('0x38')](_0x5aec56,function(_0x287fb7){return _['includes'](_0x2fc4f8[_0xe407('0x3a')],_0x287fb7[_0xe407('0x12')]);});_0x2fc4f8=_0x2fc4f8[_0xe407('0x3b')];}_0x4050b4[_0xe407('0x37')]=_[_0xe407('0x3c')](_0x4050b4['where'],{'$or':_[_0xe407('0x16')](_0x14d2bd,function(_0x4d33fb){if(_0x4d33fb[_0xe407('0x3d')]!==_0xe407('0x3e')){if(_0x53469b){return sequelize[_0xe407('0x37')](sequelize['fn'](_0xe407('0x3f'),sequelize['col'](_0x4d33fb['name'])),{'$like':sequelize['fn'](_0xe407('0x3f'),'%'+_0x2f86f4[_0xe407('0x2d')]['filter']+'%')});}else{var _0x4a2322={};_0x4a2322[_0x4d33fb['name']]={'$like':'%'+_0x2f86f4[_0xe407('0x2d')][_0xe407('0x38')]+'%'};return _0x4a2322;}}})});}_0x4050b4=_[_0xe407('0x3c')]({},_0x4050b4,_0x2f86f4[_0xe407('0x40')]);return _0x4050b4;};