Built motion from commit 838c2833.|2.6.24
[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 _0x35fd=['match','isEmail','getFullTextValue','{EXPR}','forEach','replace','push','join','getOptions','query','$id','name','intersection','attributes','hasOwnProperty','limit','offset','order','where','pick','filter','object','columns','value','merge','VIRTUAL','lower','options','include','sequelize','moment','parse','keys','includes','model','fields','raw','split','filters','isEmpty','find','DATE','$gte','format','YYYY-MM-DD','utc','subtract','uniqueid','isArray','sort','map','col','priority','unsigned','substr','DESC','cast','ASC','omit','isObject','isString','unset','isNumeric'];(function(_0x484a1f,_0x59db32){var _0x5457f5=function(_0x13db66){while(--_0x13db66){_0x484a1f['push'](_0x484a1f['shift']());}};_0x5457f5(++_0x59db32);}(_0x35fd,0x1d6));var _0xd35f=function(_0x56ff32,_0x2a441e){_0x56ff32=_0x56ff32-0x0;var _0x471eab=_0x35fd[_0x56ff32];return _0x471eab;};'use strict';var _=require('lodash');var sequelize=require(_0xd35f('0x0'));var moment=require(_0xd35f('0x1'));var db=require('../../mysqldb')['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x5d7986){var _0x27d083=['ne'];try{var _0x595374=JSON[_0xd35f('0x2')](_0x5d7986);var _0x4e04da=Object[_0xd35f('0x3')](_0x595374)[0x0];return _0x27d083[_0xd35f('0x4')](_0x4e04da);}catch(_0x43d84f){return![];}}function getOperatorValue(_0x481cb0){var _0x220144=JSON[_0xd35f('0x2')](_0x481cb0);var _0x24413d=Object[_0xd35f('0x3')](_0x220144)[0x0];var _0x2e4fbd=_0x220144[_0x24413d];return{['$'+_0x24413d]:_0x2e4fbd};}function parseIncludeModel(_0x354115){var _0x30a0dc=JSON['parse'](_0x354115);return{'model':db[_0x30a0dc[_0xd35f('0x5')]],'as':_0x30a0dc['alias'],'attributes':_0x30a0dc[_0xd35f('0x6')],'raw':_0x30a0dc[_0xd35f('0x7')]};}exports[_0xd35f('0x6')]=function(_0x3cd4e8){var _0x2f7303=null;if(_0x3cd4e8){_0x2f7303=_0x3cd4e8[_0xd35f('0x8')](',');}return _0x2f7303;};exports[_0xd35f('0x9')]=function(_0x4b988e,_0x1ab1a7){var _0x3127c5={};if(!_[_0xd35f('0xa')](_0x4b988e)){_['forOwn'](_0x4b988e,function(_0x573bff,_0x574a37){try{if(_0x1ab1a7){var _0x4f0be0=_[_0xd35f('0xb')](_0x1ab1a7,{'name':_0x574a37})||{};if(hasSequelizeOperator(_0x573bff)){_0x3127c5[_0x574a37]=getOperatorValue(_0x573bff);}else if(_0x4f0be0['type']===_0xd35f('0xc')&&_['isPlainObject'](_0x573bff)){var _0x2dfe5d=JSON[_0xd35f('0x2')](_0x573bff);var _0x22c0fa={'$gte':moment(moment(_0x2dfe5d[_0xd35f('0xd')])[_0xd35f('0xe')](_0xd35f('0xf')))[_0xd35f('0x10')]()[_0xd35f('0xe')](),'$lte':moment(moment(_0x2dfe5d['$lte'])[_0xd35f('0xe')]('YYYY-MM-DD'))[_0xd35f('0x10')]()[_0xd35f('0x11')](0x1,'s')[_0xd35f('0xe')]()};_0x3127c5[_0x574a37]=_0x22c0fa;}else if(_0x4f0be0['name']===_0xd35f('0x12')){_0x3127c5[_0x574a37]=_0x573bff;}else{_0x3127c5[_0x574a37]=_[_0xd35f('0x13')](_0x573bff)?_0x573bff:JSON[_0xd35f('0x2')](_0x573bff);}}else{_0x3127c5[_0x574a37]=_['isArray'](_0x573bff)?_0x573bff:JSON[_0xd35f('0x2')](_0x573bff);}}catch(_0x65dda0){_0x3127c5[_0x574a37]=_0x573bff[_0xd35f('0x8')](',');}});}return _0x3127c5;};exports['limit']=function(_0x57d406){_0x57d406=parseInt(_0x57d406,0xa);if(!_0x57d406||_0x57d406<0x0){_0x57d406=LIMIT_VALUE;}return _0x57d406;};exports['offset']=function(_0x41df7a){_0x41df7a=parseInt(_0x41df7a,0xa);if(!_0x41df7a||_0x41df7a<0x0){_0x41df7a=0x0;}return _0x41df7a;};exports[_0xd35f('0x14')]=function(_0x33ae2){var _0x1583a0,_0x1945dd=null;if(_0x33ae2){_0x1583a0=_0x33ae2[_0xd35f('0x8')](',');_0x1945dd=_[_0xd35f('0x15')](_0x1583a0,function(_0x57fa12){if(_0x57fa12['indexOf']('-')===0x0){return[_0x57fa12==='priority'?sequelize['cast'](sequelize[_0xd35f('0x16')](_0xd35f('0x17')),_0xd35f('0x18')):_0x57fa12[_0xd35f('0x19')](0x1),_0xd35f('0x1a')];}else{return[_0x57fa12===_0xd35f('0x17')?sequelize[_0xd35f('0x1b')](sequelize[_0xd35f('0x16')](_0xd35f('0x17')),_0xd35f('0x18')):_0x57fa12,_0xd35f('0x1c')];}});}return _0x1945dd;};exports[_0xd35f('0x1d')]=function(_0x1ab9d5,_0x4d1239){if(_[_0xd35f('0xa')](_0x1ab9d5)){return _0x1ab9d5;}if(_[_0xd35f('0x13')](_0x1ab9d5)){for(var _0x2c2a47=0x0;_0x2c2a47<_0x1ab9d5['length'];_0x2c2a47+=0x1){_0x1ab9d5[_0x2c2a47]=this['omit'](_0x1ab9d5[_0x2c2a47],_0x4d1239);}return _0x1ab9d5;}if(!_[_0xd35f('0x1e')](_0x1ab9d5)){return _0x1ab9d5;}if(_[_0xd35f('0x1f')](_0x4d1239)){_0x4d1239=[_0x4d1239];}if(!_[_0xd35f('0x13')](_0x4d1239)){return _0x1ab9d5;}for(var _0x48d326=0x0;_0x48d326<_0x4d1239['length'];_0x48d326+=0x1){_[_0xd35f('0x20')](_0x1ab9d5,_0x4d1239[_0x48d326]);}for(var _0x4c3bda in _0x1ab9d5){if(_0x1ab9d5['hasOwnProperty'](_0x4c3bda)){_0x1ab9d5[_0x4c3bda]=this[_0xd35f('0x1d')](_0x1ab9d5[_0x4c3bda],_0x4d1239);}}return _0x1ab9d5;};exports[_0xd35f('0x21')]=function(_0x1ef4db){return _0x1ef4db[_0xd35f('0x22')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xd35f('0x23')]=function(_0x4eb4a5){return _0x4eb4a5[_0xd35f('0x22')](/^\S+@\S+$/)?!![]:![];};exports[_0xd35f('0x24')]=function(_0x399df7,_0x4c88a3){var _0x5314a1=[];var _0x591c70=/[ `!@#$%^&*()_\-?~]/;var _0x4ea374=_0x4c88a3?'\x22{EXPR}\x22':_0xd35f('0x25');_0x399df7[_0xd35f('0x8')](/[ ,]+/)[_0xd35f('0x26')](function(_0x2ad3c7){_0x2ad3c7=_0x2ad3c7[_0xd35f('0x27')](/([^:]")"+/g,'$1');_0x2ad3c7='+'+_0x2ad3c7+'*';var _0x297c8b=_0x2ad3c7[_0xd35f('0x22')](_0x591c70);if(_0x297c8b){_0x2ad3c7='\x22'+_0x2ad3c7+'\x22';}_0x5314a1[_0xd35f('0x28')](_0x2ad3c7);});_0x4ea374=_0x4ea374['replace'](_0xd35f('0x25'),_0x5314a1[_0xd35f('0x29')]('\x20'));return _0x4ea374;};exports[_0xd35f('0x2a')]=function(_0x6c55b3,_0x2c8dfa,_0x4f3e26){var _0x44e46a={},_0x17c727={};if(_0x2c8dfa[_0xd35f('0x2b')]['$id']){_0x2c8dfa[_0xd35f('0x2b')]['id']=_0x2c8dfa[_0xd35f('0x2b')]['$id'];delete _0x2c8dfa[_0xd35f('0x2b')][_0xd35f('0x2c')];}_0x44e46a[_0xd35f('0x5')]=_[_0xd35f('0x15')](_0x6c55b3,_0xd35f('0x2d'));_0x44e46a[_0xd35f('0x2b')]=_['keys'](_0x2c8dfa['query']);_0x44e46a['filters']=_[_0xd35f('0x2e')](_0x44e46a['model'],_0x44e46a[_0xd35f('0x2b')]);_0x17c727[_0xd35f('0x2f')]=_['intersection'](_0x44e46a[_0xd35f('0x5')],this[_0xd35f('0x6')](_0x2c8dfa['query'][_0xd35f('0x6')]));_0x17c727[_0xd35f('0x2f')]=_0x17c727[_0xd35f('0x2f')]['length']?_0x17c727['attributes']:_0x44e46a['model'];if(!_0x2c8dfa[_0xd35f('0x2b')][_0xd35f('0x30')]('nolimit')){_0x17c727[_0xd35f('0x31')]=this[_0xd35f('0x31')](_0x2c8dfa['query'][_0xd35f('0x31')]);_0x17c727['offset']=this[_0xd35f('0x32')](_0x2c8dfa['query'][_0xd35f('0x32')]);}_0x17c727[_0xd35f('0x33')]=this['sort'](_0x2c8dfa['query'][_0xd35f('0x14')]);_0x17c727[_0xd35f('0x34')]=this['filters'](_[_0xd35f('0x35')](_0x2c8dfa[_0xd35f('0x2b')],_0x44e46a[_0xd35f('0x9')]),_0x6c55b3);if(_0x2c8dfa['query'][_0xd35f('0x36')]){var _0x19b33a=_0x6c55b3;var _0x583613=_0x2c8dfa['query'][_0xd35f('0x36')];if(typeof _0x583613===_0xd35f('0x37')){_0x19b33a=_[_0xd35f('0x36')](_0x6c55b3,function(_0x5590ee){return _[_0xd35f('0x4')](_0x583613[_0xd35f('0x38')],_0x5590ee[_0xd35f('0x2d')]);});_0x583613=_0x583613[_0xd35f('0x39')];}_0x17c727[_0xd35f('0x34')]=_[_0xd35f('0x3a')](_0x17c727[_0xd35f('0x34')],{'$or':_[_0xd35f('0x15')](_0x19b33a,function(_0x8f146b){if(_0x8f146b['type']!==_0xd35f('0x3b')){if(_0x4f3e26){return sequelize[_0xd35f('0x34')](sequelize['fn'](_0xd35f('0x3c'),sequelize[_0xd35f('0x16')](_0x8f146b[_0xd35f('0x2d')])),{'$like':sequelize['fn'](_0xd35f('0x3c'),'%'+_0x2c8dfa[_0xd35f('0x2b')][_0xd35f('0x36')]+'%')});}else{var _0x28996a={};_0x28996a[_0x8f146b['name']]={'$like':'%'+_0x2c8dfa[_0xd35f('0x2b')][_0xd35f('0x36')]+'%'};return _0x28996a;}}})});}_0x17c727=_['merge']({},_0x17c727,_0x2c8dfa[_0xd35f('0x3d')]);return _0x17c727;};exports[_0xd35f('0x3e')]=function(_0x2850ac){var _0x18ea03=[];if(_0x2850ac['includeAll']){_0x18ea03[_0xd35f('0x28')]({'all':!![]});}else if(_0x2850ac[_0xd35f('0x3e')]){if(Array[_0xd35f('0x13')](_0x2850ac[_0xd35f('0x3e')])){_0x18ea03=Object['keys'](_0x2850ac['include'])[_0xd35f('0x15')](function(_0x3539e3){return parseIncludeModel(_0x2850ac[_0xd35f('0x3e')][_0x3539e3]);});}else{var _0x36c445=parseIncludeModel(_0x2850ac['include']);_0x18ea03[_0xd35f('0x28')](_0x36c445);}}return _0x18ea03;};