Built motion from commit 4c281f94.|2.6.31
[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 _0x813a=['substr','DESC','cast','length','isObject','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','\x22{EXPR}\x22','replace','trim','push','{EXPR}','join','getOptions','query','$id','map','name','intersection','attributes','order','where','pick','filter','object','columns','value','merge','VIRTUAL','lower','options','include','includeAll','keys','escapeLIKESpecialChars','lodash','sequelize','moment','../../mysqldb','includes','parse','model','alias','fields','raw','split','filters','forOwn','type','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','subtract','uniqueid','isArray','limit','offset','sort','priority','col','unsigned'];(function(_0x396797,_0x5d0b91){var _0x3f7c0a=function(_0x50e5e2){while(--_0x50e5e2){_0x396797['push'](_0x396797['shift']());}};_0x3f7c0a(++_0x5d0b91);}(_0x813a,0x1cd));var _0xa813=function(_0x2cd3c5,_0x4a7d78){_0x2cd3c5=_0x2cd3c5-0x0;var _0x12b475=_0x813a[_0x2cd3c5];return _0x12b475;};'use strict';var _=require(_0xa813('0x0'));var sequelize=require(_0xa813('0x1'));var moment=require(_0xa813('0x2'));var db=require(_0xa813('0x3'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0xf6d13a){var _0x2b80a5=['ne'];try{var _0x2227c0=JSON['parse'](_0xf6d13a);var _0x1473db=Object['keys'](_0x2227c0)[0x0];return _0x2b80a5[_0xa813('0x4')](_0x1473db);}catch(_0x366e54){return![];}}function getOperatorValue(_0x4ddcc3){var _0x5b015f=JSON[_0xa813('0x5')](_0x4ddcc3);var _0x519993=Object['keys'](_0x5b015f)[0x0];var _0x4cdc96=_0x5b015f[_0x519993];return{['$'+_0x519993]:_0x4cdc96};}function parseIncludeModel(_0xd42deb){var _0x85fe41=JSON['parse'](_0xd42deb);return{'model':db[_0x85fe41[_0xa813('0x6')]],'as':_0x85fe41[_0xa813('0x7')],'attributes':_0x85fe41[_0xa813('0x8')],'raw':_0x85fe41[_0xa813('0x9')]};}exports[_0xa813('0x8')]=function(_0x2e377a){var _0x278598=null;if(_0x2e377a){_0x278598=_0x2e377a[_0xa813('0xa')](',');}return _0x278598;};exports[_0xa813('0xb')]=function(_0x1b02fd,_0x20dc45){var _0x1c1904={};if(!_['isEmpty'](_0x1b02fd)){_[_0xa813('0xc')](_0x1b02fd,function(_0x5f189d,_0x173962){try{if(_0x20dc45){var _0x496c7c=_['find'](_0x20dc45,{'name':_0x173962})||{};if(hasSequelizeOperator(_0x5f189d)){_0x1c1904[_0x173962]=getOperatorValue(_0x5f189d);}else if(_0x496c7c[_0xa813('0xd')]==='DATE'&&_[_0xa813('0xe')](_0x5f189d)){var _0x14ce4b=JSON[_0xa813('0x5')](_0x5f189d);var _0x4289bc={'$gte':moment(moment(_0x14ce4b[_0xa813('0xf')])[_0xa813('0x10')](_0xa813('0x11')))[_0xa813('0x12')]()['format'](),'$lte':moment(moment(_0x14ce4b[_0xa813('0x13')])[_0xa813('0x10')](_0xa813('0x11')))[_0xa813('0x12')]()[_0xa813('0x14')](0x1,'s')[_0xa813('0x10')]()};_0x1c1904[_0x173962]=_0x4289bc;}else if(_0x496c7c['name']===_0xa813('0x15')){_0x1c1904[_0x173962]=_0x5f189d;}else{_0x1c1904[_0x173962]=_[_0xa813('0x16')](_0x5f189d)?_0x5f189d:JSON[_0xa813('0x5')](_0x5f189d);}}else{_0x1c1904[_0x173962]=_[_0xa813('0x16')](_0x5f189d)?_0x5f189d:JSON[_0xa813('0x5')](_0x5f189d);}}catch(_0x106627){_0x1c1904[_0x173962]=_0x5f189d[_0xa813('0xa')](',');}});}return _0x1c1904;};exports[_0xa813('0x17')]=function(_0x4bb624){_0x4bb624=parseInt(_0x4bb624,0xa);if(!_0x4bb624||_0x4bb624<0x0){_0x4bb624=LIMIT_VALUE;}return _0x4bb624;};exports[_0xa813('0x18')]=function(_0x128477){_0x128477=parseInt(_0x128477,0xa);if(!_0x128477||_0x128477<0x0){_0x128477=0x0;}return _0x128477;};exports[_0xa813('0x19')]=function(_0x5de0a4){var _0x15b4f7,_0x3d7e87=null;if(_0x5de0a4){_0x15b4f7=_0x5de0a4[_0xa813('0xa')](',');_0x3d7e87=_['map'](_0x15b4f7,function(_0xda4947){if(_0xda4947['indexOf']('-')===0x0){return[_0xda4947===_0xa813('0x1a')?sequelize['cast'](sequelize[_0xa813('0x1b')](_0xa813('0x1a')),_0xa813('0x1c')):_0xda4947[_0xa813('0x1d')](0x1),_0xa813('0x1e')];}else{return[_0xda4947===_0xa813('0x1a')?sequelize[_0xa813('0x1f')](sequelize[_0xa813('0x1b')]('priority'),_0xa813('0x1c')):_0xda4947,'ASC'];}});}return _0x3d7e87;};exports['omit']=function(_0x14e385,_0xb83c2d){if(_['isEmpty'](_0x14e385)){return _0x14e385;}if(_[_0xa813('0x16')](_0x14e385)){for(var _0x3ef185=0x0;_0x3ef185<_0x14e385[_0xa813('0x20')];_0x3ef185+=0x1){_0x14e385[_0x3ef185]=this['omit'](_0x14e385[_0x3ef185],_0xb83c2d);}return _0x14e385;}if(!_[_0xa813('0x21')](_0x14e385)){return _0x14e385;}if(_[_0xa813('0x22')](_0xb83c2d)){_0xb83c2d=[_0xb83c2d];}if(!_['isArray'](_0xb83c2d)){return _0x14e385;}for(var _0x439f24=0x0;_0x439f24<_0xb83c2d[_0xa813('0x20')];_0x439f24+=0x1){_[_0xa813('0x23')](_0x14e385,_0xb83c2d[_0x439f24]);}for(var _0x28f6ee in _0x14e385){if(_0x14e385[_0xa813('0x24')](_0x28f6ee)){_0x14e385[_0x28f6ee]=this['omit'](_0x14e385[_0x28f6ee],_0xb83c2d);}}return _0x14e385;};exports[_0xa813('0x25')]=function(_0xca6efb){return _0xca6efb[_0xa813('0x26')](RegExp(_0xa813('0x27')))?!![]:![];};exports[_0xa813('0x28')]=function(_0x101fda){return _0x101fda[_0xa813('0x26')](/^\S+@\S+$/)?!![]:![];};exports[_0xa813('0x29')]=function(_0x12973b,_0x29e06c){var _0x37a259=[];var _0x19c83e=/([^:]")"+/g;var _0x1e3b57=/[*<>~@-]/g;var _0x1aca40=/[ `!@#$%^&*()_\-?~<>]/;var _0x5040d7=/[ ,]+/;var _0x3311fc=_0x29e06c?_0xa813('0x2a'):'{EXPR}';if(_0x29e06c){_0x12973b=_0x12973b[_0xa813('0x2b')](_0x1e3b57,'\x20')[_0xa813('0x2c')]();}_0x12973b[_0xa813('0xa')](_0x5040d7)['forEach'](function(_0x1d1e9e){_0x1d1e9e=_0x1d1e9e[_0xa813('0x2b')](_0x19c83e,'$1');_0x1d1e9e='+'+_0x1d1e9e+'*';var _0x1119e9=_0x1d1e9e[_0xa813('0x26')](_0x1aca40);if(_0x1119e9){_0x1d1e9e='\x22'+_0x1d1e9e+'\x22';}_0x37a259[_0xa813('0x2d')](_0x1d1e9e);});_0x3311fc=_0x3311fc['replace'](_0xa813('0x2e'),_0x37a259[_0xa813('0x2f')]('\x20'));return _0x3311fc;};exports[_0xa813('0x30')]=function(_0x3fe20b,_0x323354,_0x2fb827){var _0x29a8b5={},_0x3f2cd3={};if(_0x323354[_0xa813('0x31')][_0xa813('0x32')]){_0x323354[_0xa813('0x31')]['id']=_0x323354[_0xa813('0x31')][_0xa813('0x32')];delete _0x323354[_0xa813('0x31')][_0xa813('0x32')];}_0x29a8b5[_0xa813('0x6')]=_[_0xa813('0x33')](_0x3fe20b,_0xa813('0x34'));_0x29a8b5['query']=_['keys'](_0x323354[_0xa813('0x31')]);_0x29a8b5['filters']=_[_0xa813('0x35')](_0x29a8b5[_0xa813('0x6')],_0x29a8b5[_0xa813('0x31')]);_0x3f2cd3[_0xa813('0x36')]=_['intersection'](_0x29a8b5[_0xa813('0x6')],this['fields'](_0x323354[_0xa813('0x31')][_0xa813('0x8')]));_0x3f2cd3[_0xa813('0x36')]=_0x3f2cd3['attributes'][_0xa813('0x20')]?_0x3f2cd3['attributes']:_0x29a8b5[_0xa813('0x6')];if(!_0x323354[_0xa813('0x31')][_0xa813('0x24')]('nolimit')){_0x3f2cd3[_0xa813('0x17')]=this['limit'](_0x323354[_0xa813('0x31')][_0xa813('0x17')]);_0x3f2cd3['offset']=this[_0xa813('0x18')](_0x323354[_0xa813('0x31')][_0xa813('0x18')]);}_0x3f2cd3[_0xa813('0x37')]=this[_0xa813('0x19')](_0x323354['query'][_0xa813('0x19')]);_0x3f2cd3[_0xa813('0x38')]=this[_0xa813('0xb')](_[_0xa813('0x39')](_0x323354['query'],_0x29a8b5['filters']),_0x3fe20b);if(_0x323354[_0xa813('0x31')][_0xa813('0x3a')]){var _0x283ae9=_0x3fe20b;var _0x4e37fd=_0x323354[_0xa813('0x31')][_0xa813('0x3a')];if(typeof _0x4e37fd===_0xa813('0x3b')){_0x283ae9=_['filter'](_0x3fe20b,function(_0x1c51f2){return _[_0xa813('0x4')](_0x4e37fd[_0xa813('0x3c')],_0x1c51f2[_0xa813('0x34')]);});_0x4e37fd=_0x4e37fd[_0xa813('0x3d')];}_0x3f2cd3[_0xa813('0x38')]=_[_0xa813('0x3e')](_0x3f2cd3[_0xa813('0x38')],{'$or':_['map'](_0x283ae9,function(_0x1d4083){if(_0x1d4083[_0xa813('0xd')]!==_0xa813('0x3f')){if(_0x2fb827){return sequelize[_0xa813('0x38')](sequelize['fn'](_0xa813('0x40'),sequelize[_0xa813('0x1b')](_0x1d4083[_0xa813('0x34')])),{'$like':sequelize['fn'](_0xa813('0x40'),'%'+_0x323354[_0xa813('0x31')][_0xa813('0x3a')]+'%')});}else{var _0x4f01c6={};_0x4f01c6[_0x1d4083[_0xa813('0x34')]]={'$like':'%'+_0x323354['query'][_0xa813('0x3a')]+'%'};return _0x4f01c6;}}})});}_0x3f2cd3=_[_0xa813('0x3e')]({},_0x3f2cd3,_0x323354[_0xa813('0x41')]);return _0x3f2cd3;};exports[_0xa813('0x42')]=function(_0x83b4f7){var _0x2d2639=[];if(_0x83b4f7[_0xa813('0x43')]){_0x2d2639[_0xa813('0x2d')]({'all':!![]});}else if(_0x83b4f7[_0xa813('0x42')]){if(Array[_0xa813('0x16')](_0x83b4f7[_0xa813('0x42')])){_0x2d2639=Object[_0xa813('0x44')](_0x83b4f7[_0xa813('0x42')])[_0xa813('0x33')](function(_0x2f5a97){return parseIncludeModel(_0x83b4f7[_0xa813('0x42')][_0x2f5a97]);});}else{var _0x191fb6=parseIncludeModel(_0x83b4f7[_0xa813('0x42')]);_0x2d2639[_0xa813('0x2d')](_0x191fb6);}}return _0x2d2639;};exports[_0xa813('0x45')]=function(_0x544815){return _0x544815[_0xa813('0x2b')](/[%_^-]/g,function(_0x36d658){return'\x5c'+_0x36d658;});};