Built motion from commit e02f907f.|2.6.14
[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 _0x72ba=['where','VIRTUAL','lower','filter','options','sequelize','parse','keys','fields','split','filters','isEmpty','forOwn','find','type','DATE','isPlainObject','$gte','YYYY-MM-DD','utc','$lte','format','name','isArray','limit','offset','map','indexOf','priority','cast','col','unsigned','DESC','ASC','length','omit','isObject','isString','hasOwnProperty','isNumeric','^[+]?[0-9]*$','isEmail','match','getFullTextValue','forEach','replace','push','join','getOptions','query','$id','model','intersection','attributes','order','sort','pick','object','includes','columns'];(function(_0xc06fc3,_0x31b690){var _0x5e81e1=function(_0x36e00c){while(--_0x36e00c){_0xc06fc3['push'](_0xc06fc3['shift']());}};_0x5e81e1(++_0x31b690);}(_0x72ba,0xf5));var _0xa72b=function(_0x286726,_0x20a337){_0x286726=_0x286726-0x0;var _0xcd4fe9=_0x72ba[_0x286726];return _0xcd4fe9;};'use strict';var _=require('lodash');var sequelize=require(_0xa72b('0x0'));var moment=require('moment');var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x4e26f7){var _0x5c2aa8=['ne'];try{var _0x2a3e80=JSON[_0xa72b('0x1')](_0x4e26f7);var _0x54a763=Object[_0xa72b('0x2')](_0x2a3e80)[0x0];return _0x5c2aa8['includes'](_0x54a763);}catch(_0x34d5dd){return![];}}function getOperatorValue(_0x34e398){var _0x1201d6=JSON['parse'](_0x34e398);var _0x4ea88a=Object['keys'](_0x1201d6)[0x0];var _0x13fd81=_0x1201d6[_0x4ea88a];return{['$'+_0x4ea88a]:_0x13fd81};}exports[_0xa72b('0x3')]=function(_0x2b69df){var _0x473fbd=null;if(_0x2b69df){_0x473fbd=_0x2b69df[_0xa72b('0x4')](',');}return _0x473fbd;};exports[_0xa72b('0x5')]=function(_0x1209b1,_0x28f53e){var _0x221313={};if(!_[_0xa72b('0x6')](_0x1209b1)){_[_0xa72b('0x7')](_0x1209b1,function(_0x14d1e6,_0x545d4e){try{if(_0x28f53e){var _0x2b23f4=_[_0xa72b('0x8')](_0x28f53e,{'name':_0x545d4e})||{};if(hasSequelizeOperator(_0x14d1e6)){_0x221313[_0x545d4e]=getOperatorValue(_0x14d1e6);}else if(_0x2b23f4[_0xa72b('0x9')]===_0xa72b('0xa')&&_[_0xa72b('0xb')](_0x14d1e6)){var _0x57770f=JSON['parse'](_0x14d1e6);var _0x105f00={'$gte':moment(moment(_0x57770f[_0xa72b('0xc')])['format'](_0xa72b('0xd')))[_0xa72b('0xe')]()['format'](),'$lte':moment(moment(_0x57770f[_0xa72b('0xf')])[_0xa72b('0x10')](_0xa72b('0xd')))[_0xa72b('0xe')]()['subtract'](0x1,'s')[_0xa72b('0x10')]()};_0x221313[_0x545d4e]=_0x105f00;}else if(_0x2b23f4[_0xa72b('0x11')]==='uniqueid'){_0x221313[_0x545d4e]=_0x14d1e6;}else{_0x221313[_0x545d4e]=_[_0xa72b('0x12')](_0x14d1e6)?_0x14d1e6:JSON['parse'](_0x14d1e6);}}else{_0x221313[_0x545d4e]=_['isArray'](_0x14d1e6)?_0x14d1e6:JSON[_0xa72b('0x1')](_0x14d1e6);}}catch(_0x7e83ad){_0x221313[_0x545d4e]=_0x14d1e6[_0xa72b('0x4')](',');}});}return _0x221313;};exports[_0xa72b('0x13')]=function(_0x467e1f){_0x467e1f=parseInt(_0x467e1f,0xa);if(!_0x467e1f||_0x467e1f<0x0){_0x467e1f=LIMIT_VALUE;}return _0x467e1f;};exports[_0xa72b('0x14')]=function(_0x2cf01a){_0x2cf01a=parseInt(_0x2cf01a,0xa);if(!_0x2cf01a||_0x2cf01a<0x0){_0x2cf01a=0x0;}return _0x2cf01a;};exports['sort']=function(_0x2a5b79){var _0x1a18aa,_0x2a6f24=null;if(_0x2a5b79){_0x1a18aa=_0x2a5b79[_0xa72b('0x4')](',');_0x2a6f24=_[_0xa72b('0x15')](_0x1a18aa,function(_0x296ca4){if(_0x296ca4[_0xa72b('0x16')]('-')===0x0){return[_0x296ca4===_0xa72b('0x17')?sequelize[_0xa72b('0x18')](sequelize[_0xa72b('0x19')]('priority'),_0xa72b('0x1a')):_0x296ca4['substr'](0x1),_0xa72b('0x1b')];}else{return[_0x296ca4===_0xa72b('0x17')?sequelize[_0xa72b('0x18')](sequelize['col'](_0xa72b('0x17')),_0xa72b('0x1a')):_0x296ca4,_0xa72b('0x1c')];}});}return _0x2a6f24;};exports['omit']=function(_0x127bbb,_0x1abc60){if(_[_0xa72b('0x6')](_0x127bbb)){return _0x127bbb;}if(_[_0xa72b('0x12')](_0x127bbb)){for(var _0x272486=0x0;_0x272486<_0x127bbb[_0xa72b('0x1d')];_0x272486+=0x1){_0x127bbb[_0x272486]=this[_0xa72b('0x1e')](_0x127bbb[_0x272486],_0x1abc60);}return _0x127bbb;}if(!_[_0xa72b('0x1f')](_0x127bbb)){return _0x127bbb;}if(_[_0xa72b('0x20')](_0x1abc60)){_0x1abc60=[_0x1abc60];}if(!_[_0xa72b('0x12')](_0x1abc60)){return _0x127bbb;}for(var _0x5bb4ac=0x0;_0x5bb4ac<_0x1abc60['length'];_0x5bb4ac+=0x1){_['unset'](_0x127bbb,_0x1abc60[_0x5bb4ac]);}for(var _0x24b405 in _0x127bbb){if(_0x127bbb[_0xa72b('0x21')](_0x24b405)){_0x127bbb[_0x24b405]=this[_0xa72b('0x1e')](_0x127bbb[_0x24b405],_0x1abc60);}}return _0x127bbb;};exports[_0xa72b('0x22')]=function(_0x4ac7b8){return _0x4ac7b8['match'](RegExp(_0xa72b('0x23')))?!![]:![];};exports[_0xa72b('0x24')]=function(_0x488b1){return _0x488b1[_0xa72b('0x25')](/^\S+@\S+$/)?!![]:![];};exports[_0xa72b('0x26')]=function(_0x59e352,_0xd46dd4){var _0x302f41=[];var _0x376e9f=/[ `!@#$%^&*()_\-?~]/;var _0x247227=_0xd46dd4?'\x22{EXPR}\x22':'{EXPR}';_0x59e352[_0xa72b('0x4')](/[ ,]+/)[_0xa72b('0x27')](function(_0x41ded7){_0x41ded7=_0x41ded7[_0xa72b('0x28')](/([^:]")"+/g,'$1');_0x41ded7='+'+_0x41ded7+'*';var _0x4cfd6e=_0x41ded7[_0xa72b('0x25')](_0x376e9f);if(_0x4cfd6e){_0x41ded7='\x22'+_0x41ded7+'\x22';}_0x302f41[_0xa72b('0x29')](_0x41ded7);});_0x247227=_0x247227['replace']('{EXPR}',_0x302f41[_0xa72b('0x2a')]('\x20'));return _0x247227;};exports[_0xa72b('0x2b')]=function(_0x178429,_0x122083,_0x9f8ef0){var _0x9a0d0={},_0x3857ca={};if(_0x122083['query']['$id']){_0x122083[_0xa72b('0x2c')]['id']=_0x122083['query'][_0xa72b('0x2d')];delete _0x122083[_0xa72b('0x2c')][_0xa72b('0x2d')];}_0x9a0d0[_0xa72b('0x2e')]=_[_0xa72b('0x15')](_0x178429,_0xa72b('0x11'));_0x9a0d0[_0xa72b('0x2c')]=_[_0xa72b('0x2')](_0x122083['query']);_0x9a0d0[_0xa72b('0x5')]=_[_0xa72b('0x2f')](_0x9a0d0[_0xa72b('0x2e')],_0x9a0d0[_0xa72b('0x2c')]);_0x3857ca['attributes']=_[_0xa72b('0x2f')](_0x9a0d0[_0xa72b('0x2e')],this[_0xa72b('0x3')](_0x122083[_0xa72b('0x2c')]['fields']));_0x3857ca[_0xa72b('0x30')]=_0x3857ca[_0xa72b('0x30')][_0xa72b('0x1d')]?_0x3857ca[_0xa72b('0x30')]:_0x9a0d0[_0xa72b('0x2e')];if(!_0x122083[_0xa72b('0x2c')][_0xa72b('0x21')]('nolimit')){_0x3857ca[_0xa72b('0x13')]=this[_0xa72b('0x13')](_0x122083['query']['limit']);_0x3857ca['offset']=this['offset'](_0x122083['query'][_0xa72b('0x14')]);}_0x3857ca[_0xa72b('0x31')]=this[_0xa72b('0x32')](_0x122083[_0xa72b('0x2c')][_0xa72b('0x32')]);_0x3857ca['where']=this[_0xa72b('0x5')](_[_0xa72b('0x33')](_0x122083[_0xa72b('0x2c')],_0x9a0d0[_0xa72b('0x5')]),_0x178429);if(_0x122083[_0xa72b('0x2c')]['filter']){var _0x485aca=_0x178429;var _0x153fb5=_0x122083[_0xa72b('0x2c')]['filter'];if(typeof _0x153fb5===_0xa72b('0x34')){_0x485aca=_['filter'](_0x178429,function(_0x44b6ff){return _[_0xa72b('0x35')](_0x153fb5[_0xa72b('0x36')],_0x44b6ff[_0xa72b('0x11')]);});_0x153fb5=_0x153fb5['value'];}_0x3857ca[_0xa72b('0x37')]=_['merge'](_0x3857ca['where'],{'$or':_[_0xa72b('0x15')](_0x485aca,function(_0x356830){if(_0x356830[_0xa72b('0x9')]!==_0xa72b('0x38')){if(_0x9f8ef0){return sequelize[_0xa72b('0x37')](sequelize['fn'](_0xa72b('0x39'),sequelize[_0xa72b('0x19')](_0x356830[_0xa72b('0x11')])),{'$like':sequelize['fn'](_0xa72b('0x39'),'%'+_0x122083['query'][_0xa72b('0x3a')]+'%')});}else{var _0x580130={};_0x580130[_0x356830[_0xa72b('0x11')]]={'$like':'%'+_0x122083[_0xa72b('0x2c')][_0xa72b('0x3a')]+'%'};return _0x580130;}}})});}_0x3857ca=_['merge']({},_0x3857ca,_0x122083[_0xa72b('0x3b')]);return _0x3857ca;};