2db03cce310639b874921186d5349c5ccd66de9f
[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 _0x74da=['fields','raw','split','filters','isEmpty','forOwn','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','$lte','utc','subtract','name','isArray','limit','offset','sort','map','indexOf','priority','cast','col','substr','ASC','omit','length','isObject','unset','hasOwnProperty','isNumeric','match','isEmail','getFullTextValue','{EXPR}','replace','trim','forEach','push','join','getOptions','query','$id','intersection','attributes','order','where','pick','filter','includes','columns','value','merge','VIRTUAL','lower','options','includeAll','include','../../mysqldb','parse','keys','model'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x74da,0x17c));var _0xa74d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x74da[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var sequelize=require('sequelize');var moment=require('moment');var db=require(_0xa74d('0x0'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0xf481cd){var _0x52e614=['ne'];try{var _0x55398b=JSON[_0xa74d('0x1')](_0xf481cd);var _0x5aaf44=Object[_0xa74d('0x2')](_0x55398b)[0x0];return _0x52e614['includes'](_0x5aaf44);}catch(_0x40f35f){return![];}}function getOperatorValue(_0x3848d4){var _0x4849cc=JSON[_0xa74d('0x1')](_0x3848d4);var _0x2062b3=Object[_0xa74d('0x2')](_0x4849cc)[0x0];var _0x570c98=_0x4849cc[_0x2062b3];return{['$'+_0x2062b3]:_0x570c98};}function parseIncludeModel(_0x4f24da){var _0x203e41=JSON[_0xa74d('0x1')](_0x4f24da);return{'model':db[_0x203e41[_0xa74d('0x3')]],'as':_0x203e41['alias'],'attributes':_0x203e41[_0xa74d('0x4')],'raw':_0x203e41[_0xa74d('0x5')]};}exports['fields']=function(_0x13b2a6){var _0x51fd6b=null;if(_0x13b2a6){_0x51fd6b=_0x13b2a6[_0xa74d('0x6')](',');}return _0x51fd6b;};exports[_0xa74d('0x7')]=function(_0x51d2a7,_0x5b8723){var _0x2f595e={};if(!_[_0xa74d('0x8')](_0x51d2a7)){_[_0xa74d('0x9')](_0x51d2a7,function(_0x501c55,_0x358ec6){try{if(_0x5b8723){var _0x3091ee=_['find'](_0x5b8723,{'name':_0x358ec6})||{};if(hasSequelizeOperator(_0x501c55)){_0x2f595e[_0x358ec6]=getOperatorValue(_0x501c55);}else if(_0x3091ee[_0xa74d('0xa')]===_0xa74d('0xb')&&_[_0xa74d('0xc')](_0x501c55)){var _0x3bb80c=JSON[_0xa74d('0x1')](_0x501c55);var _0x27e588={'$gte':moment(moment(_0x3bb80c[_0xa74d('0xd')])[_0xa74d('0xe')](_0xa74d('0xf')))['utc']()[_0xa74d('0xe')](),'$lte':moment(moment(_0x3bb80c[_0xa74d('0x10')])[_0xa74d('0xe')]('YYYY-MM-DD'))[_0xa74d('0x11')]()[_0xa74d('0x12')](0x1,'s')[_0xa74d('0xe')]()};_0x2f595e[_0x358ec6]=_0x27e588;}else if(_0x3091ee[_0xa74d('0x13')]==='uniqueid'){_0x2f595e[_0x358ec6]=_0x501c55;}else{_0x2f595e[_0x358ec6]=_[_0xa74d('0x14')](_0x501c55)?_0x501c55:JSON[_0xa74d('0x1')](_0x501c55);}}else{_0x2f595e[_0x358ec6]=_[_0xa74d('0x14')](_0x501c55)?_0x501c55:JSON[_0xa74d('0x1')](_0x501c55);}}catch(_0x3b055b){_0x2f595e[_0x358ec6]=_0x501c55[_0xa74d('0x6')](',');}});}return _0x2f595e;};exports[_0xa74d('0x15')]=function(_0x417b23){_0x417b23=parseInt(_0x417b23,0xa);if(!_0x417b23||_0x417b23<0x0){_0x417b23=LIMIT_VALUE;}return _0x417b23;};exports[_0xa74d('0x16')]=function(_0x514ade){_0x514ade=parseInt(_0x514ade,0xa);if(!_0x514ade||_0x514ade<0x0){_0x514ade=0x0;}return _0x514ade;};exports[_0xa74d('0x17')]=function(_0x1fefa4){var _0x1250c8,_0x28e2a2=null;if(_0x1fefa4){_0x1250c8=_0x1fefa4[_0xa74d('0x6')](',');_0x28e2a2=_[_0xa74d('0x18')](_0x1250c8,function(_0x275823){if(_0x275823[_0xa74d('0x19')]('-')===0x0){return[_0x275823===_0xa74d('0x1a')?sequelize[_0xa74d('0x1b')](sequelize[_0xa74d('0x1c')](_0xa74d('0x1a')),'unsigned'):_0x275823[_0xa74d('0x1d')](0x1),'DESC'];}else{return[_0x275823===_0xa74d('0x1a')?sequelize[_0xa74d('0x1b')](sequelize['col'](_0xa74d('0x1a')),'unsigned'):_0x275823,_0xa74d('0x1e')];}});}return _0x28e2a2;};exports[_0xa74d('0x1f')]=function(_0x4dac33,_0x5556db){if(_[_0xa74d('0x8')](_0x4dac33)){return _0x4dac33;}if(_[_0xa74d('0x14')](_0x4dac33)){for(var _0x4761b9=0x0;_0x4761b9<_0x4dac33[_0xa74d('0x20')];_0x4761b9+=0x1){_0x4dac33[_0x4761b9]=this['omit'](_0x4dac33[_0x4761b9],_0x5556db);}return _0x4dac33;}if(!_[_0xa74d('0x21')](_0x4dac33)){return _0x4dac33;}if(_['isString'](_0x5556db)){_0x5556db=[_0x5556db];}if(!_['isArray'](_0x5556db)){return _0x4dac33;}for(var _0xd41c4c=0x0;_0xd41c4c<_0x5556db[_0xa74d('0x20')];_0xd41c4c+=0x1){_[_0xa74d('0x22')](_0x4dac33,_0x5556db[_0xd41c4c]);}for(var _0x33afb5 in _0x4dac33){if(_0x4dac33[_0xa74d('0x23')](_0x33afb5)){_0x4dac33[_0x33afb5]=this['omit'](_0x4dac33[_0x33afb5],_0x5556db);}}return _0x4dac33;};exports[_0xa74d('0x24')]=function(_0x445740){return _0x445740[_0xa74d('0x25')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xa74d('0x26')]=function(_0x443f01){return _0x443f01['match'](/^\S+@\S+$/)?!![]:![];};exports[_0xa74d('0x27')]=function(_0x4866c6,_0x13ccea){var _0x40b731=[];var _0x56fc1a=/([^:]")"+/g;var _0x1f8a95=/[*<>~@-]/g;var _0x9236=/[ `!@#$%^&*()_\-?~<>]/;var _0x5ec5e1=/[ ,]+/;var _0x1ddb59=_0x13ccea?'\x22{EXPR}\x22':_0xa74d('0x28');if(_0x13ccea){_0x4866c6=_0x4866c6[_0xa74d('0x29')](_0x1f8a95,'\x20')[_0xa74d('0x2a')]();}_0x4866c6[_0xa74d('0x6')](_0x5ec5e1)[_0xa74d('0x2b')](function(_0x41b018){_0x41b018=_0x41b018[_0xa74d('0x29')](_0x56fc1a,'$1');_0x41b018='+'+_0x41b018+'*';var _0x2043a6=_0x41b018[_0xa74d('0x25')](_0x9236);if(_0x2043a6){_0x41b018='\x22'+_0x41b018+'\x22';}_0x40b731[_0xa74d('0x2c')](_0x41b018);});_0x1ddb59=_0x1ddb59[_0xa74d('0x29')](_0xa74d('0x28'),_0x40b731[_0xa74d('0x2d')]('\x20'));return _0x1ddb59;};exports[_0xa74d('0x2e')]=function(_0x57c8f4,_0x117b28,_0x355757){var _0x233179={},_0x4b7a9e={};if(_0x117b28[_0xa74d('0x2f')][_0xa74d('0x30')]){_0x117b28[_0xa74d('0x2f')]['id']=_0x117b28[_0xa74d('0x2f')][_0xa74d('0x30')];delete _0x117b28[_0xa74d('0x2f')][_0xa74d('0x30')];}_0x233179[_0xa74d('0x3')]=_[_0xa74d('0x18')](_0x57c8f4,_0xa74d('0x13'));_0x233179[_0xa74d('0x2f')]=_[_0xa74d('0x2')](_0x117b28[_0xa74d('0x2f')]);_0x233179['filters']=_[_0xa74d('0x31')](_0x233179['model'],_0x233179['query']);_0x4b7a9e[_0xa74d('0x32')]=_[_0xa74d('0x31')](_0x233179['model'],this['fields'](_0x117b28[_0xa74d('0x2f')][_0xa74d('0x4')]));_0x4b7a9e['attributes']=_0x4b7a9e[_0xa74d('0x32')]['length']?_0x4b7a9e[_0xa74d('0x32')]:_0x233179['model'];if(!_0x117b28[_0xa74d('0x2f')][_0xa74d('0x23')]('nolimit')){_0x4b7a9e[_0xa74d('0x15')]=this[_0xa74d('0x15')](_0x117b28[_0xa74d('0x2f')][_0xa74d('0x15')]);_0x4b7a9e[_0xa74d('0x16')]=this[_0xa74d('0x16')](_0x117b28[_0xa74d('0x2f')]['offset']);}_0x4b7a9e[_0xa74d('0x33')]=this[_0xa74d('0x17')](_0x117b28[_0xa74d('0x2f')]['sort']);_0x4b7a9e[_0xa74d('0x34')]=this[_0xa74d('0x7')](_[_0xa74d('0x35')](_0x117b28['query'],_0x233179[_0xa74d('0x7')]),_0x57c8f4);if(_0x117b28[_0xa74d('0x2f')][_0xa74d('0x36')]){var _0x78a51c=_0x57c8f4;var _0x53a994=_0x117b28[_0xa74d('0x2f')]['filter'];if(typeof _0x53a994==='object'){_0x78a51c=_[_0xa74d('0x36')](_0x57c8f4,function(_0x4e43b3){return _[_0xa74d('0x37')](_0x53a994[_0xa74d('0x38')],_0x4e43b3[_0xa74d('0x13')]);});_0x53a994=_0x53a994[_0xa74d('0x39')];}_0x4b7a9e[_0xa74d('0x34')]=_[_0xa74d('0x3a')](_0x4b7a9e[_0xa74d('0x34')],{'$or':_[_0xa74d('0x18')](_0x78a51c,function(_0x593010){if(_0x593010[_0xa74d('0xa')]!==_0xa74d('0x3b')){if(_0x355757){return sequelize[_0xa74d('0x34')](sequelize['fn'](_0xa74d('0x3c'),sequelize[_0xa74d('0x1c')](_0x593010[_0xa74d('0x13')])),{'$like':sequelize['fn'](_0xa74d('0x3c'),'%'+_0x117b28['query'][_0xa74d('0x36')]+'%')});}else{var _0x242f34={};_0x242f34[_0x593010[_0xa74d('0x13')]]={'$like':'%'+_0x117b28[_0xa74d('0x2f')]['filter']+'%'};return _0x242f34;}}})});}_0x4b7a9e=_[_0xa74d('0x3a')]({},_0x4b7a9e,_0x117b28[_0xa74d('0x3d')]);return _0x4b7a9e;};exports['include']=function(_0x1cc09f){var _0x25a093=[];if(_0x1cc09f[_0xa74d('0x3e')]){_0x25a093['push']({'all':!![]});}else if(_0x1cc09f[_0xa74d('0x3f')]){if(Array['isArray'](_0x1cc09f[_0xa74d('0x3f')])){_0x25a093=Object[_0xa74d('0x2')](_0x1cc09f['include'])['map'](function(_0x180bb8){return parseIncludeModel(_0x1cc09f[_0xa74d('0x3f')][_0x180bb8]);});}else{var _0x3a4797=parseIncludeModel(_0x1cc09f['include']);_0x25a093[_0xa74d('0x2c')](_0x3a4797);}}return _0x25a093;};exports['escapeLIKESpecialChars']=function(_0x44e0ee){return _0x44e0ee[_0xa74d('0x29')](/[%_^-]/g,function(_0x42711a){return'\x5c'+_0x42711a;});};