d0d5bc646a63bd6b3adb84099ac641a6967e0779
[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 _0xb48e=['lower','include','includeAll','push','escapeLIKESpecialChars','sequelize','moment','parse','keys','includes','model','fields','raw','filters','isEmpty','forOwn','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','name','uniqueid','isArray','split','limit','sort','indexOf','priority','cast','col','unsigned','substr','omit','length','isObject','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','{EXPR}','replace','trim','forEach','join','getOptions','query','$id','map','intersection','attributes','nolimit','offset','order','where','pick','filter','object','columns','value','merge','VIRTUAL'];(function(_0x2d5a3e,_0x1a5d68){var _0x56843b=function(_0x1279cb){while(--_0x1279cb){_0x2d5a3e['push'](_0x2d5a3e['shift']());}};_0x56843b(++_0x1a5d68);}(_0xb48e,0x87));var _0xeb48=function(_0x56020e,_0x20e5a5){_0x56020e=_0x56020e-0x0;var _0x307b9d=_0xb48e[_0x56020e];return _0x307b9d;};'use strict';var _=require('lodash');var sequelize=require(_0xeb48('0x0'));var moment=require(_0xeb48('0x1'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x2224c3){var _0x787b2b=['ne'];try{var _0x32008d=JSON[_0xeb48('0x2')](_0x2224c3);var _0x479cf4=Object[_0xeb48('0x3')](_0x32008d)[0x0];return _0x787b2b[_0xeb48('0x4')](_0x479cf4);}catch(_0xdebdc4){return![];}}function getOperatorValue(_0x5a44eb){var _0xec92ad=JSON[_0xeb48('0x2')](_0x5a44eb);var _0xa07f13=Object[_0xeb48('0x3')](_0xec92ad)[0x0];var _0x1179b3=_0xec92ad[_0xa07f13];return{['$'+_0xa07f13]:_0x1179b3};}function parseIncludeModel(_0x25973e){var _0x9b2abc=JSON[_0xeb48('0x2')](_0x25973e);return{'model':db[_0x9b2abc[_0xeb48('0x5')]],'as':_0x9b2abc['alias'],'attributes':_0x9b2abc[_0xeb48('0x6')],'raw':_0x9b2abc[_0xeb48('0x7')]};}exports[_0xeb48('0x6')]=function(_0x957e91){var _0xf01075=null;if(_0x957e91){_0xf01075=_0x957e91['split'](',');}return _0xf01075;};exports[_0xeb48('0x8')]=function(_0x50e721,_0xe8fa05){var _0x1c3d12={};if(!_[_0xeb48('0x9')](_0x50e721)){_[_0xeb48('0xa')](_0x50e721,function(_0x3b95e5,_0x337b5c){try{if(_0xe8fa05){var _0x41fa1d=_['find'](_0xe8fa05,{'name':_0x337b5c})||{};if(hasSequelizeOperator(_0x3b95e5)){_0x1c3d12[_0x337b5c]=getOperatorValue(_0x3b95e5);}else if(_0x41fa1d[_0xeb48('0xb')]===_0xeb48('0xc')&&_[_0xeb48('0xd')](_0x3b95e5)){var _0x2ca6c3=JSON['parse'](_0x3b95e5);var _0x1b7f13={'$gte':moment(moment(_0x2ca6c3[_0xeb48('0xe')])[_0xeb48('0xf')](_0xeb48('0x10')))['utc']()[_0xeb48('0xf')](),'$lte':moment(moment(_0x2ca6c3['$lte'])[_0xeb48('0xf')](_0xeb48('0x10')))['utc']()['subtract'](0x1,'s')[_0xeb48('0xf')]()};_0x1c3d12[_0x337b5c]=_0x1b7f13;}else if(_0x41fa1d[_0xeb48('0x11')]===_0xeb48('0x12')){_0x1c3d12[_0x337b5c]=_0x3b95e5;}else{_0x1c3d12[_0x337b5c]=_[_0xeb48('0x13')](_0x3b95e5)?_0x3b95e5:JSON[_0xeb48('0x2')](_0x3b95e5);}}else{_0x1c3d12[_0x337b5c]=_[_0xeb48('0x13')](_0x3b95e5)?_0x3b95e5:JSON[_0xeb48('0x2')](_0x3b95e5);}}catch(_0x53cd55){_0x1c3d12[_0x337b5c]=_0x3b95e5[_0xeb48('0x14')](',');}});}return _0x1c3d12;};exports[_0xeb48('0x15')]=function(_0x239c56){_0x239c56=parseInt(_0x239c56,0xa);if(!_0x239c56||_0x239c56<0x0){_0x239c56=LIMIT_VALUE;}return _0x239c56;};exports['offset']=function(_0x11bc10){_0x11bc10=parseInt(_0x11bc10,0xa);if(!_0x11bc10||_0x11bc10<0x0){_0x11bc10=0x0;}return _0x11bc10;};exports[_0xeb48('0x16')]=function(_0x58aec8){var _0xf7a39,_0x1f1ebb=null;if(_0x58aec8){_0xf7a39=_0x58aec8[_0xeb48('0x14')](',');_0x1f1ebb=_['map'](_0xf7a39,function(_0x55ec24){if(_0x55ec24[_0xeb48('0x17')]('-')===0x0){return[_0x55ec24===_0xeb48('0x18')?sequelize[_0xeb48('0x19')](sequelize[_0xeb48('0x1a')](_0xeb48('0x18')),_0xeb48('0x1b')):_0x55ec24[_0xeb48('0x1c')](0x1),'DESC'];}else{return[_0x55ec24==='priority'?sequelize['cast'](sequelize[_0xeb48('0x1a')]('priority'),'unsigned'):_0x55ec24,'ASC'];}});}return _0x1f1ebb;};exports[_0xeb48('0x1d')]=function(_0x1dbba6,_0x4f0406){if(_['isEmpty'](_0x1dbba6)){return _0x1dbba6;}if(_['isArray'](_0x1dbba6)){for(var _0x4992b6=0x0;_0x4992b6<_0x1dbba6[_0xeb48('0x1e')];_0x4992b6+=0x1){_0x1dbba6[_0x4992b6]=this[_0xeb48('0x1d')](_0x1dbba6[_0x4992b6],_0x4f0406);}return _0x1dbba6;}if(!_[_0xeb48('0x1f')](_0x1dbba6)){return _0x1dbba6;}if(_['isString'](_0x4f0406)){_0x4f0406=[_0x4f0406];}if(!_[_0xeb48('0x13')](_0x4f0406)){return _0x1dbba6;}for(var _0x4e7f41=0x0;_0x4e7f41<_0x4f0406[_0xeb48('0x1e')];_0x4e7f41+=0x1){_[_0xeb48('0x20')](_0x1dbba6,_0x4f0406[_0x4e7f41]);}for(var _0x18b211 in _0x1dbba6){if(_0x1dbba6[_0xeb48('0x21')](_0x18b211)){_0x1dbba6[_0x18b211]=this['omit'](_0x1dbba6[_0x18b211],_0x4f0406);}}return _0x1dbba6;};exports[_0xeb48('0x22')]=function(_0x8cee94){return _0x8cee94[_0xeb48('0x23')](RegExp(_0xeb48('0x24')))?!![]:![];};exports[_0xeb48('0x25')]=function(_0x29c3b2){return _0x29c3b2[_0xeb48('0x23')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x268776,_0x5e46e4){var _0x344f45=[];var _0x1bc3c1=/([^:]")"+/g;var _0x51ce9b=/[*<>~@-]/g;var _0x233a3a=/[ `!@#$%^&*()_\-?~<>]/;var _0x4355ca=/[ ,]+/;var _0x5b70db=_0x5e46e4?'\x22{EXPR}\x22':_0xeb48('0x26');if(_0x5e46e4){_0x268776=_0x268776[_0xeb48('0x27')](_0x51ce9b,'\x20')[_0xeb48('0x28')]();}_0x268776['split'](_0x4355ca)[_0xeb48('0x29')](function(_0x2bbf83){_0x2bbf83=_0x2bbf83['replace'](_0x1bc3c1,'$1');_0x2bbf83='+'+_0x2bbf83+'*';var _0x54894d=_0x2bbf83[_0xeb48('0x23')](_0x233a3a);if(_0x54894d){_0x2bbf83='\x22'+_0x2bbf83+'\x22';}_0x344f45['push'](_0x2bbf83);});_0x5b70db=_0x5b70db[_0xeb48('0x27')](_0xeb48('0x26'),_0x344f45[_0xeb48('0x2a')]('\x20'));return _0x5b70db;};exports[_0xeb48('0x2b')]=function(_0x1bb189,_0x546107,_0xf42a80){var _0x3a23b4={},_0x4c11e8={};if(_0x546107[_0xeb48('0x2c')][_0xeb48('0x2d')]){_0x546107['query']['id']=_0x546107[_0xeb48('0x2c')]['$id'];delete _0x546107['query'][_0xeb48('0x2d')];}_0x3a23b4[_0xeb48('0x5')]=_[_0xeb48('0x2e')](_0x1bb189,_0xeb48('0x11'));_0x3a23b4[_0xeb48('0x2c')]=_[_0xeb48('0x3')](_0x546107['query']);_0x3a23b4[_0xeb48('0x8')]=_[_0xeb48('0x2f')](_0x3a23b4[_0xeb48('0x5')],_0x3a23b4[_0xeb48('0x2c')]);_0x4c11e8[_0xeb48('0x30')]=_[_0xeb48('0x2f')](_0x3a23b4[_0xeb48('0x5')],this[_0xeb48('0x6')](_0x546107['query'][_0xeb48('0x6')]));_0x4c11e8[_0xeb48('0x30')]=_0x4c11e8[_0xeb48('0x30')][_0xeb48('0x1e')]?_0x4c11e8[_0xeb48('0x30')]:_0x3a23b4['model'];if(!_0x546107['query'][_0xeb48('0x21')](_0xeb48('0x31'))){_0x4c11e8[_0xeb48('0x15')]=this[_0xeb48('0x15')](_0x546107['query'][_0xeb48('0x15')]);_0x4c11e8[_0xeb48('0x32')]=this[_0xeb48('0x32')](_0x546107['query'][_0xeb48('0x32')]);}_0x4c11e8[_0xeb48('0x33')]=this[_0xeb48('0x16')](_0x546107['query'][_0xeb48('0x16')]);_0x4c11e8[_0xeb48('0x34')]=this[_0xeb48('0x8')](_[_0xeb48('0x35')](_0x546107['query'],_0x3a23b4[_0xeb48('0x8')]),_0x1bb189);if(_0x546107['query']['filter']){var _0x54ab89=_0x1bb189;var _0x2074e1=_0x546107[_0xeb48('0x2c')][_0xeb48('0x36')];if(typeof _0x2074e1===_0xeb48('0x37')){_0x54ab89=_['filter'](_0x1bb189,function(_0x326260){return _[_0xeb48('0x4')](_0x2074e1[_0xeb48('0x38')],_0x326260[_0xeb48('0x11')]);});_0x2074e1=_0x2074e1[_0xeb48('0x39')];}_0x4c11e8[_0xeb48('0x34')]=_[_0xeb48('0x3a')](_0x4c11e8[_0xeb48('0x34')],{'$or':_[_0xeb48('0x2e')](_0x54ab89,function(_0x10c5a6){if(_0x10c5a6['type']!==_0xeb48('0x3b')){if(_0xf42a80){return sequelize[_0xeb48('0x34')](sequelize['fn'](_0xeb48('0x3c'),sequelize[_0xeb48('0x1a')](_0x10c5a6[_0xeb48('0x11')])),{'$like':sequelize['fn'](_0xeb48('0x3c'),'%'+_0x546107[_0xeb48('0x2c')][_0xeb48('0x36')]+'%')});}else{var _0x15a095={};_0x15a095[_0x10c5a6['name']]={'$like':'%'+_0x546107[_0xeb48('0x2c')][_0xeb48('0x36')]+'%'};return _0x15a095;}}})});}_0x4c11e8=_[_0xeb48('0x3a')]({},_0x4c11e8,_0x546107['options']);return _0x4c11e8;};exports[_0xeb48('0x3d')]=function(_0x598f78){var _0x4b2c5e=[];if(_0x598f78[_0xeb48('0x3e')]){_0x4b2c5e['push']({'all':!![]});}else if(_0x598f78['include']){if(Array[_0xeb48('0x13')](_0x598f78[_0xeb48('0x3d')])){_0x4b2c5e=Object[_0xeb48('0x3')](_0x598f78[_0xeb48('0x3d')])[_0xeb48('0x2e')](function(_0x57f59b){return parseIncludeModel(_0x598f78['include'][_0x57f59b]);});}else{var _0x55b350=parseIncludeModel(_0x598f78[_0xeb48('0x3d')]);_0x4b2c5e[_0xeb48('0x3f')](_0x55b350);}}return _0x4b2c5e;};exports[_0xeb48('0x40')]=function(_0x2136f2){return _0x2136f2[_0xeb48('0x27')](/[%_^-]/g,function(_0x1ccf56){return'\x5c'+_0x1ccf56;});};