27e88bb5721790bf3745c17708c35be6e3e0395a
[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 _0xe929=['options','include','escapeLIKESpecialChars','lodash','sequelize','../../mysqldb','parse','keys','model','fields','filters','isEmpty','forOwn','find','isPlainObject','$gte','YYYY-MM-DD','utc','format','subtract','name','uniqueid','limit','offset','sort','split','map','cast','col','priority','unsigned','substr','DESC','isArray','length','omit','isObject','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','getFullTextValue','\x22{EXPR}\x22','forEach','replace','push','{EXPR}','getOptions','query','$id','intersection','attributes','nolimit','where','filter','object','includes','type','lower','merge'];(function(_0x5838cb,_0x1621f3){var _0x35b7eb=function(_0x2398a5){while(--_0x2398a5){_0x5838cb['push'](_0x5838cb['shift']());}};_0x35b7eb(++_0x1621f3);}(_0xe929,0xfb));var _0x9e92=function(_0x3b56c0,_0xe100d8){_0x3b56c0=_0x3b56c0-0x0;var _0x377efe=_0xe929[_0x3b56c0];return _0x377efe;};'use strict';var _=require(_0x9e92('0x0'));var sequelize=require(_0x9e92('0x1'));var moment=require('moment');var db=require(_0x9e92('0x2'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x472e0a){var _0x246493=['ne'];try{var _0x265a73=JSON[_0x9e92('0x3')](_0x472e0a);var _0x489841=Object[_0x9e92('0x4')](_0x265a73)[0x0];return _0x246493['includes'](_0x489841);}catch(_0x62d7d6){return![];}}function getOperatorValue(_0x99014b){var _0x2d5a91=JSON[_0x9e92('0x3')](_0x99014b);var _0x46df72=Object[_0x9e92('0x4')](_0x2d5a91)[0x0];var _0x46c2ec=_0x2d5a91[_0x46df72];return{['$'+_0x46df72]:_0x46c2ec};}function parseIncludeModel(_0x302cc9){var _0x1c86bb=JSON[_0x9e92('0x3')](_0x302cc9);return{'model':db[_0x1c86bb[_0x9e92('0x5')]],'as':_0x1c86bb['alias'],'attributes':_0x1c86bb['fields'],'raw':_0x1c86bb['raw']};}exports[_0x9e92('0x6')]=function(_0x2fbb2e){var _0x2ef1a7=null;if(_0x2fbb2e){_0x2ef1a7=_0x2fbb2e['split'](',');}return _0x2ef1a7;};exports[_0x9e92('0x7')]=function(_0x43e5c5,_0x2b9f35){var _0x3a463e={};if(!_[_0x9e92('0x8')](_0x43e5c5)){_[_0x9e92('0x9')](_0x43e5c5,function(_0x1fd161,_0x2121a7){try{if(_0x2b9f35){var _0x26890a=_[_0x9e92('0xa')](_0x2b9f35,{'name':_0x2121a7})||{};if(hasSequelizeOperator(_0x1fd161)){_0x3a463e[_0x2121a7]=getOperatorValue(_0x1fd161);}else if(_0x26890a['type']==='DATE'&&_[_0x9e92('0xb')](_0x1fd161)){var _0x2d3367=JSON[_0x9e92('0x3')](_0x1fd161);var _0x13165f={'$gte':moment(moment(_0x2d3367[_0x9e92('0xc')])['format'](_0x9e92('0xd')))[_0x9e92('0xe')]()[_0x9e92('0xf')](),'$lte':moment(moment(_0x2d3367['$lte'])[_0x9e92('0xf')](_0x9e92('0xd')))[_0x9e92('0xe')]()[_0x9e92('0x10')](0x1,'s')[_0x9e92('0xf')]()};_0x3a463e[_0x2121a7]=_0x13165f;}else if(_0x26890a[_0x9e92('0x11')]===_0x9e92('0x12')){_0x3a463e[_0x2121a7]=_0x1fd161;}else{_0x3a463e[_0x2121a7]=_['isArray'](_0x1fd161)?_0x1fd161:JSON[_0x9e92('0x3')](_0x1fd161);}}else{_0x3a463e[_0x2121a7]=_['isArray'](_0x1fd161)?_0x1fd161:JSON[_0x9e92('0x3')](_0x1fd161);}}catch(_0x291251){_0x3a463e[_0x2121a7]=_0x1fd161['split'](',');}});}return _0x3a463e;};exports[_0x9e92('0x13')]=function(_0x12ae3f){_0x12ae3f=parseInt(_0x12ae3f,0xa);if(!_0x12ae3f||_0x12ae3f<0x0){_0x12ae3f=LIMIT_VALUE;}return _0x12ae3f;};exports[_0x9e92('0x14')]=function(_0x6fc6f4){_0x6fc6f4=parseInt(_0x6fc6f4,0xa);if(!_0x6fc6f4||_0x6fc6f4<0x0){_0x6fc6f4=0x0;}return _0x6fc6f4;};exports[_0x9e92('0x15')]=function(_0x968abf){var _0x32c6a5,_0x5a2860=null;if(_0x968abf){_0x32c6a5=_0x968abf[_0x9e92('0x16')](',');_0x5a2860=_[_0x9e92('0x17')](_0x32c6a5,function(_0x276823){if(_0x276823['indexOf']('-')===0x0){return[_0x276823==='priority'?sequelize[_0x9e92('0x18')](sequelize[_0x9e92('0x19')](_0x9e92('0x1a')),_0x9e92('0x1b')):_0x276823[_0x9e92('0x1c')](0x1),_0x9e92('0x1d')];}else{return[_0x276823===_0x9e92('0x1a')?sequelize[_0x9e92('0x18')](sequelize[_0x9e92('0x19')](_0x9e92('0x1a')),_0x9e92('0x1b')):_0x276823,'ASC'];}});}return _0x5a2860;};exports['omit']=function(_0x589bda,_0x16ac92){if(_[_0x9e92('0x8')](_0x589bda)){return _0x589bda;}if(_[_0x9e92('0x1e')](_0x589bda)){for(var _0x47b738=0x0;_0x47b738<_0x589bda[_0x9e92('0x1f')];_0x47b738+=0x1){_0x589bda[_0x47b738]=this[_0x9e92('0x20')](_0x589bda[_0x47b738],_0x16ac92);}return _0x589bda;}if(!_[_0x9e92('0x21')](_0x589bda)){return _0x589bda;}if(_[_0x9e92('0x22')](_0x16ac92)){_0x16ac92=[_0x16ac92];}if(!_[_0x9e92('0x1e')](_0x16ac92)){return _0x589bda;}for(var _0x426a0b=0x0;_0x426a0b<_0x16ac92[_0x9e92('0x1f')];_0x426a0b+=0x1){_[_0x9e92('0x23')](_0x589bda,_0x16ac92[_0x426a0b]);}for(var _0x46ade4 in _0x589bda){if(_0x589bda[_0x9e92('0x24')](_0x46ade4)){_0x589bda[_0x46ade4]=this[_0x9e92('0x20')](_0x589bda[_0x46ade4],_0x16ac92);}}return _0x589bda;};exports[_0x9e92('0x25')]=function(_0x3ec87b){return _0x3ec87b[_0x9e92('0x26')](RegExp(_0x9e92('0x27')))?!![]:![];};exports['isEmail']=function(_0x388963){return _0x388963['match'](/^\S+@\S+$/)?!![]:![];};exports[_0x9e92('0x28')]=function(_0x496a44,_0x2663c5){var _0x2ec571=[];var _0x28ca59=/([^:]")"+/g;var _0x45e0a3=/[*<>~@-]/g;var _0x27bec2=/[ `!@#$%^&*()_\-?~<>]/;var _0x1b9583=/[ ,]+/;var _0x395d52=_0x2663c5?_0x9e92('0x29'):'{EXPR}';if(_0x2663c5){_0x496a44=_0x496a44['replace'](_0x45e0a3,'\x20')['trim']();}_0x496a44[_0x9e92('0x16')](_0x1b9583)[_0x9e92('0x2a')](function(_0x2d5e80){_0x2d5e80=_0x2d5e80[_0x9e92('0x2b')](_0x28ca59,'$1');_0x2d5e80='+'+_0x2d5e80+'*';var _0x28e5d8=_0x2d5e80[_0x9e92('0x26')](_0x27bec2);if(_0x28e5d8){_0x2d5e80='\x22'+_0x2d5e80+'\x22';}_0x2ec571[_0x9e92('0x2c')](_0x2d5e80);});_0x395d52=_0x395d52['replace'](_0x9e92('0x2d'),_0x2ec571['join']('\x20'));return _0x395d52;};exports[_0x9e92('0x2e')]=function(_0x49b0e9,_0x543d34,_0x912349){var _0x30fafe={},_0x185b66={};if(_0x543d34[_0x9e92('0x2f')][_0x9e92('0x30')]){_0x543d34['query']['id']=_0x543d34[_0x9e92('0x2f')][_0x9e92('0x30')];delete _0x543d34[_0x9e92('0x2f')][_0x9e92('0x30')];}_0x30fafe[_0x9e92('0x5')]=_[_0x9e92('0x17')](_0x49b0e9,_0x9e92('0x11'));_0x30fafe[_0x9e92('0x2f')]=_['keys'](_0x543d34[_0x9e92('0x2f')]);_0x30fafe['filters']=_[_0x9e92('0x31')](_0x30fafe['model'],_0x30fafe[_0x9e92('0x2f')]);_0x185b66[_0x9e92('0x32')]=_['intersection'](_0x30fafe[_0x9e92('0x5')],this[_0x9e92('0x6')](_0x543d34[_0x9e92('0x2f')]['fields']));_0x185b66[_0x9e92('0x32')]=_0x185b66[_0x9e92('0x32')][_0x9e92('0x1f')]?_0x185b66[_0x9e92('0x32')]:_0x30fafe[_0x9e92('0x5')];if(!_0x543d34[_0x9e92('0x2f')][_0x9e92('0x24')](_0x9e92('0x33'))){_0x185b66[_0x9e92('0x13')]=this[_0x9e92('0x13')](_0x543d34['query'][_0x9e92('0x13')]);_0x185b66[_0x9e92('0x14')]=this[_0x9e92('0x14')](_0x543d34[_0x9e92('0x2f')]['offset']);}_0x185b66['order']=this[_0x9e92('0x15')](_0x543d34[_0x9e92('0x2f')][_0x9e92('0x15')]);_0x185b66[_0x9e92('0x34')]=this[_0x9e92('0x7')](_['pick'](_0x543d34['query'],_0x30fafe[_0x9e92('0x7')]),_0x49b0e9);if(_0x543d34[_0x9e92('0x2f')][_0x9e92('0x35')]){var _0x42790a=_0x49b0e9;var _0x37e156=_0x543d34['query'][_0x9e92('0x35')];if(typeof _0x37e156===_0x9e92('0x36')){_0x42790a=_[_0x9e92('0x35')](_0x49b0e9,function(_0x6c63ff){return _[_0x9e92('0x37')](_0x37e156['columns'],_0x6c63ff[_0x9e92('0x11')]);});_0x37e156=_0x37e156['value'];}_0x185b66[_0x9e92('0x34')]=_['merge'](_0x185b66[_0x9e92('0x34')],{'$or':_[_0x9e92('0x17')](_0x42790a,function(_0x4123a5){if(_0x4123a5[_0x9e92('0x38')]!=='VIRTUAL'){if(_0x912349){return sequelize['where'](sequelize['fn'](_0x9e92('0x39'),sequelize[_0x9e92('0x19')](_0x4123a5[_0x9e92('0x11')])),{'$like':sequelize['fn'](_0x9e92('0x39'),'%'+_0x543d34[_0x9e92('0x2f')]['filter']+'%')});}else{var _0x4f9b74={};_0x4f9b74[_0x4123a5[_0x9e92('0x11')]]={'$like':'%'+_0x543d34['query'][_0x9e92('0x35')]+'%'};return _0x4f9b74;}}})});}_0x185b66=_[_0x9e92('0x3a')]({},_0x185b66,_0x543d34[_0x9e92('0x3b')]);return _0x185b66;};exports['include']=function(_0x2773d8){var _0x22e306=[];if(_0x2773d8['includeAll']){_0x22e306[_0x9e92('0x2c')]({'all':!![]});}else if(_0x2773d8[_0x9e92('0x3c')]){if(Array[_0x9e92('0x1e')](_0x2773d8[_0x9e92('0x3c')])){_0x22e306=Object[_0x9e92('0x4')](_0x2773d8['include'])[_0x9e92('0x17')](function(_0x434d7f){return parseIncludeModel(_0x2773d8[_0x9e92('0x3c')][_0x434d7f]);});}else{var _0x4cddb3=parseIncludeModel(_0x2773d8[_0x9e92('0x3c')]);_0x22e306[_0x9e92('0x2c')](_0x4cddb3);}}return _0x22e306;};exports[_0x9e92('0x3d')]=function(_0x52157c){return _0x52157c[_0x9e92('0x2b')](/[%_^-]/g,function(_0x54e7a5){return'\x5c'+_0x54e7a5;});};