Built motion from commit 775e2a94.|2.6.3
[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 _0x038b=['isEmpty','length','isObject','isString','unset','isNumeric','match','^[+]?[0-9]*$','getFullTextValue','forEach','replace','push','join','query','$id','intersection','model','attributes','fields','nolimit','limit','order','where','pick','filters','filter','includes','columns','value','merge','lower','options','sequelize','moment','keys','split','forOwn','find','type','DATE','isPlainObject','parse','$gte','format','YYYY-MM-DD','utc','$lte','subtract','name','uniqueid','isArray','offset','sort','map','priority','cast','col','substr','DESC','unsigned','omit'];(function(_0xc010d4,_0x37768a){var _0x1c9a4b=function(_0x74e63a){while(--_0x74e63a){_0xc010d4['push'](_0xc010d4['shift']());}};_0x1c9a4b(++_0x37768a);}(_0x038b,0x114));var _0xb038=function(_0x1a995c,_0xc3fafc){_0x1a995c=_0x1a995c-0x0;var _0x5a41de=_0x038b[_0x1a995c];return _0x5a41de;};'use strict';var _=require('lodash');var sequelize=require(_0xb038('0x0'));var moment=require(_0xb038('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x449fef){var _0x5623c3=['ne'];try{var _0x3d7dfe=JSON['parse'](_0x449fef);var _0x23574d=Object[_0xb038('0x2')](_0x3d7dfe)[0x0];return _0x5623c3['includes'](_0x23574d);}catch(_0x3737b5){return![];}}function getOperatorValue(_0x11da3a){var _0x4fe092=JSON['parse'](_0x11da3a);var _0x2e3e64=Object[_0xb038('0x2')](_0x4fe092)[0x0];var _0x1534a9=_0x4fe092[_0x2e3e64];return{['$'+_0x2e3e64]:_0x1534a9};}exports['fields']=function(_0x48a4d7){var _0x462e8f=null;if(_0x48a4d7){_0x462e8f=_0x48a4d7[_0xb038('0x3')](',');}return _0x462e8f;};exports['filters']=function(_0x53bcc0,_0xe3d046){var _0x2d1ae5={};if(!_['isEmpty'](_0x53bcc0)){_[_0xb038('0x4')](_0x53bcc0,function(_0x162ae7,_0x3fc2c1){try{if(_0xe3d046){var _0x3368c1=_[_0xb038('0x5')](_0xe3d046,{'name':_0x3fc2c1})||{};if(hasSequelizeOperator(_0x162ae7)){_0x2d1ae5[_0x3fc2c1]=getOperatorValue(_0x162ae7);}else if(_0x3368c1[_0xb038('0x6')]===_0xb038('0x7')&&_[_0xb038('0x8')](_0x162ae7)){var _0x16e4a3=JSON[_0xb038('0x9')](_0x162ae7);var _0x60f332={'$gte':moment(moment(_0x16e4a3[_0xb038('0xa')])[_0xb038('0xb')](_0xb038('0xc')))[_0xb038('0xd')]()[_0xb038('0xb')](),'$lte':moment(moment(_0x16e4a3[_0xb038('0xe')])['format'](_0xb038('0xc')))[_0xb038('0xd')]()[_0xb038('0xf')](0x1,'s')[_0xb038('0xb')]()};_0x2d1ae5[_0x3fc2c1]=_0x60f332;}else if(_0x3368c1[_0xb038('0x10')]===_0xb038('0x11')){_0x2d1ae5[_0x3fc2c1]=_0x162ae7;}else{_0x2d1ae5[_0x3fc2c1]=_['isArray'](_0x162ae7)?_0x162ae7:JSON[_0xb038('0x9')](_0x162ae7);}}else{_0x2d1ae5[_0x3fc2c1]=_[_0xb038('0x12')](_0x162ae7)?_0x162ae7:JSON[_0xb038('0x9')](_0x162ae7);}}catch(_0x3b095a){_0x2d1ae5[_0x3fc2c1]=_0x162ae7['split'](',');}});}return _0x2d1ae5;};exports['limit']=function(_0x20cea2){_0x20cea2=parseInt(_0x20cea2,0xa);if(!_0x20cea2||_0x20cea2<0x0){_0x20cea2=LIMIT_VALUE;}return _0x20cea2;};exports[_0xb038('0x13')]=function(_0x3e06ef){_0x3e06ef=parseInt(_0x3e06ef,0xa);if(!_0x3e06ef||_0x3e06ef<0x0){_0x3e06ef=0x0;}return _0x3e06ef;};exports[_0xb038('0x14')]=function(_0x4fd2e8){var _0x222b84,_0x42c8ee=null;if(_0x4fd2e8){_0x222b84=_0x4fd2e8[_0xb038('0x3')](',');_0x42c8ee=_[_0xb038('0x15')](_0x222b84,function(_0xc6cd61){if(_0xc6cd61['indexOf']('-')===0x0){return[_0xc6cd61===_0xb038('0x16')?sequelize[_0xb038('0x17')](sequelize[_0xb038('0x18')](_0xb038('0x16')),'unsigned'):_0xc6cd61[_0xb038('0x19')](0x1),_0xb038('0x1a')];}else{return[_0xc6cd61==='priority'?sequelize[_0xb038('0x17')](sequelize[_0xb038('0x18')]('priority'),_0xb038('0x1b')):_0xc6cd61,'ASC'];}});}return _0x42c8ee;};exports[_0xb038('0x1c')]=function(_0x36eb5b,_0x27ff21){if(_[_0xb038('0x1d')](_0x36eb5b)){return _0x36eb5b;}if(_[_0xb038('0x12')](_0x36eb5b)){for(var _0xe4ceda=0x0;_0xe4ceda<_0x36eb5b[_0xb038('0x1e')];_0xe4ceda+=0x1){_0x36eb5b[_0xe4ceda]=this['omit'](_0x36eb5b[_0xe4ceda],_0x27ff21);}return _0x36eb5b;}if(!_[_0xb038('0x1f')](_0x36eb5b)){return _0x36eb5b;}if(_[_0xb038('0x20')](_0x27ff21)){_0x27ff21=[_0x27ff21];}if(!_[_0xb038('0x12')](_0x27ff21)){return _0x36eb5b;}for(var _0x5d18c8=0x0;_0x5d18c8<_0x27ff21[_0xb038('0x1e')];_0x5d18c8+=0x1){_[_0xb038('0x21')](_0x36eb5b,_0x27ff21[_0x5d18c8]);}for(var _0x1fa72d in _0x36eb5b){if(_0x36eb5b['hasOwnProperty'](_0x1fa72d)){_0x36eb5b[_0x1fa72d]=this[_0xb038('0x1c')](_0x36eb5b[_0x1fa72d],_0x27ff21);}}return _0x36eb5b;};exports[_0xb038('0x22')]=function(_0x28a6a9){return _0x28a6a9[_0xb038('0x23')](RegExp(_0xb038('0x24')))?!![]:![];};exports['isEmail']=function(_0x1783d4){return _0x1783d4[_0xb038('0x23')](/^\S+@\S+$/)?!![]:![];};exports[_0xb038('0x25')]=function(_0x3464be){var _0x1abe23=[];_0x3464be[_0xb038('0x3')](/[ ,]+/)[_0xb038('0x26')](function(_0x3695aa){_0x3695aa=_0x3695aa[_0xb038('0x27')](/([^:]")"+/g,'$1');_0x3695aa='+'+_0x3695aa+'*';var _0x22fb2c=/[ `!@#$%^&*()_\-?~]/;if(_0x3695aa[_0xb038('0x23')](_0x22fb2c))_0x3695aa='\x22'+_0x3695aa+'\x22';_0x1abe23[_0xb038('0x28')](_0x3695aa);});return _0x1abe23[_0xb038('0x29')]('\x20');};exports['getOptions']=function(_0x1d807a,_0x598554,_0x908d1f){var _0x13bf20={},_0x495253={};if(_0x598554[_0xb038('0x2a')][_0xb038('0x2b')]){_0x598554[_0xb038('0x2a')]['id']=_0x598554[_0xb038('0x2a')][_0xb038('0x2b')];delete _0x598554[_0xb038('0x2a')][_0xb038('0x2b')];}_0x13bf20['model']=_[_0xb038('0x15')](_0x1d807a,_0xb038('0x10'));_0x13bf20[_0xb038('0x2a')]=_['keys'](_0x598554['query']);_0x13bf20['filters']=_[_0xb038('0x2c')](_0x13bf20[_0xb038('0x2d')],_0x13bf20[_0xb038('0x2a')]);_0x495253[_0xb038('0x2e')]=_[_0xb038('0x2c')](_0x13bf20[_0xb038('0x2d')],this['fields'](_0x598554[_0xb038('0x2a')][_0xb038('0x2f')]));_0x495253[_0xb038('0x2e')]=_0x495253[_0xb038('0x2e')]['length']?_0x495253[_0xb038('0x2e')]:_0x13bf20[_0xb038('0x2d')];if(!_0x598554['query']['hasOwnProperty'](_0xb038('0x30'))){_0x495253[_0xb038('0x31')]=this[_0xb038('0x31')](_0x598554[_0xb038('0x2a')][_0xb038('0x31')]);_0x495253['offset']=this[_0xb038('0x13')](_0x598554[_0xb038('0x2a')][_0xb038('0x13')]);}_0x495253[_0xb038('0x32')]=this['sort'](_0x598554[_0xb038('0x2a')][_0xb038('0x14')]);_0x495253[_0xb038('0x33')]=this['filters'](_[_0xb038('0x34')](_0x598554['query'],_0x13bf20[_0xb038('0x35')]),_0x1d807a);if(_0x598554[_0xb038('0x2a')][_0xb038('0x36')]){var _0x5ce40c=_0x1d807a;var _0x322ab1=_0x598554[_0xb038('0x2a')][_0xb038('0x36')];if(typeof _0x322ab1==='object'){_0x5ce40c=_[_0xb038('0x36')](_0x1d807a,function(_0xa5971a){return _[_0xb038('0x37')](_0x322ab1[_0xb038('0x38')],_0xa5971a['name']);});_0x322ab1=_0x322ab1[_0xb038('0x39')];}_0x495253[_0xb038('0x33')]=_[_0xb038('0x3a')](_0x495253[_0xb038('0x33')],{'$or':_['map'](_0x5ce40c,function(_0x19dc7b){if(_0x19dc7b[_0xb038('0x6')]!=='VIRTUAL'){if(_0x908d1f){return sequelize[_0xb038('0x33')](sequelize['fn'](_0xb038('0x3b'),sequelize[_0xb038('0x18')](_0x19dc7b['name'])),{'$like':sequelize['fn'](_0xb038('0x3b'),'%'+_0x598554[_0xb038('0x2a')]['filter']+'%')});}else{var _0x527eaa={};_0x527eaa[_0x19dc7b[_0xb038('0x10')]]={'$like':'%'+_0x598554[_0xb038('0x2a')][_0xb038('0x36')]+'%'};return _0x527eaa;}}})});}_0x495253=_[_0xb038('0x3a')]({},_0x495253,_0x598554[_0xb038('0x3c')]);return _0x495253;};