47626a257712a329ccfd04e1813005eb914aabe5
[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 _0xaf02=['offset','map','cast','priority','unsigned','substr','DESC','col','ASC','omit','isEmpty','isObject','isString','length','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','getFullTextValue','\x22{EXPR}\x22','{EXPR}','replace','trim','forEach','push','getOptions','query','$id','attributes','intersection','nolimit','limit','order','sort','where','pick','filter','object','columns','value','merge','VIRTUAL','lower','options','include','includeAll','lodash','sequelize','../../mysqldb','keys','includes','parse','model','alias','fields','raw','split','filters','find','type','DATE','isPlainObject','$gte','format','utc','YYYY-MM-DD','subtract','name','uniqueid','isArray'];(function(_0x565478,_0x494c3c){var _0xc1c199=function(_0x50ac47){while(--_0x50ac47){_0x565478['push'](_0x565478['shift']());}};_0xc1c199(++_0x494c3c);}(_0xaf02,0x1d9));var _0x2af0=function(_0x356a67,_0x188fb6){_0x356a67=_0x356a67-0x0;var _0x470848=_0xaf02[_0x356a67];return _0x470848;};'use strict';var _=require(_0x2af0('0x0'));var sequelize=require(_0x2af0('0x1'));var moment=require('moment');var db=require(_0x2af0('0x2'))['db'];var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x1519b9){var _0x301800=['ne'];try{var _0x1b1888=JSON['parse'](_0x1519b9);var _0x5d823b=Object[_0x2af0('0x3')](_0x1b1888)[0x0];return _0x301800[_0x2af0('0x4')](_0x5d823b);}catch(_0xf87359){return![];}}function getOperatorValue(_0x21ded7){var _0x536393=JSON[_0x2af0('0x5')](_0x21ded7);var _0xc2f98=Object[_0x2af0('0x3')](_0x536393)[0x0];var _0x27a9b5=_0x536393[_0xc2f98];return{['$'+_0xc2f98]:_0x27a9b5};}function parseIncludeModel(_0x2bb40b){var _0x2d5b6a=JSON[_0x2af0('0x5')](_0x2bb40b);return{'model':db[_0x2d5b6a[_0x2af0('0x6')]],'as':_0x2d5b6a[_0x2af0('0x7')],'attributes':_0x2d5b6a[_0x2af0('0x8')],'raw':_0x2d5b6a[_0x2af0('0x9')]};}exports['fields']=function(_0x225097){var _0x28e20f=null;if(_0x225097){_0x28e20f=_0x225097[_0x2af0('0xa')](',');}return _0x28e20f;};exports[_0x2af0('0xb')]=function(_0x36feae,_0x328a5c){var _0x2cc2d1={};if(!_['isEmpty'](_0x36feae)){_['forOwn'](_0x36feae,function(_0x304072,_0x343446){try{if(_0x328a5c){var _0x33383b=_[_0x2af0('0xc')](_0x328a5c,{'name':_0x343446})||{};if(hasSequelizeOperator(_0x304072)){_0x2cc2d1[_0x343446]=getOperatorValue(_0x304072);}else if(_0x33383b[_0x2af0('0xd')]===_0x2af0('0xe')&&_[_0x2af0('0xf')](_0x304072)){var _0x2d6e89=JSON[_0x2af0('0x5')](_0x304072);var _0x14dfe3={'$gte':moment(moment(_0x2d6e89[_0x2af0('0x10')])[_0x2af0('0x11')]('YYYY-MM-DD'))[_0x2af0('0x12')]()[_0x2af0('0x11')](),'$lte':moment(moment(_0x2d6e89['$lte'])[_0x2af0('0x11')](_0x2af0('0x13')))[_0x2af0('0x12')]()[_0x2af0('0x14')](0x1,'s')['format']()};_0x2cc2d1[_0x343446]=_0x14dfe3;}else if(_0x33383b[_0x2af0('0x15')]===_0x2af0('0x16')){_0x2cc2d1[_0x343446]=_0x304072;}else{_0x2cc2d1[_0x343446]=_[_0x2af0('0x17')](_0x304072)?_0x304072:JSON[_0x2af0('0x5')](_0x304072);}}else{_0x2cc2d1[_0x343446]=_[_0x2af0('0x17')](_0x304072)?_0x304072:JSON[_0x2af0('0x5')](_0x304072);}}catch(_0x194317){_0x2cc2d1[_0x343446]=_0x304072['split'](',');}});}return _0x2cc2d1;};exports['limit']=function(_0x39bdff){_0x39bdff=parseInt(_0x39bdff,0xa);if(!_0x39bdff||_0x39bdff<0x0){_0x39bdff=LIMIT_VALUE;}return _0x39bdff;};exports[_0x2af0('0x18')]=function(_0x5a7203){_0x5a7203=parseInt(_0x5a7203,0xa);if(!_0x5a7203||_0x5a7203<0x0){_0x5a7203=0x0;}return _0x5a7203;};exports['sort']=function(_0x57d0a2){var _0x6158bd,_0x28dd97=null;if(_0x57d0a2){_0x6158bd=_0x57d0a2['split'](',');_0x28dd97=_[_0x2af0('0x19')](_0x6158bd,function(_0x5e86c2){if(_0x5e86c2['indexOf']('-')===0x0){return[_0x5e86c2==='priority'?sequelize[_0x2af0('0x1a')](sequelize['col'](_0x2af0('0x1b')),_0x2af0('0x1c')):_0x5e86c2[_0x2af0('0x1d')](0x1),_0x2af0('0x1e')];}else{return[_0x5e86c2===_0x2af0('0x1b')?sequelize[_0x2af0('0x1a')](sequelize[_0x2af0('0x1f')]('priority'),_0x2af0('0x1c')):_0x5e86c2,_0x2af0('0x20')];}});}return _0x28dd97;};exports[_0x2af0('0x21')]=function(_0x26dbc0,_0x4f1ee8){if(_[_0x2af0('0x22')](_0x26dbc0)){return _0x26dbc0;}if(_['isArray'](_0x26dbc0)){for(var _0x5e33a4=0x0;_0x5e33a4<_0x26dbc0['length'];_0x5e33a4+=0x1){_0x26dbc0[_0x5e33a4]=this[_0x2af0('0x21')](_0x26dbc0[_0x5e33a4],_0x4f1ee8);}return _0x26dbc0;}if(!_[_0x2af0('0x23')](_0x26dbc0)){return _0x26dbc0;}if(_[_0x2af0('0x24')](_0x4f1ee8)){_0x4f1ee8=[_0x4f1ee8];}if(!_[_0x2af0('0x17')](_0x4f1ee8)){return _0x26dbc0;}for(var _0x3fa211=0x0;_0x3fa211<_0x4f1ee8[_0x2af0('0x25')];_0x3fa211+=0x1){_[_0x2af0('0x26')](_0x26dbc0,_0x4f1ee8[_0x3fa211]);}for(var _0x53ff54 in _0x26dbc0){if(_0x26dbc0[_0x2af0('0x27')](_0x53ff54)){_0x26dbc0[_0x53ff54]=this[_0x2af0('0x21')](_0x26dbc0[_0x53ff54],_0x4f1ee8);}}return _0x26dbc0;};exports[_0x2af0('0x28')]=function(_0x3f1f27){return _0x3f1f27[_0x2af0('0x29')](RegExp(_0x2af0('0x2a')))?!![]:![];};exports['isEmail']=function(_0x3898fa){return _0x3898fa[_0x2af0('0x29')](/^\S+@\S+$/)?!![]:![];};exports[_0x2af0('0x2b')]=function(_0x1d0577,_0x47c84a){var _0x236ac0=[];var _0x14b403=/([^:]")"+/g;var _0x44c127=/[*<>~@-]/g;var _0x369b6f=/[ `!@#$%^&*()_\-?~<>]/;var _0x3ef031=/[ ,]+/;var _0xe68b24=_0x47c84a?_0x2af0('0x2c'):_0x2af0('0x2d');if(_0x47c84a){_0x1d0577=_0x1d0577[_0x2af0('0x2e')](_0x44c127,'\x20')[_0x2af0('0x2f')]();}_0x1d0577[_0x2af0('0xa')](_0x3ef031)[_0x2af0('0x30')](function(_0x3be495){_0x3be495=_0x3be495[_0x2af0('0x2e')](_0x14b403,'$1');_0x3be495='+'+_0x3be495+'*';var _0x250998=_0x3be495[_0x2af0('0x29')](_0x369b6f);if(_0x250998){_0x3be495='\x22'+_0x3be495+'\x22';}_0x236ac0[_0x2af0('0x31')](_0x3be495);});_0xe68b24=_0xe68b24[_0x2af0('0x2e')](_0x2af0('0x2d'),_0x236ac0['join']('\x20'));return _0xe68b24;};exports[_0x2af0('0x32')]=function(_0x576e50,_0x23da34,_0x1ac83d){var _0x483403={},_0x21081e={};if(_0x23da34[_0x2af0('0x33')]['$id']){_0x23da34[_0x2af0('0x33')]['id']=_0x23da34['query'][_0x2af0('0x34')];delete _0x23da34['query']['$id'];}_0x483403[_0x2af0('0x6')]=_[_0x2af0('0x19')](_0x576e50,_0x2af0('0x15'));_0x483403[_0x2af0('0x33')]=_[_0x2af0('0x3')](_0x23da34[_0x2af0('0x33')]);_0x483403['filters']=_['intersection'](_0x483403[_0x2af0('0x6')],_0x483403[_0x2af0('0x33')]);_0x21081e[_0x2af0('0x35')]=_[_0x2af0('0x36')](_0x483403[_0x2af0('0x6')],this[_0x2af0('0x8')](_0x23da34[_0x2af0('0x33')][_0x2af0('0x8')]));_0x21081e['attributes']=_0x21081e[_0x2af0('0x35')][_0x2af0('0x25')]?_0x21081e[_0x2af0('0x35')]:_0x483403[_0x2af0('0x6')];if(!_0x23da34[_0x2af0('0x33')][_0x2af0('0x27')](_0x2af0('0x37'))){_0x21081e['limit']=this[_0x2af0('0x38')](_0x23da34[_0x2af0('0x33')][_0x2af0('0x38')]);_0x21081e[_0x2af0('0x18')]=this['offset'](_0x23da34['query'][_0x2af0('0x18')]);}_0x21081e[_0x2af0('0x39')]=this[_0x2af0('0x3a')](_0x23da34[_0x2af0('0x33')][_0x2af0('0x3a')]);_0x21081e[_0x2af0('0x3b')]=this[_0x2af0('0xb')](_[_0x2af0('0x3c')](_0x23da34[_0x2af0('0x33')],_0x483403[_0x2af0('0xb')]),_0x576e50);if(_0x23da34[_0x2af0('0x33')][_0x2af0('0x3d')]){var _0x55e3eb=_0x576e50;var _0x5a3ad5=_0x23da34[_0x2af0('0x33')]['filter'];if(typeof _0x5a3ad5===_0x2af0('0x3e')){_0x55e3eb=_[_0x2af0('0x3d')](_0x576e50,function(_0x26caf8){return _[_0x2af0('0x4')](_0x5a3ad5[_0x2af0('0x3f')],_0x26caf8[_0x2af0('0x15')]);});_0x5a3ad5=_0x5a3ad5[_0x2af0('0x40')];}_0x21081e[_0x2af0('0x3b')]=_[_0x2af0('0x41')](_0x21081e[_0x2af0('0x3b')],{'$or':_[_0x2af0('0x19')](_0x55e3eb,function(_0x50d45e){if(_0x50d45e['type']!==_0x2af0('0x42')){if(_0x1ac83d){return sequelize[_0x2af0('0x3b')](sequelize['fn'](_0x2af0('0x43'),sequelize[_0x2af0('0x1f')](_0x50d45e[_0x2af0('0x15')])),{'$like':sequelize['fn'](_0x2af0('0x43'),'%'+_0x23da34['query'][_0x2af0('0x3d')]+'%')});}else{var _0x193e2d={};_0x193e2d[_0x50d45e['name']]={'$like':'%'+_0x23da34[_0x2af0('0x33')][_0x2af0('0x3d')]+'%'};return _0x193e2d;}}})});}_0x21081e=_['merge']({},_0x21081e,_0x23da34[_0x2af0('0x44')]);return _0x21081e;};exports[_0x2af0('0x45')]=function(_0x39ae31){var _0x16970b=[];if(_0x39ae31[_0x2af0('0x46')]){_0x16970b[_0x2af0('0x31')]({'all':!![]});}else if(_0x39ae31[_0x2af0('0x45')]){if(Array[_0x2af0('0x17')](_0x39ae31[_0x2af0('0x45')])){_0x16970b=Object[_0x2af0('0x3')](_0x39ae31[_0x2af0('0x45')])[_0x2af0('0x19')](function(_0x4ec6a7){return parseIncludeModel(_0x39ae31['include'][_0x4ec6a7]);});}else{var _0x37ca2b=parseIncludeModel(_0x39ae31['include']);_0x16970b[_0x2af0('0x31')](_0x37ca2b);}}return _0x16970b;};exports['escapeLIKESpecialChars']=function(_0x42c1ac){return _0x42c1ac[_0x2af0('0x2e')](/[%_^-]/g,function(_0x38222c){return'\x5c'+_0x38222c;});};