Built motion from commit 351e7f9c.|2.6.31
[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 _0xbfb8=['escapeLIKESpecialChars','sequelize','moment','../../mysqldb','keys','includes','parse','alias','fields','raw','filters','isEmpty','forOwn','DATE','isPlainObject','YYYY-MM-DD','utc','format','$lte','subtract','name','isArray','split','limit','sort','map','cast','col','priority','unsigned','DESC','isString','length','unset','hasOwnProperty','isNumeric','match','isEmail','getFullTextValue','\x22{EXPR}\x22','{EXPR}','replace','trim','forEach','push','$id','query','attributes','model','nolimit','offset','order','where','filter','object','columns','value','merge','VIRTUAL','lower','options','includeAll','include'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbfb8,0x7f));var _0x8bfb=function(_0x5234b2,_0x557a6a){_0x5234b2=_0x5234b2-0x0;var _0x2c1f37=_0xbfb8[_0x5234b2];return _0x2c1f37;};'use strict';var _=require('lodash');var sequelize=require(_0x8bfb('0x0'));var moment=require(_0x8bfb('0x1'));var db=require(_0x8bfb('0x2'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x527b52){var _0x21c507=['ne'];try{var _0x490eff=JSON['parse'](_0x527b52);var _0x290c87=Object[_0x8bfb('0x3')](_0x490eff)[0x0];return _0x21c507[_0x8bfb('0x4')](_0x290c87);}catch(_0x5d8fe4){return![];}}function getOperatorValue(_0x1a98ba){var _0x3353ca=JSON[_0x8bfb('0x5')](_0x1a98ba);var _0x4d02b8=Object[_0x8bfb('0x3')](_0x3353ca)[0x0];var _0x17edb6=_0x3353ca[_0x4d02b8];return{['$'+_0x4d02b8]:_0x17edb6};}function parseIncludeModel(_0x45fc18){var _0x4209cf=JSON['parse'](_0x45fc18);return{'model':db[_0x4209cf['model']],'as':_0x4209cf[_0x8bfb('0x6')],'attributes':_0x4209cf[_0x8bfb('0x7')],'raw':_0x4209cf[_0x8bfb('0x8')]};}exports[_0x8bfb('0x7')]=function(_0x36d06f){var _0x12e3b0=null;if(_0x36d06f){_0x12e3b0=_0x36d06f['split'](',');}return _0x12e3b0;};exports[_0x8bfb('0x9')]=function(_0x56a7ab,_0x1f4078){var _0x54d09e={};if(!_[_0x8bfb('0xa')](_0x56a7ab)){_[_0x8bfb('0xb')](_0x56a7ab,function(_0x4d8d60,_0x13a1db){try{if(_0x1f4078){var _0xc8e6b9=_['find'](_0x1f4078,{'name':_0x13a1db})||{};if(hasSequelizeOperator(_0x4d8d60)){_0x54d09e[_0x13a1db]=getOperatorValue(_0x4d8d60);}else if(_0xc8e6b9['type']===_0x8bfb('0xc')&&_[_0x8bfb('0xd')](_0x4d8d60)){var _0x411a4e=JSON[_0x8bfb('0x5')](_0x4d8d60);var _0x757347={'$gte':moment(moment(_0x411a4e['$gte'])['format'](_0x8bfb('0xe')))[_0x8bfb('0xf')]()[_0x8bfb('0x10')](),'$lte':moment(moment(_0x411a4e[_0x8bfb('0x11')])['format'](_0x8bfb('0xe')))['utc']()[_0x8bfb('0x12')](0x1,'s')['format']()};_0x54d09e[_0x13a1db]=_0x757347;}else if(_0xc8e6b9[_0x8bfb('0x13')]==='uniqueid'){_0x54d09e[_0x13a1db]=_0x4d8d60;}else{_0x54d09e[_0x13a1db]=_['isArray'](_0x4d8d60)?_0x4d8d60:JSON[_0x8bfb('0x5')](_0x4d8d60);}}else{_0x54d09e[_0x13a1db]=_[_0x8bfb('0x14')](_0x4d8d60)?_0x4d8d60:JSON['parse'](_0x4d8d60);}}catch(_0x38b70a){_0x54d09e[_0x13a1db]=_0x4d8d60[_0x8bfb('0x15')](',');}});}return _0x54d09e;};exports[_0x8bfb('0x16')]=function(_0x4bda25){_0x4bda25=parseInt(_0x4bda25,0xa);if(!_0x4bda25||_0x4bda25<0x0){_0x4bda25=LIMIT_VALUE;}return _0x4bda25;};exports['offset']=function(_0x374d4e){_0x374d4e=parseInt(_0x374d4e,0xa);if(!_0x374d4e||_0x374d4e<0x0){_0x374d4e=0x0;}return _0x374d4e;};exports[_0x8bfb('0x17')]=function(_0x370c9a){var _0x4a33f1,_0xf5e9fa=null;if(_0x370c9a){_0x4a33f1=_0x370c9a['split'](',');_0xf5e9fa=_[_0x8bfb('0x18')](_0x4a33f1,function(_0x226784){if(_0x226784['indexOf']('-')===0x0){return[_0x226784==='priority'?sequelize[_0x8bfb('0x19')](sequelize[_0x8bfb('0x1a')](_0x8bfb('0x1b')),_0x8bfb('0x1c')):_0x226784['substr'](0x1),_0x8bfb('0x1d')];}else{return[_0x226784==='priority'?sequelize[_0x8bfb('0x19')](sequelize[_0x8bfb('0x1a')]('priority'),'unsigned'):_0x226784,'ASC'];}});}return _0xf5e9fa;};exports['omit']=function(_0x4d3b67,_0x3c52a9){if(_['isEmpty'](_0x4d3b67)){return _0x4d3b67;}if(_[_0x8bfb('0x14')](_0x4d3b67)){for(var _0x65e7a1=0x0;_0x65e7a1<_0x4d3b67['length'];_0x65e7a1+=0x1){_0x4d3b67[_0x65e7a1]=this['omit'](_0x4d3b67[_0x65e7a1],_0x3c52a9);}return _0x4d3b67;}if(!_['isObject'](_0x4d3b67)){return _0x4d3b67;}if(_[_0x8bfb('0x1e')](_0x3c52a9)){_0x3c52a9=[_0x3c52a9];}if(!_[_0x8bfb('0x14')](_0x3c52a9)){return _0x4d3b67;}for(var _0x3bd668=0x0;_0x3bd668<_0x3c52a9[_0x8bfb('0x1f')];_0x3bd668+=0x1){_[_0x8bfb('0x20')](_0x4d3b67,_0x3c52a9[_0x3bd668]);}for(var _0x937d62 in _0x4d3b67){if(_0x4d3b67[_0x8bfb('0x21')](_0x937d62)){_0x4d3b67[_0x937d62]=this['omit'](_0x4d3b67[_0x937d62],_0x3c52a9);}}return _0x4d3b67;};exports[_0x8bfb('0x22')]=function(_0x3709d0){return _0x3709d0[_0x8bfb('0x23')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0x8bfb('0x24')]=function(_0x43bcce){return _0x43bcce[_0x8bfb('0x23')](/^\S+@\S+$/)?!![]:![];};exports[_0x8bfb('0x25')]=function(_0x54cd8a,_0x3e5400){var _0x45894a=[];var _0x1f6a99=/([^:]")"+/g;var _0x316c08=/[*<>~@-]/g;var _0x139f66=/[ `!@#$%^&*()_\-?~<>]/;var _0x75bb74=/[ ,]+/;var _0x4cd961=_0x3e5400?_0x8bfb('0x26'):_0x8bfb('0x27');if(_0x3e5400){_0x54cd8a=_0x54cd8a[_0x8bfb('0x28')](_0x316c08,'\x20')[_0x8bfb('0x29')]();}_0x54cd8a[_0x8bfb('0x15')](_0x75bb74)[_0x8bfb('0x2a')](function(_0x288a66){_0x288a66=_0x288a66[_0x8bfb('0x28')](_0x1f6a99,'$1');_0x288a66='+'+_0x288a66+'*';var _0x15fc05=_0x288a66[_0x8bfb('0x23')](_0x139f66);if(_0x15fc05){_0x288a66='\x22'+_0x288a66+'\x22';}_0x45894a[_0x8bfb('0x2b')](_0x288a66);});_0x4cd961=_0x4cd961['replace'](_0x8bfb('0x27'),_0x45894a['join']('\x20'));return _0x4cd961;};exports['getOptions']=function(_0x51e6ef,_0x533861,_0x46f677){var _0x549fcc={},_0x3c6421={};if(_0x533861['query'][_0x8bfb('0x2c')]){_0x533861[_0x8bfb('0x2d')]['id']=_0x533861[_0x8bfb('0x2d')]['$id'];delete _0x533861[_0x8bfb('0x2d')][_0x8bfb('0x2c')];}_0x549fcc['model']=_[_0x8bfb('0x18')](_0x51e6ef,'name');_0x549fcc[_0x8bfb('0x2d')]=_[_0x8bfb('0x3')](_0x533861[_0x8bfb('0x2d')]);_0x549fcc['filters']=_['intersection'](_0x549fcc['model'],_0x549fcc[_0x8bfb('0x2d')]);_0x3c6421[_0x8bfb('0x2e')]=_['intersection'](_0x549fcc[_0x8bfb('0x2f')],this[_0x8bfb('0x7')](_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x7')]));_0x3c6421['attributes']=_0x3c6421[_0x8bfb('0x2e')]['length']?_0x3c6421[_0x8bfb('0x2e')]:_0x549fcc[_0x8bfb('0x2f')];if(!_0x533861['query'][_0x8bfb('0x21')](_0x8bfb('0x30'))){_0x3c6421['limit']=this[_0x8bfb('0x16')](_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x16')]);_0x3c6421['offset']=this[_0x8bfb('0x31')](_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x31')]);}_0x3c6421[_0x8bfb('0x32')]=this[_0x8bfb('0x17')](_0x533861[_0x8bfb('0x2d')]['sort']);_0x3c6421[_0x8bfb('0x33')]=this[_0x8bfb('0x9')](_['pick'](_0x533861['query'],_0x549fcc[_0x8bfb('0x9')]),_0x51e6ef);if(_0x533861[_0x8bfb('0x2d')]['filter']){var _0x4694ca=_0x51e6ef;var _0x267c8f=_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x34')];if(typeof _0x267c8f===_0x8bfb('0x35')){_0x4694ca=_[_0x8bfb('0x34')](_0x51e6ef,function(_0x1f3cf2){return _[_0x8bfb('0x4')](_0x267c8f[_0x8bfb('0x36')],_0x1f3cf2[_0x8bfb('0x13')]);});_0x267c8f=_0x267c8f[_0x8bfb('0x37')];}_0x3c6421['where']=_[_0x8bfb('0x38')](_0x3c6421['where'],{'$or':_[_0x8bfb('0x18')](_0x4694ca,function(_0x22cf7c){if(_0x22cf7c['type']!==_0x8bfb('0x39')){if(_0x46f677){return sequelize[_0x8bfb('0x33')](sequelize['fn'](_0x8bfb('0x3a'),sequelize[_0x8bfb('0x1a')](_0x22cf7c[_0x8bfb('0x13')])),{'$like':sequelize['fn'](_0x8bfb('0x3a'),'%'+_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x34')]+'%')});}else{var _0x1bcbd9={};_0x1bcbd9[_0x22cf7c['name']]={'$like':'%'+_0x533861[_0x8bfb('0x2d')][_0x8bfb('0x34')]+'%'};return _0x1bcbd9;}}})});}_0x3c6421=_[_0x8bfb('0x38')]({},_0x3c6421,_0x533861[_0x8bfb('0x3b')]);return _0x3c6421;};exports['include']=function(_0x1be288){var _0x394919=[];if(_0x1be288[_0x8bfb('0x3c')]){_0x394919[_0x8bfb('0x2b')]({'all':!![]});}else if(_0x1be288[_0x8bfb('0x3d')]){if(Array[_0x8bfb('0x14')](_0x1be288[_0x8bfb('0x3d')])){_0x394919=Object[_0x8bfb('0x3')](_0x1be288['include'])['map'](function(_0x1eb554){return parseIncludeModel(_0x1be288[_0x8bfb('0x3d')][_0x1eb554]);});}else{var _0x3d4436=parseIncludeModel(_0x1be288[_0x8bfb('0x3d')]);_0x394919[_0x8bfb('0x2b')](_0x3d4436);}}return _0x394919;};exports[_0x8bfb('0x3e')]=function(_0x44cf26){return _0x44cf26[_0x8bfb('0x28')](/[%_^-]/g,function(_0xaeb0a1){return'\x5c'+_0xaeb0a1;});};