37ac4793f18327669e102d0f1d89613b3ea20f94
[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 _0x6877=['offset','map','indexOf','cast','col','priority','substr','DESC','ASC','isArray','omit','isString','length','unset','hasOwnProperty','match','^[+]?[0-9]*$','getFullTextValue','{EXPR}','forEach','replace','getOptions','query','$id','intersection','attributes','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','lower','options','includeAll','push','include','lodash','sequelize','moment','parse','keys','includes','model','alias','fields','split','filters','isEmpty','forOwn','type','DATE','isPlainObject','$gte','format','$lte','YYYY-MM-DD','subtract','name'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x6877,0xa4));var _0x7687=function(_0x3b5ad9,_0x223867){_0x3b5ad9=_0x3b5ad9-0x0;var _0x611ae9=_0x6877[_0x3b5ad9];return _0x611ae9;};'use strict';var _=require(_0x7687('0x0'));var sequelize=require(_0x7687('0x1'));var moment=require(_0x7687('0x2'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x3bb9ef){var _0x4dab10=['ne'];try{var _0x397a02=JSON[_0x7687('0x3')](_0x3bb9ef);var _0x1ac744=Object[_0x7687('0x4')](_0x397a02)[0x0];return _0x4dab10[_0x7687('0x5')](_0x1ac744);}catch(_0x5d4147){return![];}}function getOperatorValue(_0x3db535){var _0x234f7b=JSON['parse'](_0x3db535);var _0x4cfc34=Object[_0x7687('0x4')](_0x234f7b)[0x0];var _0x14e385=_0x234f7b[_0x4cfc34];return{['$'+_0x4cfc34]:_0x14e385};}function parseIncludeModel(_0x5a88d4){var _0x3e1b86=JSON[_0x7687('0x3')](_0x5a88d4);return{'model':db[_0x3e1b86[_0x7687('0x6')]],'as':_0x3e1b86[_0x7687('0x7')],'attributes':_0x3e1b86[_0x7687('0x8')],'raw':_0x3e1b86['raw']};}exports[_0x7687('0x8')]=function(_0x420fb8){var _0x4d5cb1=null;if(_0x420fb8){_0x4d5cb1=_0x420fb8[_0x7687('0x9')](',');}return _0x4d5cb1;};exports[_0x7687('0xa')]=function(_0x1e0de0,_0x52cd3a){var _0x204920={};if(!_[_0x7687('0xb')](_0x1e0de0)){_[_0x7687('0xc')](_0x1e0de0,function(_0x532e7f,_0x54d4dd){try{if(_0x52cd3a){var _0x26fa2a=_['find'](_0x52cd3a,{'name':_0x54d4dd})||{};if(hasSequelizeOperator(_0x532e7f)){_0x204920[_0x54d4dd]=getOperatorValue(_0x532e7f);}else if(_0x26fa2a[_0x7687('0xd')]===_0x7687('0xe')&&_[_0x7687('0xf')](_0x532e7f)){var _0x40e990=JSON[_0x7687('0x3')](_0x532e7f);var _0x1147bf={'$gte':moment(moment(_0x40e990[_0x7687('0x10')])['format']('YYYY-MM-DD'))['utc']()[_0x7687('0x11')](),'$lte':moment(moment(_0x40e990[_0x7687('0x12')])[_0x7687('0x11')](_0x7687('0x13')))['utc']()[_0x7687('0x14')](0x1,'s')[_0x7687('0x11')]()};_0x204920[_0x54d4dd]=_0x1147bf;}else if(_0x26fa2a[_0x7687('0x15')]==='uniqueid'){_0x204920[_0x54d4dd]=_0x532e7f;}else{_0x204920[_0x54d4dd]=_['isArray'](_0x532e7f)?_0x532e7f:JSON['parse'](_0x532e7f);}}else{_0x204920[_0x54d4dd]=_['isArray'](_0x532e7f)?_0x532e7f:JSON[_0x7687('0x3')](_0x532e7f);}}catch(_0x297d15){_0x204920[_0x54d4dd]=_0x532e7f[_0x7687('0x9')](',');}});}return _0x204920;};exports['limit']=function(_0x5cbc95){_0x5cbc95=parseInt(_0x5cbc95,0xa);if(!_0x5cbc95||_0x5cbc95<0x0){_0x5cbc95=LIMIT_VALUE;}return _0x5cbc95;};exports[_0x7687('0x16')]=function(_0x5c95f5){_0x5c95f5=parseInt(_0x5c95f5,0xa);if(!_0x5c95f5||_0x5c95f5<0x0){_0x5c95f5=0x0;}return _0x5c95f5;};exports['sort']=function(_0x33d8b5){var _0x21df81,_0x58feb0=null;if(_0x33d8b5){_0x21df81=_0x33d8b5[_0x7687('0x9')](',');_0x58feb0=_[_0x7687('0x17')](_0x21df81,function(_0x4b3be9){if(_0x4b3be9[_0x7687('0x18')]('-')===0x0){return[_0x4b3be9==='priority'?sequelize[_0x7687('0x19')](sequelize[_0x7687('0x1a')](_0x7687('0x1b')),'unsigned'):_0x4b3be9[_0x7687('0x1c')](0x1),_0x7687('0x1d')];}else{return[_0x4b3be9===_0x7687('0x1b')?sequelize[_0x7687('0x19')](sequelize[_0x7687('0x1a')](_0x7687('0x1b')),'unsigned'):_0x4b3be9,_0x7687('0x1e')];}});}return _0x58feb0;};exports['omit']=function(_0x46f2c6,_0x2d3e37){if(_['isEmpty'](_0x46f2c6)){return _0x46f2c6;}if(_[_0x7687('0x1f')](_0x46f2c6)){for(var _0x2c7a0f=0x0;_0x2c7a0f<_0x46f2c6['length'];_0x2c7a0f+=0x1){_0x46f2c6[_0x2c7a0f]=this[_0x7687('0x20')](_0x46f2c6[_0x2c7a0f],_0x2d3e37);}return _0x46f2c6;}if(!_['isObject'](_0x46f2c6)){return _0x46f2c6;}if(_[_0x7687('0x21')](_0x2d3e37)){_0x2d3e37=[_0x2d3e37];}if(!_['isArray'](_0x2d3e37)){return _0x46f2c6;}for(var _0x329668=0x0;_0x329668<_0x2d3e37[_0x7687('0x22')];_0x329668+=0x1){_[_0x7687('0x23')](_0x46f2c6,_0x2d3e37[_0x329668]);}for(var _0xe18cfe in _0x46f2c6){if(_0x46f2c6[_0x7687('0x24')](_0xe18cfe)){_0x46f2c6[_0xe18cfe]=this[_0x7687('0x20')](_0x46f2c6[_0xe18cfe],_0x2d3e37);}}return _0x46f2c6;};exports['isNumeric']=function(_0x244719){return _0x244719[_0x7687('0x25')](RegExp(_0x7687('0x26')))?!![]:![];};exports['isEmail']=function(_0x3d0230){return _0x3d0230[_0x7687('0x25')](/^\S+@\S+$/)?!![]:![];};exports[_0x7687('0x27')]=function(_0x5a5f1e,_0x327b5a){var _0x458a48=[];var _0x3c9a52=/[ `!@#$%^&*()_\-?~]/;var _0x3c974c=_0x327b5a?'\x22{EXPR}\x22':_0x7687('0x28');_0x5a5f1e[_0x7687('0x9')](/[ ,]+/)[_0x7687('0x29')](function(_0x1c16c4){_0x1c16c4=_0x1c16c4[_0x7687('0x2a')](/([^:]")"+/g,'$1');_0x1c16c4='+'+_0x1c16c4+'*';var _0x99462e=_0x1c16c4[_0x7687('0x25')](_0x3c9a52);if(_0x99462e){_0x1c16c4='\x22'+_0x1c16c4+'\x22';}_0x458a48['push'](_0x1c16c4);});_0x3c974c=_0x3c974c[_0x7687('0x2a')](_0x7687('0x28'),_0x458a48['join']('\x20'));return _0x3c974c;};exports[_0x7687('0x2b')]=function(_0x599317,_0x46e81c,_0x4b24f9){var _0x114380={},_0x120e64={};if(_0x46e81c['query']['$id']){_0x46e81c[_0x7687('0x2c')]['id']=_0x46e81c['query'][_0x7687('0x2d')];delete _0x46e81c['query'][_0x7687('0x2d')];}_0x114380[_0x7687('0x6')]=_[_0x7687('0x17')](_0x599317,_0x7687('0x15'));_0x114380[_0x7687('0x2c')]=_[_0x7687('0x4')](_0x46e81c['query']);_0x114380[_0x7687('0xa')]=_[_0x7687('0x2e')](_0x114380[_0x7687('0x6')],_0x114380['query']);_0x120e64[_0x7687('0x2f')]=_[_0x7687('0x2e')](_0x114380['model'],this[_0x7687('0x8')](_0x46e81c[_0x7687('0x2c')][_0x7687('0x8')]));_0x120e64['attributes']=_0x120e64['attributes'][_0x7687('0x22')]?_0x120e64[_0x7687('0x2f')]:_0x114380[_0x7687('0x6')];if(!_0x46e81c[_0x7687('0x2c')][_0x7687('0x24')](_0x7687('0x30'))){_0x120e64[_0x7687('0x31')]=this[_0x7687('0x31')](_0x46e81c[_0x7687('0x2c')][_0x7687('0x31')]);_0x120e64[_0x7687('0x16')]=this[_0x7687('0x16')](_0x46e81c[_0x7687('0x2c')]['offset']);}_0x120e64[_0x7687('0x32')]=this[_0x7687('0x33')](_0x46e81c[_0x7687('0x2c')][_0x7687('0x33')]);_0x120e64[_0x7687('0x34')]=this[_0x7687('0xa')](_[_0x7687('0x35')](_0x46e81c[_0x7687('0x2c')],_0x114380[_0x7687('0xa')]),_0x599317);if(_0x46e81c[_0x7687('0x2c')][_0x7687('0x36')]){var _0x186ec8=_0x599317;var _0x5531d9=_0x46e81c[_0x7687('0x2c')][_0x7687('0x36')];if(typeof _0x5531d9==='object'){_0x186ec8=_[_0x7687('0x36')](_0x599317,function(_0x972fc9){return _[_0x7687('0x5')](_0x5531d9['columns'],_0x972fc9[_0x7687('0x15')]);});_0x5531d9=_0x5531d9['value'];}_0x120e64[_0x7687('0x34')]=_[_0x7687('0x37')](_0x120e64['where'],{'$or':_[_0x7687('0x17')](_0x186ec8,function(_0x1e8774){if(_0x1e8774[_0x7687('0xd')]!==_0x7687('0x38')){if(_0x4b24f9){return sequelize['where'](sequelize['fn'](_0x7687('0x39'),sequelize[_0x7687('0x1a')](_0x1e8774['name'])),{'$like':sequelize['fn'](_0x7687('0x39'),'%'+_0x46e81c['query'][_0x7687('0x36')]+'%')});}else{var _0x372be7={};_0x372be7[_0x1e8774[_0x7687('0x15')]]={'$like':'%'+_0x46e81c[_0x7687('0x2c')][_0x7687('0x36')]+'%'};return _0x372be7;}}})});}_0x120e64=_[_0x7687('0x37')]({},_0x120e64,_0x46e81c[_0x7687('0x3a')]);return _0x120e64;};exports['include']=function(_0x2cb57f){var _0x452fe6=[];if(_0x2cb57f[_0x7687('0x3b')]){_0x452fe6[_0x7687('0x3c')]({'all':!![]});}else if(_0x2cb57f[_0x7687('0x3d')]){if(Array[_0x7687('0x1f')](_0x2cb57f[_0x7687('0x3d')])){_0x452fe6=Object[_0x7687('0x4')](_0x2cb57f[_0x7687('0x3d')])['map'](function(_0x1787c5){return parseIncludeModel(_0x2cb57f[_0x7687('0x3d')][_0x1787c5]);});}else{var _0x4c73a8=parseIncludeModel(_0x2cb57f[_0x7687('0x3d')]);_0x452fe6[_0x7687('0x3c')](_0x4c73a8);}}return _0x452fe6;};