6183b02cce3871cd2d729b9081e59d1afbcd590c
[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 _0x2675=['value','where','merge','col','options','lodash','keys','parse','fields','split','forOwn','find','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','subtract','name','uniqueid','isArray','limit','offset','map','indexOf','cast','priority','unsigned','substr','ASC','omit','isEmpty','length','isString','hasOwnProperty','isNumeric','match','getFullTextValue','forEach','push','join','getOptions','query','$id','filters','intersection','model','attributes','nolimit','sort','filter','object','includes'];(function(_0x25e2f4,_0x40444b){var _0x51e038=function(_0x3db4aa){while(--_0x3db4aa){_0x25e2f4['push'](_0x25e2f4['shift']());}};_0x51e038(++_0x40444b);}(_0x2675,0x75));var _0x5267=function(_0xeb0b88,_0x41ca9c){_0xeb0b88=_0xeb0b88-0x0;var _0x29bf99=_0x2675[_0xeb0b88];return _0x29bf99;};'use strict';var _=require(_0x5267('0x0'));var sequelize=require('sequelize');var moment=require('moment');var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x4f8fae){var _0x1da342=['ne'];try{var _0x2ae442=JSON['parse'](_0x4f8fae);var _0x4600fa=Object[_0x5267('0x1')](_0x2ae442)[0x0];return _0x1da342['includes'](_0x4600fa);}catch(_0x328776){return![];}}function getOperatorValue(_0xf2b350){var _0x4bd042=JSON[_0x5267('0x2')](_0xf2b350);var _0x20f065=Object[_0x5267('0x1')](_0x4bd042)[0x0];var _0x527c16=_0x4bd042[_0x20f065];return{['$'+_0x20f065]:_0x527c16};}exports[_0x5267('0x3')]=function(_0x46bfdf){var _0x506fd7=null;if(_0x46bfdf){_0x506fd7=_0x46bfdf[_0x5267('0x4')](',');}return _0x506fd7;};exports['filters']=function(_0x3ff4e9,_0x207d47){var _0x26e22b={};if(!_['isEmpty'](_0x3ff4e9)){_[_0x5267('0x5')](_0x3ff4e9,function(_0x5060b3,_0x445151){try{if(_0x207d47){var _0x5bbf00=_[_0x5267('0x6')](_0x207d47,{'name':_0x445151})||{};if(hasSequelizeOperator(_0x5060b3)){_0x26e22b[_0x445151]=getOperatorValue(_0x5060b3);}else if(_0x5bbf00[_0x5267('0x7')]===_0x5267('0x8')&&_[_0x5267('0x9')](_0x5060b3)){var _0x1d7090=JSON[_0x5267('0x2')](_0x5060b3);var _0x20785c={'$gte':moment(moment(_0x1d7090[_0x5267('0xa')])[_0x5267('0xb')](_0x5267('0xc')))[_0x5267('0xd')]()[_0x5267('0xb')](),'$lte':moment(moment(_0x1d7090[_0x5267('0xe')])['format']('YYYY-MM-DD'))[_0x5267('0xd')]()[_0x5267('0xf')](0x1,'s')[_0x5267('0xb')]()};_0x26e22b[_0x445151]=_0x20785c;}else if(_0x5bbf00[_0x5267('0x10')]===_0x5267('0x11')){_0x26e22b[_0x445151]=_0x5060b3;}else{_0x26e22b[_0x445151]=_[_0x5267('0x12')](_0x5060b3)?_0x5060b3:JSON[_0x5267('0x2')](_0x5060b3);}}else{_0x26e22b[_0x445151]=_[_0x5267('0x12')](_0x5060b3)?_0x5060b3:JSON[_0x5267('0x2')](_0x5060b3);}}catch(_0xb1c97a){_0x26e22b[_0x445151]=_0x5060b3[_0x5267('0x4')](',');}});}return _0x26e22b;};exports[_0x5267('0x13')]=function(_0x528d61){_0x528d61=parseInt(_0x528d61,0xa);if(!_0x528d61||_0x528d61<0x0){_0x528d61=LIMIT_VALUE;}return _0x528d61;};exports[_0x5267('0x14')]=function(_0x2afd38){_0x2afd38=parseInt(_0x2afd38,0xa);if(!_0x2afd38||_0x2afd38<0x0){_0x2afd38=0x0;}return _0x2afd38;};exports['sort']=function(_0x20cb50){var _0x56733e,_0x1cf835=null;if(_0x20cb50){_0x56733e=_0x20cb50[_0x5267('0x4')](',');_0x1cf835=_[_0x5267('0x15')](_0x56733e,function(_0x2a9f99){if(_0x2a9f99[_0x5267('0x16')]('-')===0x0){return[_0x2a9f99==='priority'?sequelize[_0x5267('0x17')](sequelize['col'](_0x5267('0x18')),_0x5267('0x19')):_0x2a9f99[_0x5267('0x1a')](0x1),'DESC'];}else{return[_0x2a9f99==='priority'?sequelize['cast'](sequelize['col']('priority'),_0x5267('0x19')):_0x2a9f99,_0x5267('0x1b')];}});}return _0x1cf835;};exports[_0x5267('0x1c')]=function(_0x279377,_0x11c8ea){if(_[_0x5267('0x1d')](_0x279377)){return _0x279377;}if(_[_0x5267('0x12')](_0x279377)){for(var _0x220e03=0x0;_0x220e03<_0x279377[_0x5267('0x1e')];_0x220e03+=0x1){_0x279377[_0x220e03]=this['omit'](_0x279377[_0x220e03],_0x11c8ea);}return _0x279377;}if(!_['isObject'](_0x279377)){return _0x279377;}if(_[_0x5267('0x1f')](_0x11c8ea)){_0x11c8ea=[_0x11c8ea];}if(!_[_0x5267('0x12')](_0x11c8ea)){return _0x279377;}for(var _0x5abf95=0x0;_0x5abf95<_0x11c8ea[_0x5267('0x1e')];_0x5abf95+=0x1){_['unset'](_0x279377,_0x11c8ea[_0x5abf95]);}for(var _0x4d7c2a in _0x279377){if(_0x279377[_0x5267('0x20')](_0x4d7c2a)){_0x279377[_0x4d7c2a]=this[_0x5267('0x1c')](_0x279377[_0x4d7c2a],_0x11c8ea);}}return _0x279377;};exports[_0x5267('0x21')]=function(_0x2d2ace){return _0x2d2ace[_0x5267('0x22')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports['isEmail']=function(_0x18020c){return _0x18020c[_0x5267('0x22')](/^\S+@\S+$/)?!![]:![];};exports[_0x5267('0x23')]=function(_0x549a66){var _0x58d685=[];_0x549a66[_0x5267('0x4')](/[ ,]+/)[_0x5267('0x24')](function(_0x1fa725){_0x1fa725=_0x1fa725['replace'](/([^:]")"+/g,'$1');_0x1fa725='+'+_0x1fa725+'*';var _0x59b091=/[ `!@#$%^&*()_\-?~]/;if(_0x1fa725[_0x5267('0x22')](_0x59b091))_0x1fa725='\x22'+_0x1fa725+'\x22';_0x58d685[_0x5267('0x25')](_0x1fa725);});return _0x58d685[_0x5267('0x26')]('\x20');};exports[_0x5267('0x27')]=function(_0x5bbb83,_0x33e456,_0x1a7f4b){var _0x4344c5={},_0xf8d7a3={};if(_0x33e456[_0x5267('0x28')][_0x5267('0x29')]){_0x33e456[_0x5267('0x28')]['id']=_0x33e456[_0x5267('0x28')]['$id'];delete _0x33e456['query'][_0x5267('0x29')];}_0x4344c5['model']=_[_0x5267('0x15')](_0x5bbb83,_0x5267('0x10'));_0x4344c5[_0x5267('0x28')]=_[_0x5267('0x1')](_0x33e456['query']);_0x4344c5[_0x5267('0x2a')]=_[_0x5267('0x2b')](_0x4344c5[_0x5267('0x2c')],_0x4344c5[_0x5267('0x28')]);_0xf8d7a3[_0x5267('0x2d')]=_[_0x5267('0x2b')](_0x4344c5[_0x5267('0x2c')],this[_0x5267('0x3')](_0x33e456['query'][_0x5267('0x3')]));_0xf8d7a3['attributes']=_0xf8d7a3[_0x5267('0x2d')][_0x5267('0x1e')]?_0xf8d7a3[_0x5267('0x2d')]:_0x4344c5[_0x5267('0x2c')];if(!_0x33e456[_0x5267('0x28')][_0x5267('0x20')](_0x5267('0x2e'))){_0xf8d7a3['limit']=this[_0x5267('0x13')](_0x33e456[_0x5267('0x28')][_0x5267('0x13')]);_0xf8d7a3[_0x5267('0x14')]=this[_0x5267('0x14')](_0x33e456[_0x5267('0x28')][_0x5267('0x14')]);}_0xf8d7a3['order']=this[_0x5267('0x2f')](_0x33e456['query'][_0x5267('0x2f')]);_0xf8d7a3['where']=this['filters'](_['pick'](_0x33e456[_0x5267('0x28')],_0x4344c5['filters']),_0x5bbb83);if(_0x33e456[_0x5267('0x28')][_0x5267('0x30')]){var _0x3d4b19=_0x5bbb83;var _0x235982=_0x33e456['query'][_0x5267('0x30')];if(typeof _0x235982===_0x5267('0x31')){_0x3d4b19=_['filter'](_0x5bbb83,function(_0x54a5e5){return _[_0x5267('0x32')](_0x235982['columns'],_0x54a5e5[_0x5267('0x10')]);});_0x235982=_0x235982[_0x5267('0x33')];}_0xf8d7a3[_0x5267('0x34')]=_[_0x5267('0x35')](_0xf8d7a3[_0x5267('0x34')],{'$or':_[_0x5267('0x15')](_0x3d4b19,function(_0x27add5){if(_0x27add5['type']!=='VIRTUAL'){if(_0x1a7f4b){return sequelize[_0x5267('0x34')](sequelize['fn']('lower',sequelize[_0x5267('0x36')](_0x27add5[_0x5267('0x10')])),{'$like':sequelize['fn']('lower','%'+_0x33e456[_0x5267('0x28')][_0x5267('0x30')]+'%')});}else{var _0x299a13={};_0x299a13[_0x27add5[_0x5267('0x10')]]={'$like':'%'+_0x33e456[_0x5267('0x28')][_0x5267('0x30')]+'%'};return _0x299a13;}}})});}_0xf8d7a3=_[_0x5267('0x35')]({},_0xf8d7a3,_0x33e456[_0x5267('0x37')]);return _0xf8d7a3;};