Built motion from commit 994c64e1.|2.6.1
[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 _0x950a=['filters','forOwn','find','DATE','format','YYYY-MM-DD','utc','$lte','subtract','name','isArray','limit','offset','sort','map','indexOf','priority','col','unsigned','substr','DESC','ASC','omit','isEmpty','length','isObject','unset','hasOwnProperty','match','isEmail','getFullTextValue','forEach','replace','getOptions','$id','query','model','attributes','intersection','nolimit','where','pick','filter','object','includes','columns','merge','VIRTUAL','lower','lodash','sequelize','moment','parse','keys','fields','split'];(function(_0x15cc1c,_0x3e8a24){var _0x56bc3b=function(_0x24d5b2){while(--_0x24d5b2){_0x15cc1c['push'](_0x15cc1c['shift']());}};_0x56bc3b(++_0x3e8a24);}(_0x950a,0x111));var _0xa950=function(_0x59474d,_0x13475b){_0x59474d=_0x59474d-0x0;var _0x4e977a=_0x950a[_0x59474d];return _0x4e977a;};'use strict';var _=require(_0xa950('0x0'));var sequelize=require(_0xa950('0x1'));var moment=require(_0xa950('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x13e6a3){var _0x5569f7=['ne'];try{var _0x305b26=JSON[_0xa950('0x3')](_0x13e6a3);var _0x4c027f=Object[_0xa950('0x4')](_0x305b26)[0x0];return _0x5569f7['includes'](_0x4c027f);}catch(_0x1cd8ec){return![];}}function getOperatorValue(_0x46f86d){var _0x512c0e=JSON[_0xa950('0x3')](_0x46f86d);var _0x3645b6=Object['keys'](_0x512c0e)[0x0];var _0x5675f8=_0x512c0e[_0x3645b6];return{['$'+_0x3645b6]:_0x5675f8};}exports[_0xa950('0x5')]=function(_0x12ef5a){var _0x7d87b2=null;if(_0x12ef5a){_0x7d87b2=_0x12ef5a[_0xa950('0x6')](',');}return _0x7d87b2;};exports[_0xa950('0x7')]=function(_0x1b4ec6,_0x4e4700){var _0x523f3c={};if(!_['isEmpty'](_0x1b4ec6)){_[_0xa950('0x8')](_0x1b4ec6,function(_0x48c1b5,_0x37990f){try{if(_0x4e4700){var _0x3c66c7=_[_0xa950('0x9')](_0x4e4700,{'name':_0x37990f})||{};if(hasSequelizeOperator(_0x48c1b5)){_0x523f3c[_0x37990f]=getOperatorValue(_0x48c1b5);}else if(_0x3c66c7['type']===_0xa950('0xa')&&_['isPlainObject'](_0x48c1b5)){var _0x10e64a=JSON[_0xa950('0x3')](_0x48c1b5);var _0x3cdf5d={'$gte':moment(moment(_0x10e64a['$gte'])[_0xa950('0xb')](_0xa950('0xc')))[_0xa950('0xd')]()['format'](),'$lte':moment(moment(_0x10e64a[_0xa950('0xe')])[_0xa950('0xb')](_0xa950('0xc')))['utc']()[_0xa950('0xf')](0x1,'s')[_0xa950('0xb')]()};_0x523f3c[_0x37990f]=_0x3cdf5d;}else if(_0x3c66c7[_0xa950('0x10')]==='uniqueid'){_0x523f3c[_0x37990f]=_0x48c1b5;}else{_0x523f3c[_0x37990f]=_[_0xa950('0x11')](_0x48c1b5)?_0x48c1b5:JSON[_0xa950('0x3')](_0x48c1b5);}}else{_0x523f3c[_0x37990f]=_[_0xa950('0x11')](_0x48c1b5)?_0x48c1b5:JSON[_0xa950('0x3')](_0x48c1b5);}}catch(_0x16aabc){_0x523f3c[_0x37990f]=_0x48c1b5[_0xa950('0x6')](',');}});}return _0x523f3c;};exports[_0xa950('0x12')]=function(_0x36e57c){_0x36e57c=parseInt(_0x36e57c,0xa);if(!_0x36e57c||_0x36e57c<0x0){_0x36e57c=LIMIT_VALUE;}return _0x36e57c;};exports[_0xa950('0x13')]=function(_0x18266c){_0x18266c=parseInt(_0x18266c,0xa);if(!_0x18266c||_0x18266c<0x0){_0x18266c=0x0;}return _0x18266c;};exports[_0xa950('0x14')]=function(_0x38fa5d){var _0xc690ae,_0x5aadd1=null;if(_0x38fa5d){_0xc690ae=_0x38fa5d[_0xa950('0x6')](',');_0x5aadd1=_[_0xa950('0x15')](_0xc690ae,function(_0x50abe1){if(_0x50abe1[_0xa950('0x16')]('-')===0x0){return[_0x50abe1===_0xa950('0x17')?sequelize['cast'](sequelize[_0xa950('0x18')]('priority'),_0xa950('0x19')):_0x50abe1[_0xa950('0x1a')](0x1),_0xa950('0x1b')];}else{return[_0x50abe1===_0xa950('0x17')?sequelize['cast'](sequelize[_0xa950('0x18')](_0xa950('0x17')),_0xa950('0x19')):_0x50abe1,_0xa950('0x1c')];}});}return _0x5aadd1;};exports[_0xa950('0x1d')]=function(_0x22e2c1,_0x300448){if(_[_0xa950('0x1e')](_0x22e2c1)){return _0x22e2c1;}if(_[_0xa950('0x11')](_0x22e2c1)){for(var _0xc4894b=0x0;_0xc4894b<_0x22e2c1[_0xa950('0x1f')];_0xc4894b+=0x1){_0x22e2c1[_0xc4894b]=this[_0xa950('0x1d')](_0x22e2c1[_0xc4894b],_0x300448);}return _0x22e2c1;}if(!_[_0xa950('0x20')](_0x22e2c1)){return _0x22e2c1;}if(_['isString'](_0x300448)){_0x300448=[_0x300448];}if(!_[_0xa950('0x11')](_0x300448)){return _0x22e2c1;}for(var _0x288934=0x0;_0x288934<_0x300448[_0xa950('0x1f')];_0x288934+=0x1){_[_0xa950('0x21')](_0x22e2c1,_0x300448[_0x288934]);}for(var _0x31c168 in _0x22e2c1){if(_0x22e2c1[_0xa950('0x22')](_0x31c168)){_0x22e2c1[_0x31c168]=this[_0xa950('0x1d')](_0x22e2c1[_0x31c168],_0x300448);}}return _0x22e2c1;};exports['isNumeric']=function(_0x19ad7a){return _0x19ad7a[_0xa950('0x23')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0xa950('0x24')]=function(_0x2e7674){return _0x2e7674[_0xa950('0x23')](/^\S+@\S+$/)?!![]:![];};exports[_0xa950('0x25')]=function(_0x152f53){var _0x1945ca=[];_0x152f53[_0xa950('0x6')](/[ ,]+/)[_0xa950('0x26')](function(_0x203703){_0x203703=_0x203703[_0xa950('0x27')](/([^:]")"+/g,'$1');_0x203703='+'+_0x203703+'*';var _0x4de9f0=/[ `!@#$%^&*()_\-?~]/;if(_0x203703[_0xa950('0x23')](_0x4de9f0))_0x203703='\x22'+_0x203703+'\x22';_0x1945ca['push'](_0x203703);});return _0x1945ca['join']('\x20');};exports[_0xa950('0x28')]=function(_0x5db455,_0x118d96,_0x2b43f5){var _0x3ba469={},_0x34f7b9={};if(_0x118d96['query'][_0xa950('0x29')]){_0x118d96['query']['id']=_0x118d96[_0xa950('0x2a')][_0xa950('0x29')];delete _0x118d96['query']['$id'];}_0x3ba469[_0xa950('0x2b')]=_[_0xa950('0x15')](_0x5db455,_0xa950('0x10'));_0x3ba469[_0xa950('0x2a')]=_[_0xa950('0x4')](_0x118d96[_0xa950('0x2a')]);_0x3ba469['filters']=_['intersection'](_0x3ba469[_0xa950('0x2b')],_0x3ba469['query']);_0x34f7b9[_0xa950('0x2c')]=_[_0xa950('0x2d')](_0x3ba469[_0xa950('0x2b')],this[_0xa950('0x5')](_0x118d96[_0xa950('0x2a')][_0xa950('0x5')]));_0x34f7b9[_0xa950('0x2c')]=_0x34f7b9[_0xa950('0x2c')][_0xa950('0x1f')]?_0x34f7b9[_0xa950('0x2c')]:_0x3ba469['model'];if(!_0x118d96[_0xa950('0x2a')]['hasOwnProperty'](_0xa950('0x2e'))){_0x34f7b9[_0xa950('0x12')]=this['limit'](_0x118d96['query'][_0xa950('0x12')]);_0x34f7b9[_0xa950('0x13')]=this['offset'](_0x118d96[_0xa950('0x2a')][_0xa950('0x13')]);}_0x34f7b9['order']=this[_0xa950('0x14')](_0x118d96[_0xa950('0x2a')][_0xa950('0x14')]);_0x34f7b9[_0xa950('0x2f')]=this[_0xa950('0x7')](_[_0xa950('0x30')](_0x118d96[_0xa950('0x2a')],_0x3ba469[_0xa950('0x7')]),_0x5db455);if(_0x118d96['query'][_0xa950('0x31')]){var _0x1764b2=_0x5db455;var _0x52872f=_0x118d96[_0xa950('0x2a')][_0xa950('0x31')];if(typeof _0x52872f===_0xa950('0x32')){_0x1764b2=_['filter'](_0x5db455,function(_0x25c9f3){return _[_0xa950('0x33')](_0x52872f[_0xa950('0x34')],_0x25c9f3['name']);});_0x52872f=_0x52872f['value'];}_0x34f7b9[_0xa950('0x2f')]=_[_0xa950('0x35')](_0x34f7b9[_0xa950('0x2f')],{'$or':_['map'](_0x1764b2,function(_0x49a235){if(_0x49a235['type']!==_0xa950('0x36')){if(_0x2b43f5){return sequelize[_0xa950('0x2f')](sequelize['fn'](_0xa950('0x37'),sequelize[_0xa950('0x18')](_0x49a235[_0xa950('0x10')])),{'$like':sequelize['fn']('lower','%'+_0x118d96[_0xa950('0x2a')][_0xa950('0x31')]+'%')});}else{var _0x531e6a={};_0x531e6a[_0x49a235['name']]={'$like':'%'+_0x118d96[_0xa950('0x2a')][_0xa950('0x31')]+'%'};return _0x531e6a;}}})});}_0x34f7b9=_['merge']({},_0x34f7b9,_0x118d96['options']);return _0x34f7b9;};