2cd589f8bc9fc2bd9cf91be830773c9da41f08d4
[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 _0x228c=['join','query','$id','filters','intersection','attributes','nolimit','sort','filter','object','columns','value','where','merge','lower','options','include','includeAll','sequelize','moment','keys','includes','parse','model','alias','raw','fields','forOwn','find','type','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','subtract','name','uniqueid','isArray','split','limit','offset','map','priority','cast','unsigned','DESC','col','ASC','omit','isEmpty','isString','length','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','\x22{EXPR}\x22','{EXPR}','forEach','push'];(function(_0xd0bd0a,_0x365063){var _0x3984f5=function(_0xcacbeb){while(--_0xcacbeb){_0xd0bd0a['push'](_0xd0bd0a['shift']());}};_0x3984f5(++_0x365063);}(_0x228c,0x157));var _0xc228=function(_0x338f8f,_0xd22e48){_0x338f8f=_0x338f8f-0x0;var _0x1ae335=_0x228c[_0x338f8f];return _0x1ae335;};'use strict';var _=require('lodash');var sequelize=require(_0xc228('0x0'));var moment=require(_0xc228('0x1'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1443c9){var _0x463618=['ne'];try{var _0x4200ab=JSON['parse'](_0x1443c9);var _0x3667aa=Object[_0xc228('0x2')](_0x4200ab)[0x0];return _0x463618[_0xc228('0x3')](_0x3667aa);}catch(_0x4009a4){return![];}}function getOperatorValue(_0x191dcd){var _0x23455f=JSON[_0xc228('0x4')](_0x191dcd);var _0xa6f387=Object[_0xc228('0x2')](_0x23455f)[0x0];var _0x198b9c=_0x23455f[_0xa6f387];return{['$'+_0xa6f387]:_0x198b9c};}function parseIncludeModel(_0x1d07f2){var _0x5ee2c3=JSON[_0xc228('0x4')](_0x1d07f2);return{'model':db[_0x5ee2c3[_0xc228('0x5')]],'as':_0x5ee2c3[_0xc228('0x6')],'attributes':_0x5ee2c3['fields'],'raw':_0x5ee2c3[_0xc228('0x7')]};}exports[_0xc228('0x8')]=function(_0x140ccb){var _0x545c27=null;if(_0x140ccb){_0x545c27=_0x140ccb['split'](',');}return _0x545c27;};exports['filters']=function(_0x49faf5,_0x322fb7){var _0x55b1b3={};if(!_['isEmpty'](_0x49faf5)){_[_0xc228('0x9')](_0x49faf5,function(_0x1d4e07,_0x262509){try{if(_0x322fb7){var _0xee46c0=_[_0xc228('0xa')](_0x322fb7,{'name':_0x262509})||{};if(hasSequelizeOperator(_0x1d4e07)){_0x55b1b3[_0x262509]=getOperatorValue(_0x1d4e07);}else if(_0xee46c0[_0xc228('0xb')]==='DATE'&&_[_0xc228('0xc')](_0x1d4e07)){var _0x392e30=JSON[_0xc228('0x4')](_0x1d4e07);var _0x353e8d={'$gte':moment(moment(_0x392e30[_0xc228('0xd')])[_0xc228('0xe')](_0xc228('0xf')))[_0xc228('0x10')]()[_0xc228('0xe')](),'$lte':moment(moment(_0x392e30[_0xc228('0x11')])[_0xc228('0xe')](_0xc228('0xf')))['utc']()[_0xc228('0x12')](0x1,'s')[_0xc228('0xe')]()};_0x55b1b3[_0x262509]=_0x353e8d;}else if(_0xee46c0[_0xc228('0x13')]===_0xc228('0x14')){_0x55b1b3[_0x262509]=_0x1d4e07;}else{_0x55b1b3[_0x262509]=_['isArray'](_0x1d4e07)?_0x1d4e07:JSON[_0xc228('0x4')](_0x1d4e07);}}else{_0x55b1b3[_0x262509]=_[_0xc228('0x15')](_0x1d4e07)?_0x1d4e07:JSON[_0xc228('0x4')](_0x1d4e07);}}catch(_0x453a87){_0x55b1b3[_0x262509]=_0x1d4e07[_0xc228('0x16')](',');}});}return _0x55b1b3;};exports[_0xc228('0x17')]=function(_0x2c5587){_0x2c5587=parseInt(_0x2c5587,0xa);if(!_0x2c5587||_0x2c5587<0x0){_0x2c5587=LIMIT_VALUE;}return _0x2c5587;};exports[_0xc228('0x18')]=function(_0x78d3f0){_0x78d3f0=parseInt(_0x78d3f0,0xa);if(!_0x78d3f0||_0x78d3f0<0x0){_0x78d3f0=0x0;}return _0x78d3f0;};exports['sort']=function(_0x51552d){var _0x4d9d9a,_0x2aa0c3=null;if(_0x51552d){_0x4d9d9a=_0x51552d['split'](',');_0x2aa0c3=_[_0xc228('0x19')](_0x4d9d9a,function(_0x3480af){if(_0x3480af['indexOf']('-')===0x0){return[_0x3480af===_0xc228('0x1a')?sequelize[_0xc228('0x1b')](sequelize['col']('priority'),_0xc228('0x1c')):_0x3480af['substr'](0x1),_0xc228('0x1d')];}else{return[_0x3480af===_0xc228('0x1a')?sequelize[_0xc228('0x1b')](sequelize[_0xc228('0x1e')](_0xc228('0x1a')),_0xc228('0x1c')):_0x3480af,_0xc228('0x1f')];}});}return _0x2aa0c3;};exports[_0xc228('0x20')]=function(_0x2dd73c,_0x1ea162){if(_[_0xc228('0x21')](_0x2dd73c)){return _0x2dd73c;}if(_[_0xc228('0x15')](_0x2dd73c)){for(var _0x153e49=0x0;_0x153e49<_0x2dd73c['length'];_0x153e49+=0x1){_0x2dd73c[_0x153e49]=this[_0xc228('0x20')](_0x2dd73c[_0x153e49],_0x1ea162);}return _0x2dd73c;}if(!_['isObject'](_0x2dd73c)){return _0x2dd73c;}if(_[_0xc228('0x22')](_0x1ea162)){_0x1ea162=[_0x1ea162];}if(!_[_0xc228('0x15')](_0x1ea162)){return _0x2dd73c;}for(var _0x29b642=0x0;_0x29b642<_0x1ea162[_0xc228('0x23')];_0x29b642+=0x1){_[_0xc228('0x24')](_0x2dd73c,_0x1ea162[_0x29b642]);}for(var _0x39440a in _0x2dd73c){if(_0x2dd73c[_0xc228('0x25')](_0x39440a)){_0x2dd73c[_0x39440a]=this[_0xc228('0x20')](_0x2dd73c[_0x39440a],_0x1ea162);}}return _0x2dd73c;};exports[_0xc228('0x26')]=function(_0x5b396f){return _0x5b396f[_0xc228('0x27')](RegExp(_0xc228('0x28')))?!![]:![];};exports[_0xc228('0x29')]=function(_0x3b5865){return _0x3b5865[_0xc228('0x27')](/^\S+@\S+$/)?!![]:![];};exports[_0xc228('0x2a')]=function(_0x492968,_0x229833){var _0x2d4393=[];var _0x537ce3=/[ `!@#$%^&*()_\-?~]/;var _0x1ffc1d=_0x229833?_0xc228('0x2b'):_0xc228('0x2c');_0x492968['split'](/[ ,]+/)[_0xc228('0x2d')](function(_0xad4fcc){_0xad4fcc=_0xad4fcc['replace'](/([^:]")"+/g,'$1');_0xad4fcc='+'+_0xad4fcc+'*';var _0x4bb3d6=_0xad4fcc[_0xc228('0x27')](_0x537ce3);if(_0x4bb3d6){_0xad4fcc='\x22'+_0xad4fcc+'\x22';}_0x2d4393[_0xc228('0x2e')](_0xad4fcc);});_0x1ffc1d=_0x1ffc1d['replace'](_0xc228('0x2c'),_0x2d4393[_0xc228('0x2f')]('\x20'));return _0x1ffc1d;};exports['getOptions']=function(_0x3d0c44,_0x5958b6,_0x2acfa3){var _0x3c4e76={},_0x423608={};if(_0x5958b6['query']['$id']){_0x5958b6[_0xc228('0x30')]['id']=_0x5958b6[_0xc228('0x30')][_0xc228('0x31')];delete _0x5958b6[_0xc228('0x30')][_0xc228('0x31')];}_0x3c4e76[_0xc228('0x5')]=_[_0xc228('0x19')](_0x3d0c44,_0xc228('0x13'));_0x3c4e76['query']=_[_0xc228('0x2')](_0x5958b6['query']);_0x3c4e76[_0xc228('0x32')]=_[_0xc228('0x33')](_0x3c4e76[_0xc228('0x5')],_0x3c4e76[_0xc228('0x30')]);_0x423608['attributes']=_[_0xc228('0x33')](_0x3c4e76[_0xc228('0x5')],this[_0xc228('0x8')](_0x5958b6[_0xc228('0x30')][_0xc228('0x8')]));_0x423608[_0xc228('0x34')]=_0x423608[_0xc228('0x34')][_0xc228('0x23')]?_0x423608[_0xc228('0x34')]:_0x3c4e76['model'];if(!_0x5958b6[_0xc228('0x30')][_0xc228('0x25')](_0xc228('0x35'))){_0x423608['limit']=this[_0xc228('0x17')](_0x5958b6[_0xc228('0x30')][_0xc228('0x17')]);_0x423608[_0xc228('0x18')]=this[_0xc228('0x18')](_0x5958b6[_0xc228('0x30')][_0xc228('0x18')]);}_0x423608['order']=this['sort'](_0x5958b6[_0xc228('0x30')][_0xc228('0x36')]);_0x423608['where']=this[_0xc228('0x32')](_['pick'](_0x5958b6[_0xc228('0x30')],_0x3c4e76['filters']),_0x3d0c44);if(_0x5958b6['query']['filter']){var _0x13188c=_0x3d0c44;var _0xc20717=_0x5958b6['query'][_0xc228('0x37')];if(typeof _0xc20717===_0xc228('0x38')){_0x13188c=_[_0xc228('0x37')](_0x3d0c44,function(_0x32884d){return _['includes'](_0xc20717[_0xc228('0x39')],_0x32884d[_0xc228('0x13')]);});_0xc20717=_0xc20717[_0xc228('0x3a')];}_0x423608[_0xc228('0x3b')]=_[_0xc228('0x3c')](_0x423608[_0xc228('0x3b')],{'$or':_[_0xc228('0x19')](_0x13188c,function(_0xceb44f){if(_0xceb44f['type']!=='VIRTUAL'){if(_0x2acfa3){return sequelize[_0xc228('0x3b')](sequelize['fn'](_0xc228('0x3d'),sequelize['col'](_0xceb44f[_0xc228('0x13')])),{'$like':sequelize['fn'](_0xc228('0x3d'),'%'+_0x5958b6[_0xc228('0x30')][_0xc228('0x37')]+'%')});}else{var _0xe2110={};_0xe2110[_0xceb44f[_0xc228('0x13')]]={'$like':'%'+_0x5958b6['query']['filter']+'%'};return _0xe2110;}}})});}_0x423608=_[_0xc228('0x3c')]({},_0x423608,_0x5958b6[_0xc228('0x3e')]);return _0x423608;};exports[_0xc228('0x3f')]=function(_0x209220){var _0x2c3955=[];if(_0x209220[_0xc228('0x40')]){_0x2c3955[_0xc228('0x2e')]({'all':!![]});}else if(_0x209220[_0xc228('0x3f')]){if(Array[_0xc228('0x15')](_0x209220[_0xc228('0x3f')])){_0x2c3955=Object['keys'](_0x209220[_0xc228('0x3f')])[_0xc228('0x19')](function(_0x65178e){return parseIncludeModel(_0x209220[_0xc228('0x3f')][_0x65178e]);});}else{var _0x1f2e72=parseIncludeModel(_0x209220[_0xc228('0x3f')]);_0x2c3955[_0xc228('0x2e')](_0x1f2e72);}}return _0x2c3955;};