Built motion from commit a679711e.|2.6.15
[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 _0x8407=['split','forOwn','find','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','$lte','subtract','name','isArray','limit','indexOf','priority','col','unsigned','substr','DESC','cast','isEmpty','isObject','isString','length','unset','omit','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','{EXPR}','replace','push','join','query','$id','model','map','filters','intersection','attributes','hasOwnProperty','nolimit','offset','order','pick','filter','object','includes','columns','value','where','merge','VIRTUAL','lower','options','moment','keys','parse','fields'];(function(_0x1b0906,_0x713076){var _0x43e194=function(_0x4f28cf){while(--_0x4f28cf){_0x1b0906['push'](_0x1b0906['shift']());}};_0x43e194(++_0x713076);}(_0x8407,0x78));var _0x7840=function(_0xbda9f3,_0x7f7694){_0xbda9f3=_0xbda9f3-0x0;var _0x441c0b=_0x8407[_0xbda9f3];return _0x441c0b;};'use strict';var _=require('lodash');var sequelize=require('sequelize');var moment=require(_0x7840('0x0'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x491f80){var _0x333911=['ne'];try{var _0x328421=JSON['parse'](_0x491f80);var _0x1d8e0c=Object[_0x7840('0x1')](_0x328421)[0x0];return _0x333911['includes'](_0x1d8e0c);}catch(_0x50c927){return![];}}function getOperatorValue(_0x3a2308){var _0x237794=JSON[_0x7840('0x2')](_0x3a2308);var _0x2d91ce=Object['keys'](_0x237794)[0x0];var _0x3616d4=_0x237794[_0x2d91ce];return{['$'+_0x2d91ce]:_0x3616d4};}exports[_0x7840('0x3')]=function(_0x1e163f){var _0x6e9b43=null;if(_0x1e163f){_0x6e9b43=_0x1e163f[_0x7840('0x4')](',');}return _0x6e9b43;};exports['filters']=function(_0x13bc2f,_0x5de98c){var _0x66cb94={};if(!_['isEmpty'](_0x13bc2f)){_[_0x7840('0x5')](_0x13bc2f,function(_0x9ab78b,_0x1228b3){try{if(_0x5de98c){var _0x183a2d=_[_0x7840('0x6')](_0x5de98c,{'name':_0x1228b3})||{};if(hasSequelizeOperator(_0x9ab78b)){_0x66cb94[_0x1228b3]=getOperatorValue(_0x9ab78b);}else if(_0x183a2d[_0x7840('0x7')]===_0x7840('0x8')&&_[_0x7840('0x9')](_0x9ab78b)){var _0xc38c0e=JSON[_0x7840('0x2')](_0x9ab78b);var _0x4bb3fe={'$gte':moment(moment(_0xc38c0e[_0x7840('0xa')])[_0x7840('0xb')](_0x7840('0xc')))['utc']()[_0x7840('0xb')](),'$lte':moment(moment(_0xc38c0e[_0x7840('0xd')])[_0x7840('0xb')](_0x7840('0xc')))['utc']()[_0x7840('0xe')](0x1,'s')['format']()};_0x66cb94[_0x1228b3]=_0x4bb3fe;}else if(_0x183a2d[_0x7840('0xf')]==='uniqueid'){_0x66cb94[_0x1228b3]=_0x9ab78b;}else{_0x66cb94[_0x1228b3]=_[_0x7840('0x10')](_0x9ab78b)?_0x9ab78b:JSON[_0x7840('0x2')](_0x9ab78b);}}else{_0x66cb94[_0x1228b3]=_[_0x7840('0x10')](_0x9ab78b)?_0x9ab78b:JSON[_0x7840('0x2')](_0x9ab78b);}}catch(_0x357b68){_0x66cb94[_0x1228b3]=_0x9ab78b['split'](',');}});}return _0x66cb94;};exports[_0x7840('0x11')]=function(_0x13c5a9){_0x13c5a9=parseInt(_0x13c5a9,0xa);if(!_0x13c5a9||_0x13c5a9<0x0){_0x13c5a9=LIMIT_VALUE;}return _0x13c5a9;};exports['offset']=function(_0x38c156){_0x38c156=parseInt(_0x38c156,0xa);if(!_0x38c156||_0x38c156<0x0){_0x38c156=0x0;}return _0x38c156;};exports['sort']=function(_0xf7f91e){var _0x2faf9d,_0x508823=null;if(_0xf7f91e){_0x2faf9d=_0xf7f91e[_0x7840('0x4')](',');_0x508823=_['map'](_0x2faf9d,function(_0x4c6b55){if(_0x4c6b55[_0x7840('0x12')]('-')===0x0){return[_0x4c6b55===_0x7840('0x13')?sequelize['cast'](sequelize[_0x7840('0x14')](_0x7840('0x13')),_0x7840('0x15')):_0x4c6b55[_0x7840('0x16')](0x1),_0x7840('0x17')];}else{return[_0x4c6b55===_0x7840('0x13')?sequelize[_0x7840('0x18')](sequelize[_0x7840('0x14')](_0x7840('0x13')),_0x7840('0x15')):_0x4c6b55,'ASC'];}});}return _0x508823;};exports['omit']=function(_0x1b89e5,_0x3a4446){if(_[_0x7840('0x19')](_0x1b89e5)){return _0x1b89e5;}if(_[_0x7840('0x10')](_0x1b89e5)){for(var _0x236f75=0x0;_0x236f75<_0x1b89e5['length'];_0x236f75+=0x1){_0x1b89e5[_0x236f75]=this['omit'](_0x1b89e5[_0x236f75],_0x3a4446);}return _0x1b89e5;}if(!_[_0x7840('0x1a')](_0x1b89e5)){return _0x1b89e5;}if(_[_0x7840('0x1b')](_0x3a4446)){_0x3a4446=[_0x3a4446];}if(!_[_0x7840('0x10')](_0x3a4446)){return _0x1b89e5;}for(var _0x3da930=0x0;_0x3da930<_0x3a4446[_0x7840('0x1c')];_0x3da930+=0x1){_[_0x7840('0x1d')](_0x1b89e5,_0x3a4446[_0x3da930]);}for(var _0x9f391 in _0x1b89e5){if(_0x1b89e5['hasOwnProperty'](_0x9f391)){_0x1b89e5[_0x9f391]=this[_0x7840('0x1e')](_0x1b89e5[_0x9f391],_0x3a4446);}}return _0x1b89e5;};exports[_0x7840('0x1f')]=function(_0x3c1611){return _0x3c1611[_0x7840('0x20')](RegExp(_0x7840('0x21')))?!![]:![];};exports[_0x7840('0x22')]=function(_0x551c47){return _0x551c47[_0x7840('0x20')](/^\S+@\S+$/)?!![]:![];};exports[_0x7840('0x23')]=function(_0x40c5dd,_0x45d435){var _0x3ffe89=[];var _0x1b798d=/[ `!@#$%^&*()_\-?~]/;var _0xb5486e=_0x45d435?'\x22{EXPR}\x22':_0x7840('0x24');_0x40c5dd[_0x7840('0x4')](/[ ,]+/)['forEach'](function(_0x1e1c3e){_0x1e1c3e=_0x1e1c3e[_0x7840('0x25')](/([^:]")"+/g,'$1');_0x1e1c3e='+'+_0x1e1c3e+'*';var _0x268b7a=_0x1e1c3e[_0x7840('0x20')](_0x1b798d);if(_0x268b7a){_0x1e1c3e='\x22'+_0x1e1c3e+'\x22';}_0x3ffe89[_0x7840('0x26')](_0x1e1c3e);});_0xb5486e=_0xb5486e[_0x7840('0x25')]('{EXPR}',_0x3ffe89[_0x7840('0x27')]('\x20'));return _0xb5486e;};exports['getOptions']=function(_0x383369,_0x4b9f40,_0xf59d39){var _0xf02e51={},_0x475cbb={};if(_0x4b9f40['query']['$id']){_0x4b9f40[_0x7840('0x28')]['id']=_0x4b9f40['query'][_0x7840('0x29')];delete _0x4b9f40[_0x7840('0x28')]['$id'];}_0xf02e51[_0x7840('0x2a')]=_[_0x7840('0x2b')](_0x383369,_0x7840('0xf'));_0xf02e51[_0x7840('0x28')]=_[_0x7840('0x1')](_0x4b9f40[_0x7840('0x28')]);_0xf02e51[_0x7840('0x2c')]=_[_0x7840('0x2d')](_0xf02e51[_0x7840('0x2a')],_0xf02e51['query']);_0x475cbb['attributes']=_['intersection'](_0xf02e51[_0x7840('0x2a')],this[_0x7840('0x3')](_0x4b9f40[_0x7840('0x28')][_0x7840('0x3')]));_0x475cbb[_0x7840('0x2e')]=_0x475cbb[_0x7840('0x2e')][_0x7840('0x1c')]?_0x475cbb[_0x7840('0x2e')]:_0xf02e51[_0x7840('0x2a')];if(!_0x4b9f40[_0x7840('0x28')][_0x7840('0x2f')](_0x7840('0x30'))){_0x475cbb[_0x7840('0x11')]=this[_0x7840('0x11')](_0x4b9f40[_0x7840('0x28')][_0x7840('0x11')]);_0x475cbb['offset']=this[_0x7840('0x31')](_0x4b9f40[_0x7840('0x28')][_0x7840('0x31')]);}_0x475cbb[_0x7840('0x32')]=this['sort'](_0x4b9f40[_0x7840('0x28')]['sort']);_0x475cbb['where']=this[_0x7840('0x2c')](_[_0x7840('0x33')](_0x4b9f40['query'],_0xf02e51[_0x7840('0x2c')]),_0x383369);if(_0x4b9f40[_0x7840('0x28')][_0x7840('0x34')]){var _0x2f4f2b=_0x383369;var _0x36a688=_0x4b9f40[_0x7840('0x28')][_0x7840('0x34')];if(typeof _0x36a688===_0x7840('0x35')){_0x2f4f2b=_[_0x7840('0x34')](_0x383369,function(_0x37e736){return _[_0x7840('0x36')](_0x36a688[_0x7840('0x37')],_0x37e736[_0x7840('0xf')]);});_0x36a688=_0x36a688[_0x7840('0x38')];}_0x475cbb[_0x7840('0x39')]=_[_0x7840('0x3a')](_0x475cbb['where'],{'$or':_[_0x7840('0x2b')](_0x2f4f2b,function(_0x33ce0a){if(_0x33ce0a[_0x7840('0x7')]!==_0x7840('0x3b')){if(_0xf59d39){return sequelize[_0x7840('0x39')](sequelize['fn'](_0x7840('0x3c'),sequelize['col'](_0x33ce0a[_0x7840('0xf')])),{'$like':sequelize['fn'](_0x7840('0x3c'),'%'+_0x4b9f40['query']['filter']+'%')});}else{var _0xc5ff5a={};_0xc5ff5a[_0x33ce0a[_0x7840('0xf')]]={'$like':'%'+_0x4b9f40[_0x7840('0x28')][_0x7840('0x34')]+'%'};return _0xc5ff5a;}}})});}_0x475cbb=_[_0x7840('0x3a')]({},_0x475cbb,_0x4b9f40[_0x7840('0x3d')]);return _0x475cbb;};