Built motion from commit 753c950e.|2.5.42
[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 _0x0309=['ASC','omit','isEmpty','length','isObject','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','forEach','push','join','getOptions','query','$id','model','intersection','attributes','fields','nolimit','order','filters','pick','filter','object','columns','name','value','where','VIRTUAL','lower','col','merge','options','lodash','moment','parse','keys','includes','split','forOwn','find','type','DATE','$gte','YYYY-MM-DD','utc','format','$lte','subtract','uniqueid','isArray','limit','offset','sort','map','priority','cast','unsigned','substr','DESC'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0309,0x165));var _0x9030=function(_0x349af2,_0x3c767a){_0x349af2=_0x349af2-0x0;var _0x4ec9b4=_0x0309[_0x349af2];return _0x4ec9b4;};'use strict';var _=require(_0x9030('0x0'));var sequelize=require('sequelize');var moment=require(_0x9030('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x4875db){var _0x5b1a40=['ne'];try{var _0x352a94=JSON[_0x9030('0x2')](_0x4875db);var _0x4236be=Object[_0x9030('0x3')](_0x352a94)[0x0];return _0x5b1a40[_0x9030('0x4')](_0x4236be);}catch(_0xcbbe57){return![];}}function getOperatorValue(_0x482786){var _0x5a3334=JSON[_0x9030('0x2')](_0x482786);var _0x105c15=Object['keys'](_0x5a3334)[0x0];var _0xb53eb4=_0x5a3334[_0x105c15];return{['$'+_0x105c15]:_0xb53eb4};}exports['fields']=function(_0x1e2360){var _0x32d47d=null;if(_0x1e2360){_0x32d47d=_0x1e2360[_0x9030('0x5')](',');}return _0x32d47d;};exports['filters']=function(_0xe2c28b,_0x1da9ec){var _0x337b86={};if(!_['isEmpty'](_0xe2c28b)){_[_0x9030('0x6')](_0xe2c28b,function(_0x21bc06,_0x24d0f4){try{if(_0x1da9ec){var _0x11a539=_[_0x9030('0x7')](_0x1da9ec,{'name':_0x24d0f4})||{};if(hasSequelizeOperator(_0x21bc06)){_0x337b86[_0x24d0f4]=getOperatorValue(_0x21bc06);}else if(_0x11a539[_0x9030('0x8')]===_0x9030('0x9')&&_['isPlainObject'](_0x21bc06)){var _0x45e28a=JSON[_0x9030('0x2')](_0x21bc06);var _0x1e5bc9={'$gte':moment(moment(_0x45e28a[_0x9030('0xa')])['format'](_0x9030('0xb')))[_0x9030('0xc')]()[_0x9030('0xd')](),'$lte':moment(moment(_0x45e28a[_0x9030('0xe')])[_0x9030('0xd')](_0x9030('0xb')))[_0x9030('0xc')]()[_0x9030('0xf')](0x1,'s')[_0x9030('0xd')]()};_0x337b86[_0x24d0f4]=_0x1e5bc9;}else if(_0x11a539['name']===_0x9030('0x10')){_0x337b86[_0x24d0f4]=_0x21bc06;}else{_0x337b86[_0x24d0f4]=_[_0x9030('0x11')](_0x21bc06)?_0x21bc06:JSON[_0x9030('0x2')](_0x21bc06);}}else{_0x337b86[_0x24d0f4]=_[_0x9030('0x11')](_0x21bc06)?_0x21bc06:JSON[_0x9030('0x2')](_0x21bc06);}}catch(_0x1327ec){_0x337b86[_0x24d0f4]=_0x21bc06[_0x9030('0x5')](',');}});}return _0x337b86;};exports[_0x9030('0x12')]=function(_0x1f5474){_0x1f5474=parseInt(_0x1f5474,0xa);if(!_0x1f5474||_0x1f5474<0x0){_0x1f5474=LIMIT_VALUE;}return _0x1f5474;};exports[_0x9030('0x13')]=function(_0x164c88){_0x164c88=parseInt(_0x164c88,0xa);if(!_0x164c88||_0x164c88<0x0){_0x164c88=0x0;}return _0x164c88;};exports[_0x9030('0x14')]=function(_0x372716){var _0x243e7d,_0x1e5988=null;if(_0x372716){_0x243e7d=_0x372716[_0x9030('0x5')](',');_0x1e5988=_[_0x9030('0x15')](_0x243e7d,function(_0x4b0792){if(_0x4b0792['indexOf']('-')===0x0){return[_0x4b0792===_0x9030('0x16')?sequelize[_0x9030('0x17')](sequelize['col'](_0x9030('0x16')),_0x9030('0x18')):_0x4b0792[_0x9030('0x19')](0x1),_0x9030('0x1a')];}else{return[_0x4b0792==='priority'?sequelize[_0x9030('0x17')](sequelize['col']('priority'),_0x9030('0x18')):_0x4b0792,_0x9030('0x1b')];}});}return _0x1e5988;};exports[_0x9030('0x1c')]=function(_0x539bb7,_0x36a98a){if(_[_0x9030('0x1d')](_0x539bb7)){return _0x539bb7;}if(_[_0x9030('0x11')](_0x539bb7)){for(var _0xce2840=0x0;_0xce2840<_0x539bb7[_0x9030('0x1e')];_0xce2840+=0x1){_0x539bb7[_0xce2840]=this['omit'](_0x539bb7[_0xce2840],_0x36a98a);}return _0x539bb7;}if(!_[_0x9030('0x1f')](_0x539bb7)){return _0x539bb7;}if(_[_0x9030('0x20')](_0x36a98a)){_0x36a98a=[_0x36a98a];}if(!_[_0x9030('0x11')](_0x36a98a)){return _0x539bb7;}for(var _0x463dda=0x0;_0x463dda<_0x36a98a[_0x9030('0x1e')];_0x463dda+=0x1){_[_0x9030('0x21')](_0x539bb7,_0x36a98a[_0x463dda]);}for(var _0x155b8c in _0x539bb7){if(_0x539bb7[_0x9030('0x22')](_0x155b8c)){_0x539bb7[_0x155b8c]=this[_0x9030('0x1c')](_0x539bb7[_0x155b8c],_0x36a98a);}}return _0x539bb7;};exports[_0x9030('0x23')]=function(_0x3be936){return _0x3be936[_0x9030('0x24')](RegExp(_0x9030('0x25')))?!![]:![];};exports[_0x9030('0x26')]=function(_0x584013){return _0x584013[_0x9030('0x24')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x43a31b){var _0x5b745a=[];_0x43a31b[_0x9030('0x5')](/[ ,]+/)[_0x9030('0x27')](function(_0x1bbad0){_0x1bbad0=_0x1bbad0['replace'](/([^:]")"+/g,'$1');_0x1bbad0='+'+_0x1bbad0+'*';var _0x432a50=/[ `!@#$%^&*()_\-?~]/;if(_0x1bbad0[_0x9030('0x24')](_0x432a50))_0x1bbad0='\x22'+_0x1bbad0+'\x22';_0x5b745a[_0x9030('0x28')](_0x1bbad0);});return _0x5b745a[_0x9030('0x29')]('\x20');};exports[_0x9030('0x2a')]=function(_0x14619b,_0x754e00,_0x12b9b8){var _0x134260={},_0x3400db={};if(_0x754e00[_0x9030('0x2b')][_0x9030('0x2c')]){_0x754e00[_0x9030('0x2b')]['id']=_0x754e00[_0x9030('0x2b')][_0x9030('0x2c')];delete _0x754e00[_0x9030('0x2b')][_0x9030('0x2c')];}_0x134260[_0x9030('0x2d')]=_['map'](_0x14619b,'name');_0x134260[_0x9030('0x2b')]=_[_0x9030('0x3')](_0x754e00['query']);_0x134260['filters']=_[_0x9030('0x2e')](_0x134260[_0x9030('0x2d')],_0x134260[_0x9030('0x2b')]);_0x3400db[_0x9030('0x2f')]=_['intersection'](_0x134260[_0x9030('0x2d')],this['fields'](_0x754e00[_0x9030('0x2b')][_0x9030('0x30')]));_0x3400db['attributes']=_0x3400db[_0x9030('0x2f')][_0x9030('0x1e')]?_0x3400db[_0x9030('0x2f')]:_0x134260['model'];if(!_0x754e00[_0x9030('0x2b')]['hasOwnProperty'](_0x9030('0x31'))){_0x3400db['limit']=this[_0x9030('0x12')](_0x754e00['query'][_0x9030('0x12')]);_0x3400db[_0x9030('0x13')]=this[_0x9030('0x13')](_0x754e00[_0x9030('0x2b')][_0x9030('0x13')]);}_0x3400db[_0x9030('0x32')]=this[_0x9030('0x14')](_0x754e00[_0x9030('0x2b')][_0x9030('0x14')]);_0x3400db['where']=this[_0x9030('0x33')](_[_0x9030('0x34')](_0x754e00[_0x9030('0x2b')],_0x134260['filters']),_0x14619b);if(_0x754e00[_0x9030('0x2b')][_0x9030('0x35')]){var _0x3ebb74=_0x14619b;var _0x1a9ee5=_0x754e00['query'][_0x9030('0x35')];if(typeof _0x1a9ee5===_0x9030('0x36')){_0x3ebb74=_[_0x9030('0x35')](_0x14619b,function(_0x4ba687){return _[_0x9030('0x4')](_0x1a9ee5[_0x9030('0x37')],_0x4ba687[_0x9030('0x38')]);});_0x1a9ee5=_0x1a9ee5[_0x9030('0x39')];}_0x3400db[_0x9030('0x3a')]=_['merge'](_0x3400db[_0x9030('0x3a')],{'$or':_['map'](_0x3ebb74,function(_0x2b596c){if(_0x2b596c[_0x9030('0x8')]!==_0x9030('0x3b')){if(_0x12b9b8){return sequelize[_0x9030('0x3a')](sequelize['fn'](_0x9030('0x3c'),sequelize[_0x9030('0x3d')](_0x2b596c[_0x9030('0x38')])),{'$like':sequelize['fn'](_0x9030('0x3c'),'%'+_0x754e00['query'][_0x9030('0x35')]+'%')});}else{var _0x19d2d3={};_0x19d2d3[_0x2b596c[_0x9030('0x38')]]={'$like':'%'+_0x754e00[_0x9030('0x2b')][_0x9030('0x35')]+'%'};return _0x19d2d3;}}})});}_0x3400db=_[_0x9030('0x3e')]({},_0x3400db,_0x754e00[_0x9030('0x3f')]);return _0x3400db;};