Built motion from commit 85328c08.|2.5.50
[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 _0xac9d=['VIRTUAL','lower','options','lodash','sequelize','moment','parse','includes','keys','split','filters','isEmpty','forOwn','find','type','isPlainObject','$gte','format','YYYY-MM-DD','$lte','utc','subtract','name','uniqueid','isArray','offset','sort','map','priority','cast','col','unsigned','substr','DESC','ASC','omit','length','isObject','unset','isNumeric','^[+]?[0-9]*$','isEmail','match','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','attributes','intersection','model','fields','hasOwnProperty','nolimit','limit','order','pick','filter','object','columns','value','where','merge'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xac9d,0x14d));var _0xdac9=function(_0x5533b1,_0x7f4a9a){_0x5533b1=_0x5533b1-0x0;var _0x1009f3=_0xac9d[_0x5533b1];return _0x1009f3;};'use strict';var _=require(_0xdac9('0x0'));var sequelize=require(_0xdac9('0x1'));var moment=require(_0xdac9('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1e6d33){var _0x12390c=['ne'];try{var _0x27eb7c=JSON[_0xdac9('0x3')](_0x1e6d33);var _0x1b967e=Object['keys'](_0x27eb7c)[0x0];return _0x12390c[_0xdac9('0x4')](_0x1b967e);}catch(_0x5a984a){return![];}}function getOperatorValue(_0x3d56ae){var _0x1f8ff3=JSON[_0xdac9('0x3')](_0x3d56ae);var _0x776b6c=Object[_0xdac9('0x5')](_0x1f8ff3)[0x0];var _0x39f560=_0x1f8ff3[_0x776b6c];return{['$'+_0x776b6c]:_0x39f560};}exports['fields']=function(_0x2b1d6f){var _0x47d9fd=null;if(_0x2b1d6f){_0x47d9fd=_0x2b1d6f[_0xdac9('0x6')](',');}return _0x47d9fd;};exports[_0xdac9('0x7')]=function(_0x39c92c,_0x1a4674){var _0x23ec14={};if(!_[_0xdac9('0x8')](_0x39c92c)){_[_0xdac9('0x9')](_0x39c92c,function(_0x1b604a,_0xbb5615){try{if(_0x1a4674){var _0x5514c5=_[_0xdac9('0xa')](_0x1a4674,{'name':_0xbb5615})||{};if(hasSequelizeOperator(_0x1b604a)){_0x23ec14[_0xbb5615]=getOperatorValue(_0x1b604a);}else if(_0x5514c5[_0xdac9('0xb')]==='DATE'&&_[_0xdac9('0xc')](_0x1b604a)){var _0xeddbc1=JSON[_0xdac9('0x3')](_0x1b604a);var _0x4b2436={'$gte':moment(moment(_0xeddbc1[_0xdac9('0xd')])[_0xdac9('0xe')](_0xdac9('0xf')))['utc']()['format'](),'$lte':moment(moment(_0xeddbc1[_0xdac9('0x10')])[_0xdac9('0xe')]('YYYY-MM-DD'))[_0xdac9('0x11')]()[_0xdac9('0x12')](0x1,'s')[_0xdac9('0xe')]()};_0x23ec14[_0xbb5615]=_0x4b2436;}else if(_0x5514c5[_0xdac9('0x13')]===_0xdac9('0x14')){_0x23ec14[_0xbb5615]=_0x1b604a;}else{_0x23ec14[_0xbb5615]=_[_0xdac9('0x15')](_0x1b604a)?_0x1b604a:JSON[_0xdac9('0x3')](_0x1b604a);}}else{_0x23ec14[_0xbb5615]=_[_0xdac9('0x15')](_0x1b604a)?_0x1b604a:JSON['parse'](_0x1b604a);}}catch(_0x283343){_0x23ec14[_0xbb5615]=_0x1b604a[_0xdac9('0x6')](',');}});}return _0x23ec14;};exports['limit']=function(_0x1cd239){_0x1cd239=parseInt(_0x1cd239,0xa);if(!_0x1cd239||_0x1cd239<0x0){_0x1cd239=LIMIT_VALUE;}return _0x1cd239;};exports[_0xdac9('0x16')]=function(_0x171df1){_0x171df1=parseInt(_0x171df1,0xa);if(!_0x171df1||_0x171df1<0x0){_0x171df1=0x0;}return _0x171df1;};exports[_0xdac9('0x17')]=function(_0x522dc3){var _0x520369,_0x4029fc=null;if(_0x522dc3){_0x520369=_0x522dc3[_0xdac9('0x6')](',');_0x4029fc=_[_0xdac9('0x18')](_0x520369,function(_0x395ec7){if(_0x395ec7['indexOf']('-')===0x0){return[_0x395ec7===_0xdac9('0x19')?sequelize[_0xdac9('0x1a')](sequelize[_0xdac9('0x1b')](_0xdac9('0x19')),_0xdac9('0x1c')):_0x395ec7[_0xdac9('0x1d')](0x1),_0xdac9('0x1e')];}else{return[_0x395ec7===_0xdac9('0x19')?sequelize[_0xdac9('0x1a')](sequelize[_0xdac9('0x1b')]('priority'),_0xdac9('0x1c')):_0x395ec7,_0xdac9('0x1f')];}});}return _0x4029fc;};exports[_0xdac9('0x20')]=function(_0x34a255,_0x5ca076){if(_[_0xdac9('0x8')](_0x34a255)){return _0x34a255;}if(_['isArray'](_0x34a255)){for(var _0x3ce475=0x0;_0x3ce475<_0x34a255[_0xdac9('0x21')];_0x3ce475+=0x1){_0x34a255[_0x3ce475]=this['omit'](_0x34a255[_0x3ce475],_0x5ca076);}return _0x34a255;}if(!_[_0xdac9('0x22')](_0x34a255)){return _0x34a255;}if(_['isString'](_0x5ca076)){_0x5ca076=[_0x5ca076];}if(!_[_0xdac9('0x15')](_0x5ca076)){return _0x34a255;}for(var _0x3743f7=0x0;_0x3743f7<_0x5ca076[_0xdac9('0x21')];_0x3743f7+=0x1){_[_0xdac9('0x23')](_0x34a255,_0x5ca076[_0x3743f7]);}for(var _0x57d76a in _0x34a255){if(_0x34a255['hasOwnProperty'](_0x57d76a)){_0x34a255[_0x57d76a]=this[_0xdac9('0x20')](_0x34a255[_0x57d76a],_0x5ca076);}}return _0x34a255;};exports[_0xdac9('0x24')]=function(_0x4fe3bd){return _0x4fe3bd['match'](RegExp(_0xdac9('0x25')))?!![]:![];};exports[_0xdac9('0x26')]=function(_0x13efba){return _0x13efba[_0xdac9('0x27')](/^\S+@\S+$/)?!![]:![];};exports[_0xdac9('0x28')]=function(_0x2247f8){var _0xed99f9=[];_0x2247f8[_0xdac9('0x6')](/[ ,]+/)[_0xdac9('0x29')](function(_0x2f36f4){_0x2f36f4=_0x2f36f4[_0xdac9('0x2a')](/([^:]")"+/g,'$1');_0x2f36f4='+'+_0x2f36f4+'*';var _0x42c276=/[ `!@#$%^&*()_\-?~]/;if(_0x2f36f4[_0xdac9('0x27')](_0x42c276))_0x2f36f4='\x22'+_0x2f36f4+'\x22';_0xed99f9[_0xdac9('0x2b')](_0x2f36f4);});return _0xed99f9[_0xdac9('0x2c')]('\x20');};exports[_0xdac9('0x2d')]=function(_0x372f02,_0x44eff2,_0x339f31){var _0x20397e={},_0x92c891={};if(_0x44eff2['query']['$id']){_0x44eff2[_0xdac9('0x2e')]['id']=_0x44eff2[_0xdac9('0x2e')][_0xdac9('0x2f')];delete _0x44eff2[_0xdac9('0x2e')][_0xdac9('0x2f')];}_0x20397e['model']=_[_0xdac9('0x18')](_0x372f02,'name');_0x20397e[_0xdac9('0x2e')]=_[_0xdac9('0x5')](_0x44eff2['query']);_0x20397e[_0xdac9('0x7')]=_['intersection'](_0x20397e['model'],_0x20397e[_0xdac9('0x2e')]);_0x92c891[_0xdac9('0x30')]=_[_0xdac9('0x31')](_0x20397e[_0xdac9('0x32')],this[_0xdac9('0x33')](_0x44eff2[_0xdac9('0x2e')]['fields']));_0x92c891[_0xdac9('0x30')]=_0x92c891[_0xdac9('0x30')]['length']?_0x92c891[_0xdac9('0x30')]:_0x20397e[_0xdac9('0x32')];if(!_0x44eff2[_0xdac9('0x2e')][_0xdac9('0x34')](_0xdac9('0x35'))){_0x92c891[_0xdac9('0x36')]=this[_0xdac9('0x36')](_0x44eff2['query'][_0xdac9('0x36')]);_0x92c891[_0xdac9('0x16')]=this[_0xdac9('0x16')](_0x44eff2['query'][_0xdac9('0x16')]);}_0x92c891[_0xdac9('0x37')]=this[_0xdac9('0x17')](_0x44eff2[_0xdac9('0x2e')]['sort']);_0x92c891['where']=this[_0xdac9('0x7')](_[_0xdac9('0x38')](_0x44eff2[_0xdac9('0x2e')],_0x20397e[_0xdac9('0x7')]),_0x372f02);if(_0x44eff2[_0xdac9('0x2e')]['filter']){var _0x8435e8=_0x372f02;var _0x482f4a=_0x44eff2[_0xdac9('0x2e')][_0xdac9('0x39')];if(typeof _0x482f4a===_0xdac9('0x3a')){_0x8435e8=_[_0xdac9('0x39')](_0x372f02,function(_0x2a50f0){return _[_0xdac9('0x4')](_0x482f4a[_0xdac9('0x3b')],_0x2a50f0[_0xdac9('0x13')]);});_0x482f4a=_0x482f4a[_0xdac9('0x3c')];}_0x92c891[_0xdac9('0x3d')]=_[_0xdac9('0x3e')](_0x92c891[_0xdac9('0x3d')],{'$or':_[_0xdac9('0x18')](_0x8435e8,function(_0x441676){if(_0x441676['type']!==_0xdac9('0x3f')){if(_0x339f31){return sequelize[_0xdac9('0x3d')](sequelize['fn']('lower',sequelize[_0xdac9('0x1b')](_0x441676[_0xdac9('0x13')])),{'$like':sequelize['fn'](_0xdac9('0x40'),'%'+_0x44eff2[_0xdac9('0x2e')][_0xdac9('0x39')]+'%')});}else{var _0xf97b9a={};_0xf97b9a[_0x441676['name']]={'$like':'%'+_0x44eff2[_0xdac9('0x2e')]['filter']+'%'};return _0xf97b9a;}}})});}_0x92c891=_[_0xdac9('0x3e')]({},_0x92c891,_0x44eff2[_0xdac9('0x41')]);return _0x92c891;};