c920b8210a3ad4f3ce710051ea17f3f4ab0e9bb1
[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 _0xdd73=['VIRTUAL','lower','options','include','includeAll','lodash','sequelize','moment','parse','keys','includes','model','alias','fields','raw','split','find','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','name','uniqueid','isArray','limit','offset','map','indexOf','priority','col','substr','DESC','cast','unsigned','ASC','omit','isObject','isString','length','hasOwnProperty','isNumeric','^[+]?[0-9]*$','isEmail','match','getFullTextValue','\x22{EXPR}\x22','{EXPR}','push','$id','query','filters','attributes','intersection','order','sort','where','pick','filter','object','value','merge','type'];(function(_0x16e917,_0x1299a8){var _0x1fba51=function(_0x5dd818){while(--_0x5dd818){_0x16e917['push'](_0x16e917['shift']());}};_0x1fba51(++_0x1299a8);}(_0xdd73,0x14a));var _0x3dd7=function(_0x21046f,_0x51694e){_0x21046f=_0x21046f-0x0;var _0x3f8262=_0xdd73[_0x21046f];return _0x3f8262;};'use strict';var _=require(_0x3dd7('0x0'));var sequelize=require(_0x3dd7('0x1'));var moment=require(_0x3dd7('0x2'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x182349){var _0x1deb14=['ne'];try{var _0x1667b2=JSON[_0x3dd7('0x3')](_0x182349);var _0x527539=Object[_0x3dd7('0x4')](_0x1667b2)[0x0];return _0x1deb14[_0x3dd7('0x5')](_0x527539);}catch(_0x88ce77){return![];}}function getOperatorValue(_0x251289){var _0x29ca21=JSON[_0x3dd7('0x3')](_0x251289);var _0x244c2a=Object[_0x3dd7('0x4')](_0x29ca21)[0x0];var _0x4d3d2c=_0x29ca21[_0x244c2a];return{['$'+_0x244c2a]:_0x4d3d2c};}function parseIncludeModel(_0x21b90e){var _0x195629=JSON[_0x3dd7('0x3')](_0x21b90e);return{'model':db[_0x195629[_0x3dd7('0x6')]],'as':_0x195629[_0x3dd7('0x7')],'attributes':_0x195629[_0x3dd7('0x8')],'raw':_0x195629[_0x3dd7('0x9')]};}exports[_0x3dd7('0x8')]=function(_0x288461){var _0x446682=null;if(_0x288461){_0x446682=_0x288461[_0x3dd7('0xa')](',');}return _0x446682;};exports['filters']=function(_0x4ac6bd,_0x212270){var _0x3bcb7a={};if(!_['isEmpty'](_0x4ac6bd)){_['forOwn'](_0x4ac6bd,function(_0x1fef9a,_0x374da3){try{if(_0x212270){var _0x1c0ad2=_[_0x3dd7('0xb')](_0x212270,{'name':_0x374da3})||{};if(hasSequelizeOperator(_0x1fef9a)){_0x3bcb7a[_0x374da3]=getOperatorValue(_0x1fef9a);}else if(_0x1c0ad2['type']===_0x3dd7('0xc')&&_[_0x3dd7('0xd')](_0x1fef9a)){var _0x29c076=JSON[_0x3dd7('0x3')](_0x1fef9a);var _0x4662b6={'$gte':moment(moment(_0x29c076[_0x3dd7('0xe')])[_0x3dd7('0xf')](_0x3dd7('0x10')))[_0x3dd7('0x11')]()[_0x3dd7('0xf')](),'$lte':moment(moment(_0x29c076[_0x3dd7('0x12')])[_0x3dd7('0xf')](_0x3dd7('0x10')))[_0x3dd7('0x11')]()['subtract'](0x1,'s')[_0x3dd7('0xf')]()};_0x3bcb7a[_0x374da3]=_0x4662b6;}else if(_0x1c0ad2[_0x3dd7('0x13')]===_0x3dd7('0x14')){_0x3bcb7a[_0x374da3]=_0x1fef9a;}else{_0x3bcb7a[_0x374da3]=_[_0x3dd7('0x15')](_0x1fef9a)?_0x1fef9a:JSON[_0x3dd7('0x3')](_0x1fef9a);}}else{_0x3bcb7a[_0x374da3]=_['isArray'](_0x1fef9a)?_0x1fef9a:JSON['parse'](_0x1fef9a);}}catch(_0x56e870){_0x3bcb7a[_0x374da3]=_0x1fef9a['split'](',');}});}return _0x3bcb7a;};exports[_0x3dd7('0x16')]=function(_0x3afcfc){_0x3afcfc=parseInt(_0x3afcfc,0xa);if(!_0x3afcfc||_0x3afcfc<0x0){_0x3afcfc=LIMIT_VALUE;}return _0x3afcfc;};exports[_0x3dd7('0x17')]=function(_0x3e2311){_0x3e2311=parseInt(_0x3e2311,0xa);if(!_0x3e2311||_0x3e2311<0x0){_0x3e2311=0x0;}return _0x3e2311;};exports['sort']=function(_0x40049c){var _0x133db9,_0x191aef=null;if(_0x40049c){_0x133db9=_0x40049c[_0x3dd7('0xa')](',');_0x191aef=_[_0x3dd7('0x18')](_0x133db9,function(_0x3ede5a){if(_0x3ede5a[_0x3dd7('0x19')]('-')===0x0){return[_0x3ede5a===_0x3dd7('0x1a')?sequelize['cast'](sequelize[_0x3dd7('0x1b')](_0x3dd7('0x1a')),'unsigned'):_0x3ede5a[_0x3dd7('0x1c')](0x1),_0x3dd7('0x1d')];}else{return[_0x3ede5a===_0x3dd7('0x1a')?sequelize[_0x3dd7('0x1e')](sequelize[_0x3dd7('0x1b')](_0x3dd7('0x1a')),_0x3dd7('0x1f')):_0x3ede5a,_0x3dd7('0x20')];}});}return _0x191aef;};exports[_0x3dd7('0x21')]=function(_0x5645e1,_0x270c57){if(_['isEmpty'](_0x5645e1)){return _0x5645e1;}if(_[_0x3dd7('0x15')](_0x5645e1)){for(var _0x22f52a=0x0;_0x22f52a<_0x5645e1['length'];_0x22f52a+=0x1){_0x5645e1[_0x22f52a]=this[_0x3dd7('0x21')](_0x5645e1[_0x22f52a],_0x270c57);}return _0x5645e1;}if(!_[_0x3dd7('0x22')](_0x5645e1)){return _0x5645e1;}if(_[_0x3dd7('0x23')](_0x270c57)){_0x270c57=[_0x270c57];}if(!_['isArray'](_0x270c57)){return _0x5645e1;}for(var _0x17f91b=0x0;_0x17f91b<_0x270c57[_0x3dd7('0x24')];_0x17f91b+=0x1){_['unset'](_0x5645e1,_0x270c57[_0x17f91b]);}for(var _0x4dcad8 in _0x5645e1){if(_0x5645e1[_0x3dd7('0x25')](_0x4dcad8)){_0x5645e1[_0x4dcad8]=this[_0x3dd7('0x21')](_0x5645e1[_0x4dcad8],_0x270c57);}}return _0x5645e1;};exports[_0x3dd7('0x26')]=function(_0x519a3e){return _0x519a3e['match'](RegExp(_0x3dd7('0x27')))?!![]:![];};exports[_0x3dd7('0x28')]=function(_0x1b2f13){return _0x1b2f13[_0x3dd7('0x29')](/^\S+@\S+$/)?!![]:![];};exports[_0x3dd7('0x2a')]=function(_0x323387,_0x581890){var _0x657c49=[];var _0x40f92d=/[ `!@#$%^&*()_\-?~]/;var _0x2fe7e6=_0x581890?_0x3dd7('0x2b'):_0x3dd7('0x2c');_0x323387['split'](/[ ,]+/)['forEach'](function(_0x3b71f7){_0x3b71f7=_0x3b71f7['replace'](/([^:]")"+/g,'$1');_0x3b71f7='+'+_0x3b71f7+'*';var _0x294e1a=_0x3b71f7['match'](_0x40f92d);if(_0x294e1a){_0x3b71f7='\x22'+_0x3b71f7+'\x22';}_0x657c49[_0x3dd7('0x2d')](_0x3b71f7);});_0x2fe7e6=_0x2fe7e6['replace'](_0x3dd7('0x2c'),_0x657c49['join']('\x20'));return _0x2fe7e6;};exports['getOptions']=function(_0x432567,_0x288265,_0x49b160){var _0xab58b9={},_0x49dfa9={};if(_0x288265['query'][_0x3dd7('0x2e')]){_0x288265[_0x3dd7('0x2f')]['id']=_0x288265['query'][_0x3dd7('0x2e')];delete _0x288265[_0x3dd7('0x2f')][_0x3dd7('0x2e')];}_0xab58b9['model']=_[_0x3dd7('0x18')](_0x432567,'name');_0xab58b9[_0x3dd7('0x2f')]=_[_0x3dd7('0x4')](_0x288265[_0x3dd7('0x2f')]);_0xab58b9[_0x3dd7('0x30')]=_['intersection'](_0xab58b9[_0x3dd7('0x6')],_0xab58b9[_0x3dd7('0x2f')]);_0x49dfa9[_0x3dd7('0x31')]=_[_0x3dd7('0x32')](_0xab58b9[_0x3dd7('0x6')],this[_0x3dd7('0x8')](_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x8')]));_0x49dfa9['attributes']=_0x49dfa9[_0x3dd7('0x31')][_0x3dd7('0x24')]?_0x49dfa9[_0x3dd7('0x31')]:_0xab58b9[_0x3dd7('0x6')];if(!_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x25')]('nolimit')){_0x49dfa9[_0x3dd7('0x16')]=this['limit'](_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x16')]);_0x49dfa9[_0x3dd7('0x17')]=this[_0x3dd7('0x17')](_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x17')]);}_0x49dfa9[_0x3dd7('0x33')]=this[_0x3dd7('0x34')](_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x34')]);_0x49dfa9[_0x3dd7('0x35')]=this['filters'](_[_0x3dd7('0x36')](_0x288265[_0x3dd7('0x2f')],_0xab58b9[_0x3dd7('0x30')]),_0x432567);if(_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x37')]){var _0x3784cf=_0x432567;var _0x11093f=_0x288265[_0x3dd7('0x2f')][_0x3dd7('0x37')];if(typeof _0x11093f===_0x3dd7('0x38')){_0x3784cf=_[_0x3dd7('0x37')](_0x432567,function(_0x41cfd0){return _['includes'](_0x11093f['columns'],_0x41cfd0[_0x3dd7('0x13')]);});_0x11093f=_0x11093f[_0x3dd7('0x39')];}_0x49dfa9[_0x3dd7('0x35')]=_[_0x3dd7('0x3a')](_0x49dfa9[_0x3dd7('0x35')],{'$or':_[_0x3dd7('0x18')](_0x3784cf,function(_0x37bcfd){if(_0x37bcfd[_0x3dd7('0x3b')]!==_0x3dd7('0x3c')){if(_0x49b160){return sequelize[_0x3dd7('0x35')](sequelize['fn'](_0x3dd7('0x3d'),sequelize['col'](_0x37bcfd[_0x3dd7('0x13')])),{'$like':sequelize['fn']('lower','%'+_0x288265['query'][_0x3dd7('0x37')]+'%')});}else{var _0xb59fe5={};_0xb59fe5[_0x37bcfd[_0x3dd7('0x13')]]={'$like':'%'+_0x288265['query'][_0x3dd7('0x37')]+'%'};return _0xb59fe5;}}})});}_0x49dfa9=_['merge']({},_0x49dfa9,_0x288265[_0x3dd7('0x3e')]);return _0x49dfa9;};exports[_0x3dd7('0x3f')]=function(_0x3541c3){var _0x3f8058=[];if(_0x3541c3[_0x3dd7('0x40')]){_0x3f8058[_0x3dd7('0x2d')]({'all':!![]});}else if(_0x3541c3[_0x3dd7('0x3f')]){if(Array[_0x3dd7('0x15')](_0x3541c3[_0x3dd7('0x3f')])){_0x3f8058=Object[_0x3dd7('0x4')](_0x3541c3[_0x3dd7('0x3f')])['map'](function(_0x33e08f){return parseIncludeModel(_0x3541c3['include'][_0x33e08f]);});}else{var _0x45a63b=parseIncludeModel(_0x3541c3[_0x3dd7('0x3f')]);_0x3f8058['push'](_0x45a63b);}}return _0x3f8058;};