8c5080b91196298f5d69f497c6567f56978acace
[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 _0x9d2f=['pick','filter','object','columns','value','lower','merge','options','include','includeAll','lodash','sequelize','moment','../../mysqldb','parse','keys','includes','model','alias','raw','fields','split','filters','isEmpty','find','type','DATE','$gte','format','YYYY-MM-DD','utc','subtract','name','uniqueid','isArray','limit','offset','sort','map','indexOf','priority','col','unsigned','substr','cast','length','omit','isObject','hasOwnProperty','isNumeric','match','isEmail','getFullTextValue','replace','push','{EXPR}','join','getOptions','query','$id','attributes','nolimit','order','where'];(function(_0x4634f8,_0x1ac5ec){var _0x2374f1=function(_0x7dcc77){while(--_0x7dcc77){_0x4634f8['push'](_0x4634f8['shift']());}};_0x2374f1(++_0x1ac5ec);}(_0x9d2f,0x14a));var _0xf9d2=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x9d2f[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0xf9d2('0x0'));var sequelize=require(_0xf9d2('0x1'));var moment=require(_0xf9d2('0x2'));var db=require(_0xf9d2('0x3'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x596972){var _0x2d398a=['ne'];try{var _0xaba039=JSON[_0xf9d2('0x4')](_0x596972);var _0x46b468=Object[_0xf9d2('0x5')](_0xaba039)[0x0];return _0x2d398a[_0xf9d2('0x6')](_0x46b468);}catch(_0x530fd9){return![];}}function getOperatorValue(_0x3761dc){var _0xa28f8d=JSON[_0xf9d2('0x4')](_0x3761dc);var _0x4044ea=Object[_0xf9d2('0x5')](_0xa28f8d)[0x0];var _0x1528eb=_0xa28f8d[_0x4044ea];return{['$'+_0x4044ea]:_0x1528eb};}function parseIncludeModel(_0xadb543){var _0x398805=JSON[_0xf9d2('0x4')](_0xadb543);return{'model':db[_0x398805[_0xf9d2('0x7')]],'as':_0x398805[_0xf9d2('0x8')],'attributes':_0x398805['fields'],'raw':_0x398805[_0xf9d2('0x9')]};}exports[_0xf9d2('0xa')]=function(_0x1a2678){var _0x15271b=null;if(_0x1a2678){_0x15271b=_0x1a2678[_0xf9d2('0xb')](',');}return _0x15271b;};exports[_0xf9d2('0xc')]=function(_0x472dfd,_0x439ccd){var _0x59c67a={};if(!_[_0xf9d2('0xd')](_0x472dfd)){_['forOwn'](_0x472dfd,function(_0x2a68b5,_0x1ee67d){try{if(_0x439ccd){var _0x588ce4=_[_0xf9d2('0xe')](_0x439ccd,{'name':_0x1ee67d})||{};if(hasSequelizeOperator(_0x2a68b5)){_0x59c67a[_0x1ee67d]=getOperatorValue(_0x2a68b5);}else if(_0x588ce4[_0xf9d2('0xf')]===_0xf9d2('0x10')&&_['isPlainObject'](_0x2a68b5)){var _0x5daf4a=JSON[_0xf9d2('0x4')](_0x2a68b5);var _0x4c3e9e={'$gte':moment(moment(_0x5daf4a[_0xf9d2('0x11')])[_0xf9d2('0x12')]('YYYY-MM-DD'))['utc']()[_0xf9d2('0x12')](),'$lte':moment(moment(_0x5daf4a['$lte'])[_0xf9d2('0x12')](_0xf9d2('0x13')))[_0xf9d2('0x14')]()[_0xf9d2('0x15')](0x1,'s')['format']()};_0x59c67a[_0x1ee67d]=_0x4c3e9e;}else if(_0x588ce4[_0xf9d2('0x16')]===_0xf9d2('0x17')){_0x59c67a[_0x1ee67d]=_0x2a68b5;}else{_0x59c67a[_0x1ee67d]=_[_0xf9d2('0x18')](_0x2a68b5)?_0x2a68b5:JSON[_0xf9d2('0x4')](_0x2a68b5);}}else{_0x59c67a[_0x1ee67d]=_[_0xf9d2('0x18')](_0x2a68b5)?_0x2a68b5:JSON[_0xf9d2('0x4')](_0x2a68b5);}}catch(_0x5a3c73){_0x59c67a[_0x1ee67d]=_0x2a68b5['split'](',');}});}return _0x59c67a;};exports[_0xf9d2('0x19')]=function(_0x4516b6){_0x4516b6=parseInt(_0x4516b6,0xa);if(!_0x4516b6||_0x4516b6<0x0){_0x4516b6=LIMIT_VALUE;}return _0x4516b6;};exports[_0xf9d2('0x1a')]=function(_0x5e3a58){_0x5e3a58=parseInt(_0x5e3a58,0xa);if(!_0x5e3a58||_0x5e3a58<0x0){_0x5e3a58=0x0;}return _0x5e3a58;};exports[_0xf9d2('0x1b')]=function(_0x2e2e5c){var _0x1ab6c9,_0x3ec2d0=null;if(_0x2e2e5c){_0x1ab6c9=_0x2e2e5c['split'](',');_0x3ec2d0=_[_0xf9d2('0x1c')](_0x1ab6c9,function(_0x373248){if(_0x373248[_0xf9d2('0x1d')]('-')===0x0){return[_0x373248===_0xf9d2('0x1e')?sequelize['cast'](sequelize[_0xf9d2('0x1f')](_0xf9d2('0x1e')),_0xf9d2('0x20')):_0x373248[_0xf9d2('0x21')](0x1),'DESC'];}else{return[_0x373248===_0xf9d2('0x1e')?sequelize[_0xf9d2('0x22')](sequelize[_0xf9d2('0x1f')](_0xf9d2('0x1e')),_0xf9d2('0x20')):_0x373248,'ASC'];}});}return _0x3ec2d0;};exports['omit']=function(_0x46aa5c,_0x26baef){if(_[_0xf9d2('0xd')](_0x46aa5c)){return _0x46aa5c;}if(_[_0xf9d2('0x18')](_0x46aa5c)){for(var _0x3de3e9=0x0;_0x3de3e9<_0x46aa5c[_0xf9d2('0x23')];_0x3de3e9+=0x1){_0x46aa5c[_0x3de3e9]=this[_0xf9d2('0x24')](_0x46aa5c[_0x3de3e9],_0x26baef);}return _0x46aa5c;}if(!_[_0xf9d2('0x25')](_0x46aa5c)){return _0x46aa5c;}if(_['isString'](_0x26baef)){_0x26baef=[_0x26baef];}if(!_['isArray'](_0x26baef)){return _0x46aa5c;}for(var _0x3cbde4=0x0;_0x3cbde4<_0x26baef[_0xf9d2('0x23')];_0x3cbde4+=0x1){_['unset'](_0x46aa5c,_0x26baef[_0x3cbde4]);}for(var _0x1f170c in _0x46aa5c){if(_0x46aa5c[_0xf9d2('0x26')](_0x1f170c)){_0x46aa5c[_0x1f170c]=this[_0xf9d2('0x24')](_0x46aa5c[_0x1f170c],_0x26baef);}}return _0x46aa5c;};exports[_0xf9d2('0x27')]=function(_0x2238b2){return _0x2238b2[_0xf9d2('0x28')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xf9d2('0x29')]=function(_0x138c94){return _0x138c94[_0xf9d2('0x28')](/^\S+@\S+$/)?!![]:![];};exports[_0xf9d2('0x2a')]=function(_0x21fc98,_0x575072){var _0x3852e8=[];var _0x2aecb9=/[ `!@#$%^&*()_\-?~]/;var _0x275c2a=_0x575072?'\x22{EXPR}\x22':'{EXPR}';_0x21fc98[_0xf9d2('0xb')](/[ ,]+/)['forEach'](function(_0x4f5e14){_0x4f5e14=_0x4f5e14[_0xf9d2('0x2b')](/([^:]")"+/g,'$1');_0x4f5e14='+'+_0x4f5e14+'*';var _0x53d9cc=_0x4f5e14[_0xf9d2('0x28')](_0x2aecb9);if(_0x53d9cc){_0x4f5e14='\x22'+_0x4f5e14+'\x22';}_0x3852e8[_0xf9d2('0x2c')](_0x4f5e14);});_0x275c2a=_0x275c2a[_0xf9d2('0x2b')](_0xf9d2('0x2d'),_0x3852e8[_0xf9d2('0x2e')]('\x20'));return _0x275c2a;};exports[_0xf9d2('0x2f')]=function(_0x84b8e4,_0x5b3dfc,_0x47c6ef){var _0x5d06dc={},_0x1a5765={};if(_0x5b3dfc[_0xf9d2('0x30')][_0xf9d2('0x31')]){_0x5b3dfc[_0xf9d2('0x30')]['id']=_0x5b3dfc['query'][_0xf9d2('0x31')];delete _0x5b3dfc[_0xf9d2('0x30')]['$id'];}_0x5d06dc['model']=_[_0xf9d2('0x1c')](_0x84b8e4,_0xf9d2('0x16'));_0x5d06dc['query']=_[_0xf9d2('0x5')](_0x5b3dfc[_0xf9d2('0x30')]);_0x5d06dc[_0xf9d2('0xc')]=_['intersection'](_0x5d06dc['model'],_0x5d06dc[_0xf9d2('0x30')]);_0x1a5765[_0xf9d2('0x32')]=_['intersection'](_0x5d06dc['model'],this['fields'](_0x5b3dfc[_0xf9d2('0x30')][_0xf9d2('0xa')]));_0x1a5765[_0xf9d2('0x32')]=_0x1a5765[_0xf9d2('0x32')]['length']?_0x1a5765[_0xf9d2('0x32')]:_0x5d06dc['model'];if(!_0x5b3dfc[_0xf9d2('0x30')]['hasOwnProperty'](_0xf9d2('0x33'))){_0x1a5765[_0xf9d2('0x19')]=this['limit'](_0x5b3dfc[_0xf9d2('0x30')]['limit']);_0x1a5765[_0xf9d2('0x1a')]=this[_0xf9d2('0x1a')](_0x5b3dfc[_0xf9d2('0x30')][_0xf9d2('0x1a')]);}_0x1a5765[_0xf9d2('0x34')]=this[_0xf9d2('0x1b')](_0x5b3dfc['query'][_0xf9d2('0x1b')]);_0x1a5765[_0xf9d2('0x35')]=this['filters'](_[_0xf9d2('0x36')](_0x5b3dfc[_0xf9d2('0x30')],_0x5d06dc[_0xf9d2('0xc')]),_0x84b8e4);if(_0x5b3dfc['query']['filter']){var _0x59021e=_0x84b8e4;var _0x44b33d=_0x5b3dfc['query'][_0xf9d2('0x37')];if(typeof _0x44b33d===_0xf9d2('0x38')){_0x59021e=_['filter'](_0x84b8e4,function(_0x1f3d3f){return _[_0xf9d2('0x6')](_0x44b33d[_0xf9d2('0x39')],_0x1f3d3f['name']);});_0x44b33d=_0x44b33d[_0xf9d2('0x3a')];}_0x1a5765[_0xf9d2('0x35')]=_['merge'](_0x1a5765[_0xf9d2('0x35')],{'$or':_[_0xf9d2('0x1c')](_0x59021e,function(_0x2dfc12){if(_0x2dfc12[_0xf9d2('0xf')]!=='VIRTUAL'){if(_0x47c6ef){return sequelize[_0xf9d2('0x35')](sequelize['fn'](_0xf9d2('0x3b'),sequelize[_0xf9d2('0x1f')](_0x2dfc12[_0xf9d2('0x16')])),{'$like':sequelize['fn'](_0xf9d2('0x3b'),'%'+_0x5b3dfc[_0xf9d2('0x30')][_0xf9d2('0x37')]+'%')});}else{var _0x1ee304={};_0x1ee304[_0x2dfc12[_0xf9d2('0x16')]]={'$like':'%'+_0x5b3dfc['query'][_0xf9d2('0x37')]+'%'};return _0x1ee304;}}})});}_0x1a5765=_[_0xf9d2('0x3c')]({},_0x1a5765,_0x5b3dfc[_0xf9d2('0x3d')]);return _0x1a5765;};exports[_0xf9d2('0x3e')]=function(_0x2d3598){var _0x2f258c=[];if(_0x2d3598[_0xf9d2('0x3f')]){_0x2f258c[_0xf9d2('0x2c')]({'all':!![]});}else if(_0x2d3598['include']){if(Array[_0xf9d2('0x18')](_0x2d3598[_0xf9d2('0x3e')])){_0x2f258c=Object[_0xf9d2('0x5')](_0x2d3598[_0xf9d2('0x3e')])[_0xf9d2('0x1c')](function(_0x3913f1){return parseIncludeModel(_0x2d3598[_0xf9d2('0x3e')][_0x3913f1]);});}else{var _0x425a7a=parseIncludeModel(_0x2d3598[_0xf9d2('0x3e')]);_0x2f258c[_0xf9d2('0x2c')](_0x425a7a);}}return _0x2f258c;};