c991dc74bbd5141afd13ef1b03b8e0fd8da8023b
[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 _0xe0ae=['isArray','split','offset','sort','map','indexOf','priority','cast','col','unsigned','substr','ASC','omit','length','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','forEach','push','join','query','$id','model','intersection','attributes','fields','nolimit','limit','order','where','pick','filter','object','includes','columns','value','VIRTUAL','lower','moment','keys','parse','filters','isEmpty','forOwn','find','type','isPlainObject','YYYY-MM-DD','utc','format','$lte','subtract','name','uniqueid'];(function(_0x1c0991,_0x4f22d2){var _0x5034de=function(_0x520f49){while(--_0x520f49){_0x1c0991['push'](_0x1c0991['shift']());}};_0x5034de(++_0x4f22d2);}(_0xe0ae,0xa1));var _0xee0a=function(_0x512973,_0x564e8b){_0x512973=_0x512973-0x0;var _0x32f2e1=_0xe0ae[_0x512973];return _0x32f2e1;};'use strict';var _=require('lodash');var sequelize=require('sequelize');var moment=require(_0xee0a('0x0'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x401526){var _0x49a5e2=['ne'];try{var _0x42f3f6=JSON['parse'](_0x401526);var _0x32cc3e=Object[_0xee0a('0x1')](_0x42f3f6)[0x0];return _0x49a5e2['includes'](_0x32cc3e);}catch(_0x13a94a){return![];}}function getOperatorValue(_0x4d393b){var _0x5bef07=JSON[_0xee0a('0x2')](_0x4d393b);var _0x1c5071=Object[_0xee0a('0x1')](_0x5bef07)[0x0];var _0x344355=_0x5bef07[_0x1c5071];return{['$'+_0x1c5071]:_0x344355};}exports['fields']=function(_0x2296b9){var _0x49d436=null;if(_0x2296b9){_0x49d436=_0x2296b9['split'](',');}return _0x49d436;};exports[_0xee0a('0x3')]=function(_0x3d0b3f,_0xbd4483){var _0x57d190={};if(!_[_0xee0a('0x4')](_0x3d0b3f)){_[_0xee0a('0x5')](_0x3d0b3f,function(_0x548eb7,_0x305987){try{if(_0xbd4483){var _0x4b3e49=_[_0xee0a('0x6')](_0xbd4483,{'name':_0x305987})||{};if(hasSequelizeOperator(_0x548eb7)){_0x57d190[_0x305987]=getOperatorValue(_0x548eb7);}else if(_0x4b3e49[_0xee0a('0x7')]==='DATE'&&_[_0xee0a('0x8')](_0x548eb7)){var _0x5c56d9=JSON[_0xee0a('0x2')](_0x548eb7);var _0x1f2e57={'$gte':moment(moment(_0x5c56d9['$gte'])['format'](_0xee0a('0x9')))[_0xee0a('0xa')]()[_0xee0a('0xb')](),'$lte':moment(moment(_0x5c56d9[_0xee0a('0xc')])[_0xee0a('0xb')]('YYYY-MM-DD'))[_0xee0a('0xa')]()[_0xee0a('0xd')](0x1,'s')['format']()};_0x57d190[_0x305987]=_0x1f2e57;}else if(_0x4b3e49[_0xee0a('0xe')]===_0xee0a('0xf')){_0x57d190[_0x305987]=_0x548eb7;}else{_0x57d190[_0x305987]=_[_0xee0a('0x10')](_0x548eb7)?_0x548eb7:JSON[_0xee0a('0x2')](_0x548eb7);}}else{_0x57d190[_0x305987]=_['isArray'](_0x548eb7)?_0x548eb7:JSON[_0xee0a('0x2')](_0x548eb7);}}catch(_0x1d7a8a){_0x57d190[_0x305987]=_0x548eb7[_0xee0a('0x11')](',');}});}return _0x57d190;};exports['limit']=function(_0x1c1be5){_0x1c1be5=parseInt(_0x1c1be5,0xa);if(!_0x1c1be5||_0x1c1be5<0x0){_0x1c1be5=LIMIT_VALUE;}return _0x1c1be5;};exports[_0xee0a('0x12')]=function(_0xe1f346){_0xe1f346=parseInt(_0xe1f346,0xa);if(!_0xe1f346||_0xe1f346<0x0){_0xe1f346=0x0;}return _0xe1f346;};exports[_0xee0a('0x13')]=function(_0x5d29e0){var _0xe9d5d4,_0x10c224=null;if(_0x5d29e0){_0xe9d5d4=_0x5d29e0[_0xee0a('0x11')](',');_0x10c224=_[_0xee0a('0x14')](_0xe9d5d4,function(_0x5c981e){if(_0x5c981e[_0xee0a('0x15')]('-')===0x0){return[_0x5c981e===_0xee0a('0x16')?sequelize[_0xee0a('0x17')](sequelize[_0xee0a('0x18')](_0xee0a('0x16')),_0xee0a('0x19')):_0x5c981e[_0xee0a('0x1a')](0x1),'DESC'];}else{return[_0x5c981e===_0xee0a('0x16')?sequelize[_0xee0a('0x17')](sequelize[_0xee0a('0x18')](_0xee0a('0x16')),'unsigned'):_0x5c981e,_0xee0a('0x1b')];}});}return _0x10c224;};exports[_0xee0a('0x1c')]=function(_0x1fe1a3,_0x2c414d){if(_['isEmpty'](_0x1fe1a3)){return _0x1fe1a3;}if(_['isArray'](_0x1fe1a3)){for(var _0x578ecf=0x0;_0x578ecf<_0x1fe1a3[_0xee0a('0x1d')];_0x578ecf+=0x1){_0x1fe1a3[_0x578ecf]=this['omit'](_0x1fe1a3[_0x578ecf],_0x2c414d);}return _0x1fe1a3;}if(!_['isObject'](_0x1fe1a3)){return _0x1fe1a3;}if(_[_0xee0a('0x1e')](_0x2c414d)){_0x2c414d=[_0x2c414d];}if(!_[_0xee0a('0x10')](_0x2c414d)){return _0x1fe1a3;}for(var _0xe5365f=0x0;_0xe5365f<_0x2c414d['length'];_0xe5365f+=0x1){_[_0xee0a('0x1f')](_0x1fe1a3,_0x2c414d[_0xe5365f]);}for(var _0xe14449 in _0x1fe1a3){if(_0x1fe1a3[_0xee0a('0x20')](_0xe14449)){_0x1fe1a3[_0xe14449]=this[_0xee0a('0x1c')](_0x1fe1a3[_0xe14449],_0x2c414d);}}return _0x1fe1a3;};exports[_0xee0a('0x21')]=function(_0x45538d){return _0x45538d[_0xee0a('0x22')](RegExp(_0xee0a('0x23')))?!![]:![];};exports[_0xee0a('0x24')]=function(_0x7b472b){return _0x7b472b['match'](/^\S+@\S+$/)?!![]:![];};exports[_0xee0a('0x25')]=function(_0x1a97e0){var _0x284be5=[];_0x1a97e0[_0xee0a('0x11')](/[ ,]+/)[_0xee0a('0x26')](function(_0x3faad3){_0x3faad3=_0x3faad3['replace'](/([^:]")"+/g,'$1');_0x3faad3='+'+_0x3faad3+'*';var _0x339a0=/[ `!@#$%^&*()_\-?~]/;if(_0x3faad3[_0xee0a('0x22')](_0x339a0))_0x3faad3='\x22'+_0x3faad3+'\x22';_0x284be5[_0xee0a('0x27')](_0x3faad3);});return _0x284be5[_0xee0a('0x28')]('\x20');};exports['getOptions']=function(_0x354dff,_0x55e328,_0x192bc6){var _0x2419d7={},_0x3d6de4={};if(_0x55e328[_0xee0a('0x29')][_0xee0a('0x2a')]){_0x55e328[_0xee0a('0x29')]['id']=_0x55e328[_0xee0a('0x29')][_0xee0a('0x2a')];delete _0x55e328['query'][_0xee0a('0x2a')];}_0x2419d7[_0xee0a('0x2b')]=_['map'](_0x354dff,_0xee0a('0xe'));_0x2419d7[_0xee0a('0x29')]=_[_0xee0a('0x1')](_0x55e328['query']);_0x2419d7[_0xee0a('0x3')]=_[_0xee0a('0x2c')](_0x2419d7[_0xee0a('0x2b')],_0x2419d7['query']);_0x3d6de4[_0xee0a('0x2d')]=_[_0xee0a('0x2c')](_0x2419d7[_0xee0a('0x2b')],this['fields'](_0x55e328['query'][_0xee0a('0x2e')]));_0x3d6de4[_0xee0a('0x2d')]=_0x3d6de4[_0xee0a('0x2d')][_0xee0a('0x1d')]?_0x3d6de4[_0xee0a('0x2d')]:_0x2419d7[_0xee0a('0x2b')];if(!_0x55e328[_0xee0a('0x29')][_0xee0a('0x20')](_0xee0a('0x2f'))){_0x3d6de4['limit']=this[_0xee0a('0x30')](_0x55e328[_0xee0a('0x29')]['limit']);_0x3d6de4[_0xee0a('0x12')]=this[_0xee0a('0x12')](_0x55e328['query'][_0xee0a('0x12')]);}_0x3d6de4[_0xee0a('0x31')]=this[_0xee0a('0x13')](_0x55e328[_0xee0a('0x29')][_0xee0a('0x13')]);_0x3d6de4[_0xee0a('0x32')]=this[_0xee0a('0x3')](_[_0xee0a('0x33')](_0x55e328[_0xee0a('0x29')],_0x2419d7['filters']),_0x354dff);if(_0x55e328[_0xee0a('0x29')][_0xee0a('0x34')]){var _0x41eba8=_0x354dff;var _0xf3efee=_0x55e328['query']['filter'];if(typeof _0xf3efee===_0xee0a('0x35')){_0x41eba8=_[_0xee0a('0x34')](_0x354dff,function(_0x581c64){return _[_0xee0a('0x36')](_0xf3efee[_0xee0a('0x37')],_0x581c64[_0xee0a('0xe')]);});_0xf3efee=_0xf3efee[_0xee0a('0x38')];}_0x3d6de4['where']=_['merge'](_0x3d6de4[_0xee0a('0x32')],{'$or':_[_0xee0a('0x14')](_0x41eba8,function(_0x587ee3){if(_0x587ee3[_0xee0a('0x7')]!==_0xee0a('0x39')){if(_0x192bc6){return sequelize['where'](sequelize['fn'](_0xee0a('0x3a'),sequelize[_0xee0a('0x18')](_0x587ee3[_0xee0a('0xe')])),{'$like':sequelize['fn'](_0xee0a('0x3a'),'%'+_0x55e328[_0xee0a('0x29')][_0xee0a('0x34')]+'%')});}else{var _0xfe45={};_0xfe45[_0x587ee3['name']]={'$like':'%'+_0x55e328['query'][_0xee0a('0x34')]+'%'};return _0xfe45;}}})});}_0x3d6de4=_['merge']({},_0x3d6de4,_0x55e328['options']);return _0x3d6de4;};