210f8686c9733701f81acac51c73547eee836b55
[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 _0x8fdd=['indexOf','priority','col','unsigned','substr','DESC','cast','length','isObject','unset','omit','isNumeric','^[+]?[0-9]*$','isEmail','match','getFullTextValue','\x22{EXPR}\x22','{EXPR}','forEach','push','replace','query','$id','intersection','attributes','nolimit','order','filter','object','columns','value','where','merge','lower','options','include','includeAll','sequelize','moment','keys','includes','parse','model','alias','fields','raw','split','filters','isEmpty','forOwn','find','type','DATE','$gte','format','YYYY-MM-DD','$lte','subtract','name','uniqueid','isArray','limit','offset','sort','map'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x8fdd,0x1ab));var _0xd8fd=function(_0xb83ec2,_0x18e73b){_0xb83ec2=_0xb83ec2-0x0;var _0x4d2fbf=_0x8fdd[_0xb83ec2];return _0x4d2fbf;};'use strict';var _=require('lodash');var sequelize=require(_0xd8fd('0x0'));var moment=require(_0xd8fd('0x1'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x233480){var _0x43d35e=['ne'];try{var _0x4cbc48=JSON['parse'](_0x233480);var _0x2e1524=Object[_0xd8fd('0x2')](_0x4cbc48)[0x0];return _0x43d35e[_0xd8fd('0x3')](_0x2e1524);}catch(_0x309ba2){return![];}}function getOperatorValue(_0x279470){var _0x2ff083=JSON[_0xd8fd('0x4')](_0x279470);var _0x4988e8=Object['keys'](_0x2ff083)[0x0];var _0x288c79=_0x2ff083[_0x4988e8];return{['$'+_0x4988e8]:_0x288c79};}function parseIncludeModel(_0x2d7e63){var _0x5d6f60=JSON['parse'](_0x2d7e63);return{'model':db[_0x5d6f60[_0xd8fd('0x5')]],'as':_0x5d6f60[_0xd8fd('0x6')],'attributes':_0x5d6f60[_0xd8fd('0x7')],'raw':_0x5d6f60[_0xd8fd('0x8')]};}exports[_0xd8fd('0x7')]=function(_0x197377){var _0x54f9e1=null;if(_0x197377){_0x54f9e1=_0x197377[_0xd8fd('0x9')](',');}return _0x54f9e1;};exports[_0xd8fd('0xa')]=function(_0xec6d37,_0x11eeb6){var _0x18386f={};if(!_[_0xd8fd('0xb')](_0xec6d37)){_[_0xd8fd('0xc')](_0xec6d37,function(_0x424e4e,_0x216ac9){try{if(_0x11eeb6){var _0x1339b1=_[_0xd8fd('0xd')](_0x11eeb6,{'name':_0x216ac9})||{};if(hasSequelizeOperator(_0x424e4e)){_0x18386f[_0x216ac9]=getOperatorValue(_0x424e4e);}else if(_0x1339b1[_0xd8fd('0xe')]===_0xd8fd('0xf')&&_['isPlainObject'](_0x424e4e)){var _0x53a041=JSON[_0xd8fd('0x4')](_0x424e4e);var _0x521c37={'$gte':moment(moment(_0x53a041[_0xd8fd('0x10')])[_0xd8fd('0x11')](_0xd8fd('0x12')))['utc']()[_0xd8fd('0x11')](),'$lte':moment(moment(_0x53a041[_0xd8fd('0x13')])[_0xd8fd('0x11')](_0xd8fd('0x12')))['utc']()[_0xd8fd('0x14')](0x1,'s')[_0xd8fd('0x11')]()};_0x18386f[_0x216ac9]=_0x521c37;}else if(_0x1339b1[_0xd8fd('0x15')]===_0xd8fd('0x16')){_0x18386f[_0x216ac9]=_0x424e4e;}else{_0x18386f[_0x216ac9]=_['isArray'](_0x424e4e)?_0x424e4e:JSON[_0xd8fd('0x4')](_0x424e4e);}}else{_0x18386f[_0x216ac9]=_[_0xd8fd('0x17')](_0x424e4e)?_0x424e4e:JSON['parse'](_0x424e4e);}}catch(_0x43e4c5){_0x18386f[_0x216ac9]=_0x424e4e[_0xd8fd('0x9')](',');}});}return _0x18386f;};exports[_0xd8fd('0x18')]=function(_0x23c6ed){_0x23c6ed=parseInt(_0x23c6ed,0xa);if(!_0x23c6ed||_0x23c6ed<0x0){_0x23c6ed=LIMIT_VALUE;}return _0x23c6ed;};exports[_0xd8fd('0x19')]=function(_0x5ce2b9){_0x5ce2b9=parseInt(_0x5ce2b9,0xa);if(!_0x5ce2b9||_0x5ce2b9<0x0){_0x5ce2b9=0x0;}return _0x5ce2b9;};exports[_0xd8fd('0x1a')]=function(_0x4a16e1){var _0x520281,_0x522b87=null;if(_0x4a16e1){_0x520281=_0x4a16e1['split'](',');_0x522b87=_[_0xd8fd('0x1b')](_0x520281,function(_0x3d5d5a){if(_0x3d5d5a[_0xd8fd('0x1c')]('-')===0x0){return[_0x3d5d5a===_0xd8fd('0x1d')?sequelize['cast'](sequelize[_0xd8fd('0x1e')](_0xd8fd('0x1d')),_0xd8fd('0x1f')):_0x3d5d5a[_0xd8fd('0x20')](0x1),_0xd8fd('0x21')];}else{return[_0x3d5d5a===_0xd8fd('0x1d')?sequelize[_0xd8fd('0x22')](sequelize['col'](_0xd8fd('0x1d')),'unsigned'):_0x3d5d5a,'ASC'];}});}return _0x522b87;};exports['omit']=function(_0xd77630,_0xf61c03){if(_['isEmpty'](_0xd77630)){return _0xd77630;}if(_['isArray'](_0xd77630)){for(var _0x22929d=0x0;_0x22929d<_0xd77630[_0xd8fd('0x23')];_0x22929d+=0x1){_0xd77630[_0x22929d]=this['omit'](_0xd77630[_0x22929d],_0xf61c03);}return _0xd77630;}if(!_[_0xd8fd('0x24')](_0xd77630)){return _0xd77630;}if(_['isString'](_0xf61c03)){_0xf61c03=[_0xf61c03];}if(!_[_0xd8fd('0x17')](_0xf61c03)){return _0xd77630;}for(var _0x13b0ac=0x0;_0x13b0ac<_0xf61c03[_0xd8fd('0x23')];_0x13b0ac+=0x1){_[_0xd8fd('0x25')](_0xd77630,_0xf61c03[_0x13b0ac]);}for(var _0x3cc1a0 in _0xd77630){if(_0xd77630['hasOwnProperty'](_0x3cc1a0)){_0xd77630[_0x3cc1a0]=this[_0xd8fd('0x26')](_0xd77630[_0x3cc1a0],_0xf61c03);}}return _0xd77630;};exports[_0xd8fd('0x27')]=function(_0x1d4372){return _0x1d4372['match'](RegExp(_0xd8fd('0x28')))?!![]:![];};exports[_0xd8fd('0x29')]=function(_0x59a1a4){return _0x59a1a4[_0xd8fd('0x2a')](/^\S+@\S+$/)?!![]:![];};exports[_0xd8fd('0x2b')]=function(_0x49c95b,_0x35c4f4){var _0x416ad0=[];var _0x2de22d=/[ `!@#$%^&*()_\-?~]/;var _0xba144=_0x35c4f4?_0xd8fd('0x2c'):_0xd8fd('0x2d');_0x49c95b[_0xd8fd('0x9')](/[ ,]+/)[_0xd8fd('0x2e')](function(_0xe54ba4){_0xe54ba4=_0xe54ba4['replace'](/([^:]")"+/g,'$1');_0xe54ba4='+'+_0xe54ba4+'*';var _0x23c329=_0xe54ba4[_0xd8fd('0x2a')](_0x2de22d);if(_0x23c329){_0xe54ba4='\x22'+_0xe54ba4+'\x22';}_0x416ad0[_0xd8fd('0x2f')](_0xe54ba4);});_0xba144=_0xba144[_0xd8fd('0x30')](_0xd8fd('0x2d'),_0x416ad0['join']('\x20'));return _0xba144;};exports['getOptions']=function(_0x352a57,_0x563645,_0x1d54d4){var _0x51d42c={},_0x5bf005={};if(_0x563645[_0xd8fd('0x31')]['$id']){_0x563645[_0xd8fd('0x31')]['id']=_0x563645[_0xd8fd('0x31')][_0xd8fd('0x32')];delete _0x563645[_0xd8fd('0x31')][_0xd8fd('0x32')];}_0x51d42c['model']=_['map'](_0x352a57,_0xd8fd('0x15'));_0x51d42c[_0xd8fd('0x31')]=_['keys'](_0x563645['query']);_0x51d42c['filters']=_[_0xd8fd('0x33')](_0x51d42c['model'],_0x51d42c[_0xd8fd('0x31')]);_0x5bf005[_0xd8fd('0x34')]=_['intersection'](_0x51d42c['model'],this[_0xd8fd('0x7')](_0x563645[_0xd8fd('0x31')][_0xd8fd('0x7')]));_0x5bf005['attributes']=_0x5bf005[_0xd8fd('0x34')]['length']?_0x5bf005[_0xd8fd('0x34')]:_0x51d42c[_0xd8fd('0x5')];if(!_0x563645[_0xd8fd('0x31')]['hasOwnProperty'](_0xd8fd('0x35'))){_0x5bf005['limit']=this[_0xd8fd('0x18')](_0x563645['query'][_0xd8fd('0x18')]);_0x5bf005['offset']=this[_0xd8fd('0x19')](_0x563645[_0xd8fd('0x31')][_0xd8fd('0x19')]);}_0x5bf005[_0xd8fd('0x36')]=this[_0xd8fd('0x1a')](_0x563645[_0xd8fd('0x31')][_0xd8fd('0x1a')]);_0x5bf005['where']=this['filters'](_['pick'](_0x563645[_0xd8fd('0x31')],_0x51d42c[_0xd8fd('0xa')]),_0x352a57);if(_0x563645[_0xd8fd('0x31')][_0xd8fd('0x37')]){var _0x162d9b=_0x352a57;var _0x50be4d=_0x563645[_0xd8fd('0x31')]['filter'];if(typeof _0x50be4d===_0xd8fd('0x38')){_0x162d9b=_[_0xd8fd('0x37')](_0x352a57,function(_0x286a93){return _[_0xd8fd('0x3')](_0x50be4d[_0xd8fd('0x39')],_0x286a93[_0xd8fd('0x15')]);});_0x50be4d=_0x50be4d[_0xd8fd('0x3a')];}_0x5bf005[_0xd8fd('0x3b')]=_[_0xd8fd('0x3c')](_0x5bf005[_0xd8fd('0x3b')],{'$or':_['map'](_0x162d9b,function(_0x5dbc42){if(_0x5dbc42['type']!=='VIRTUAL'){if(_0x1d54d4){return sequelize[_0xd8fd('0x3b')](sequelize['fn'](_0xd8fd('0x3d'),sequelize[_0xd8fd('0x1e')](_0x5dbc42[_0xd8fd('0x15')])),{'$like':sequelize['fn'](_0xd8fd('0x3d'),'%'+_0x563645[_0xd8fd('0x31')][_0xd8fd('0x37')]+'%')});}else{var _0x3dcc6f={};_0x3dcc6f[_0x5dbc42[_0xd8fd('0x15')]]={'$like':'%'+_0x563645['query'][_0xd8fd('0x37')]+'%'};return _0x3dcc6f;}}})});}_0x5bf005=_[_0xd8fd('0x3c')]({},_0x5bf005,_0x563645[_0xd8fd('0x3e')]);return _0x5bf005;};exports[_0xd8fd('0x3f')]=function(_0x1ae759){var _0x5e3c0c=[];if(_0x1ae759[_0xd8fd('0x40')]){_0x5e3c0c[_0xd8fd('0x2f')]({'all':!![]});}else if(_0x1ae759[_0xd8fd('0x3f')]){if(Array['isArray'](_0x1ae759[_0xd8fd('0x3f')])){_0x5e3c0c=Object[_0xd8fd('0x2')](_0x1ae759[_0xd8fd('0x3f')])[_0xd8fd('0x1b')](function(_0x582c22){return parseIncludeModel(_0x1ae759[_0xd8fd('0x3f')][_0x582c22]);});}else{var _0x5999ca=parseIncludeModel(_0x1ae759['include']);_0x5e3c0c[_0xd8fd('0x2f')](_0x5999ca);}}return _0x5e3c0c;};