Built motion from commit 9d0783e6.|2.6.13
[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 _0x8d13=['order','where','pick','filter','object','value','merge','VIRTUAL','lower','options','sequelize','moment','parse','keys','includes','fields','split','isEmpty','forOwn','find','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','subtract','name','uniqueid','isArray','limit','offset','sort','priority','cast','DESC','col','unsigned','ASC','omit','length','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','{EXPR}','replace','push','join','getOptions','query','$id','model','map','filters','attributes','intersection','nolimit'];(function(_0x1d4eb5,_0xa3107b){var _0x395c26=function(_0x2791de){while(--_0x2791de){_0x1d4eb5['push'](_0x1d4eb5['shift']());}};_0x395c26(++_0xa3107b);}(_0x8d13,0x106));var _0x38d1=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x8d13[_0x2dafbe];return _0x58a45a;};'use strict';var _=require('lodash');var sequelize=require(_0x38d1('0x0'));var moment=require(_0x38d1('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0xd35b5e){var _0x48938e=['ne'];try{var _0x2ee83b=JSON[_0x38d1('0x2')](_0xd35b5e);var _0x19903d=Object[_0x38d1('0x3')](_0x2ee83b)[0x0];return _0x48938e[_0x38d1('0x4')](_0x19903d);}catch(_0x1b88df){return![];}}function getOperatorValue(_0x514268){var _0x145ce4=JSON[_0x38d1('0x2')](_0x514268);var _0x3a6ef2=Object[_0x38d1('0x3')](_0x145ce4)[0x0];var _0x5d0837=_0x145ce4[_0x3a6ef2];return{['$'+_0x3a6ef2]:_0x5d0837};}exports[_0x38d1('0x5')]=function(_0xe05353){var _0x12e694=null;if(_0xe05353){_0x12e694=_0xe05353[_0x38d1('0x6')](',');}return _0x12e694;};exports['filters']=function(_0x24a34b,_0x428876){var _0xcf2b67={};if(!_[_0x38d1('0x7')](_0x24a34b)){_[_0x38d1('0x8')](_0x24a34b,function(_0x3e6dd9,_0x1be308){try{if(_0x428876){var _0x5abf44=_[_0x38d1('0x9')](_0x428876,{'name':_0x1be308})||{};if(hasSequelizeOperator(_0x3e6dd9)){_0xcf2b67[_0x1be308]=getOperatorValue(_0x3e6dd9);}else if(_0x5abf44[_0x38d1('0xa')]===_0x38d1('0xb')&&_[_0x38d1('0xc')](_0x3e6dd9)){var _0x34516e=JSON[_0x38d1('0x2')](_0x3e6dd9);var _0x3b9e2a={'$gte':moment(moment(_0x34516e[_0x38d1('0xd')])[_0x38d1('0xe')](_0x38d1('0xf')))[_0x38d1('0x10')]()['format'](),'$lte':moment(moment(_0x34516e['$lte'])[_0x38d1('0xe')](_0x38d1('0xf')))[_0x38d1('0x10')]()[_0x38d1('0x11')](0x1,'s')[_0x38d1('0xe')]()};_0xcf2b67[_0x1be308]=_0x3b9e2a;}else if(_0x5abf44[_0x38d1('0x12')]===_0x38d1('0x13')){_0xcf2b67[_0x1be308]=_0x3e6dd9;}else{_0xcf2b67[_0x1be308]=_['isArray'](_0x3e6dd9)?_0x3e6dd9:JSON[_0x38d1('0x2')](_0x3e6dd9);}}else{_0xcf2b67[_0x1be308]=_[_0x38d1('0x14')](_0x3e6dd9)?_0x3e6dd9:JSON[_0x38d1('0x2')](_0x3e6dd9);}}catch(_0x238a28){_0xcf2b67[_0x1be308]=_0x3e6dd9[_0x38d1('0x6')](',');}});}return _0xcf2b67;};exports[_0x38d1('0x15')]=function(_0x2aa9c3){_0x2aa9c3=parseInt(_0x2aa9c3,0xa);if(!_0x2aa9c3||_0x2aa9c3<0x0){_0x2aa9c3=LIMIT_VALUE;}return _0x2aa9c3;};exports[_0x38d1('0x16')]=function(_0x152917){_0x152917=parseInt(_0x152917,0xa);if(!_0x152917||_0x152917<0x0){_0x152917=0x0;}return _0x152917;};exports[_0x38d1('0x17')]=function(_0x2007f0){var _0x35ed0b,_0x101ce1=null;if(_0x2007f0){_0x35ed0b=_0x2007f0['split'](',');_0x101ce1=_['map'](_0x35ed0b,function(_0x1c868f){if(_0x1c868f['indexOf']('-')===0x0){return[_0x1c868f===_0x38d1('0x18')?sequelize[_0x38d1('0x19')](sequelize['col'](_0x38d1('0x18')),'unsigned'):_0x1c868f['substr'](0x1),_0x38d1('0x1a')];}else{return[_0x1c868f==='priority'?sequelize[_0x38d1('0x19')](sequelize[_0x38d1('0x1b')]('priority'),_0x38d1('0x1c')):_0x1c868f,_0x38d1('0x1d')];}});}return _0x101ce1;};exports[_0x38d1('0x1e')]=function(_0x54b055,_0x4e2636){if(_[_0x38d1('0x7')](_0x54b055)){return _0x54b055;}if(_[_0x38d1('0x14')](_0x54b055)){for(var _0x2ba4d1=0x0;_0x2ba4d1<_0x54b055[_0x38d1('0x1f')];_0x2ba4d1+=0x1){_0x54b055[_0x2ba4d1]=this[_0x38d1('0x1e')](_0x54b055[_0x2ba4d1],_0x4e2636);}return _0x54b055;}if(!_['isObject'](_0x54b055)){return _0x54b055;}if(_[_0x38d1('0x20')](_0x4e2636)){_0x4e2636=[_0x4e2636];}if(!_[_0x38d1('0x14')](_0x4e2636)){return _0x54b055;}for(var _0x20a598=0x0;_0x20a598<_0x4e2636[_0x38d1('0x1f')];_0x20a598+=0x1){_[_0x38d1('0x21')](_0x54b055,_0x4e2636[_0x20a598]);}for(var _0x1eb838 in _0x54b055){if(_0x54b055[_0x38d1('0x22')](_0x1eb838)){_0x54b055[_0x1eb838]=this[_0x38d1('0x1e')](_0x54b055[_0x1eb838],_0x4e2636);}}return _0x54b055;};exports[_0x38d1('0x23')]=function(_0x44542f){return _0x44542f[_0x38d1('0x24')](RegExp(_0x38d1('0x25')))?!![]:![];};exports[_0x38d1('0x26')]=function(_0x18cf8f){return _0x18cf8f[_0x38d1('0x24')](/^\S+@\S+$/)?!![]:![];};exports[_0x38d1('0x27')]=function(_0x3b880c,_0x53f820){var _0x16c390=[];var _0x465fec=/[ `!@#$%^&*()_\-?~]/;var _0x310c01=_0x53f820?'\x22{EXPR}\x22':_0x38d1('0x28');_0x3b880c[_0x38d1('0x6')](/[ ,]+/)['forEach'](function(_0x29a272){_0x29a272=_0x29a272[_0x38d1('0x29')](/([^:]")"+/g,'$1');_0x29a272='+'+_0x29a272+'*';var _0x2d3a59=_0x29a272[_0x38d1('0x24')](_0x465fec);if(_0x2d3a59){_0x29a272='\x22'+_0x29a272+'\x22';}_0x16c390[_0x38d1('0x2a')](_0x29a272);});_0x310c01=_0x310c01[_0x38d1('0x29')](_0x38d1('0x28'),_0x16c390[_0x38d1('0x2b')]('\x20'));return _0x310c01;};exports[_0x38d1('0x2c')]=function(_0x504881,_0x24ad11,_0x593ec6){var _0x212356={},_0x58c507={};if(_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x2e')]){_0x24ad11[_0x38d1('0x2d')]['id']=_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x2e')];delete _0x24ad11[_0x38d1('0x2d')][_0x38d1('0x2e')];}_0x212356[_0x38d1('0x2f')]=_[_0x38d1('0x30')](_0x504881,_0x38d1('0x12'));_0x212356['query']=_['keys'](_0x24ad11['query']);_0x212356[_0x38d1('0x31')]=_['intersection'](_0x212356[_0x38d1('0x2f')],_0x212356['query']);_0x58c507[_0x38d1('0x32')]=_[_0x38d1('0x33')](_0x212356[_0x38d1('0x2f')],this['fields'](_0x24ad11['query']['fields']));_0x58c507['attributes']=_0x58c507[_0x38d1('0x32')]['length']?_0x58c507[_0x38d1('0x32')]:_0x212356[_0x38d1('0x2f')];if(!_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x22')](_0x38d1('0x34'))){_0x58c507[_0x38d1('0x15')]=this[_0x38d1('0x15')](_0x24ad11['query'][_0x38d1('0x15')]);_0x58c507[_0x38d1('0x16')]=this[_0x38d1('0x16')](_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x16')]);}_0x58c507[_0x38d1('0x35')]=this[_0x38d1('0x17')](_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x17')]);_0x58c507[_0x38d1('0x36')]=this[_0x38d1('0x31')](_[_0x38d1('0x37')](_0x24ad11[_0x38d1('0x2d')],_0x212356[_0x38d1('0x31')]),_0x504881);if(_0x24ad11[_0x38d1('0x2d')]['filter']){var _0x54f885=_0x504881;var _0xb0e569=_0x24ad11[_0x38d1('0x2d')][_0x38d1('0x38')];if(typeof _0xb0e569===_0x38d1('0x39')){_0x54f885=_[_0x38d1('0x38')](_0x504881,function(_0x337283){return _[_0x38d1('0x4')](_0xb0e569['columns'],_0x337283['name']);});_0xb0e569=_0xb0e569[_0x38d1('0x3a')];}_0x58c507[_0x38d1('0x36')]=_[_0x38d1('0x3b')](_0x58c507[_0x38d1('0x36')],{'$or':_[_0x38d1('0x30')](_0x54f885,function(_0x6c70fe){if(_0x6c70fe[_0x38d1('0xa')]!==_0x38d1('0x3c')){if(_0x593ec6){return sequelize['where'](sequelize['fn'](_0x38d1('0x3d'),sequelize[_0x38d1('0x1b')](_0x6c70fe['name'])),{'$like':sequelize['fn'](_0x38d1('0x3d'),'%'+_0x24ad11['query'][_0x38d1('0x38')]+'%')});}else{var _0x3fe054={};_0x3fe054[_0x6c70fe[_0x38d1('0x12')]]={'$like':'%'+_0x24ad11['query'][_0x38d1('0x38')]+'%'};return _0x3fe054;}}})});}_0x58c507=_['merge']({},_0x58c507,_0x24ad11[_0x38d1('0x3e')]);return _0x58c507;};