Built motion from commit f7863d46.|2.5.41
[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 _0x56e7=['options','sequelize','moment','parse','keys','includes','fields','split','filters','isEmpty','forOwn','find','isPlainObject','$gte','format','YYYY-MM-DD','$lte','name','uniqueid','isArray','sort','map','indexOf','priority','cast','col','unsigned','substr','DESC','ASC','omit','isObject','isString','length','hasOwnProperty','match','isEmail','getFullTextValue','forEach','replace','push','getOptions','query','$id','intersection','model','attributes','nolimit','limit','offset','order','where','pick','filter','object','columns','value','type','VIRTUAL','lower','merge'];(function(_0x53d21a,_0x354768){var _0x3f9552=function(_0x2c72a2){while(--_0x2c72a2){_0x53d21a['push'](_0x53d21a['shift']());}};_0x3f9552(++_0x354768);}(_0x56e7,0x7b));var _0x756e=function(_0x35d467,_0x27826f){_0x35d467=_0x35d467-0x0;var _0x46263c=_0x56e7[_0x35d467];return _0x46263c;};'use strict';var _=require('lodash');var sequelize=require(_0x756e('0x0'));var moment=require(_0x756e('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x590286){var _0x2eadee=['ne'];try{var _0x3efe5c=JSON[_0x756e('0x2')](_0x590286);var _0xb850c9=Object[_0x756e('0x3')](_0x3efe5c)[0x0];return _0x2eadee[_0x756e('0x4')](_0xb850c9);}catch(_0x446fff){return![];}}function getOperatorValue(_0x538050){var _0x3b3b8f=JSON[_0x756e('0x2')](_0x538050);var _0x26519d=Object[_0x756e('0x3')](_0x3b3b8f)[0x0];var _0x5c8589=_0x3b3b8f[_0x26519d];return{['$'+_0x26519d]:_0x5c8589};}exports[_0x756e('0x5')]=function(_0x5c2db4){var _0x4460c7=null;if(_0x5c2db4){_0x4460c7=_0x5c2db4[_0x756e('0x6')](',');}return _0x4460c7;};exports[_0x756e('0x7')]=function(_0x4738dc,_0x4adf8f){var _0x5d5b90={};if(!_[_0x756e('0x8')](_0x4738dc)){_[_0x756e('0x9')](_0x4738dc,function(_0x13bea7,_0x4c4d7c){try{if(_0x4adf8f){var _0x330076=_[_0x756e('0xa')](_0x4adf8f,{'name':_0x4c4d7c})||{};if(hasSequelizeOperator(_0x13bea7)){_0x5d5b90[_0x4c4d7c]=getOperatorValue(_0x13bea7);}else if(_0x330076['type']==='DATE'&&_[_0x756e('0xb')](_0x13bea7)){var _0x569e8f=JSON[_0x756e('0x2')](_0x13bea7);var _0x21701a={'$gte':moment(moment(_0x569e8f[_0x756e('0xc')])[_0x756e('0xd')](_0x756e('0xe')))['utc']()['format'](),'$lte':moment(moment(_0x569e8f[_0x756e('0xf')])[_0x756e('0xd')](_0x756e('0xe')))['utc']()['subtract'](0x1,'s')[_0x756e('0xd')]()};_0x5d5b90[_0x4c4d7c]=_0x21701a;}else if(_0x330076[_0x756e('0x10')]===_0x756e('0x11')){_0x5d5b90[_0x4c4d7c]=_0x13bea7;}else{_0x5d5b90[_0x4c4d7c]=_[_0x756e('0x12')](_0x13bea7)?_0x13bea7:JSON[_0x756e('0x2')](_0x13bea7);}}else{_0x5d5b90[_0x4c4d7c]=_[_0x756e('0x12')](_0x13bea7)?_0x13bea7:JSON[_0x756e('0x2')](_0x13bea7);}}catch(_0x1a8614){_0x5d5b90[_0x4c4d7c]=_0x13bea7[_0x756e('0x6')](',');}});}return _0x5d5b90;};exports['limit']=function(_0x216ffd){_0x216ffd=parseInt(_0x216ffd,0xa);if(!_0x216ffd||_0x216ffd<0x0){_0x216ffd=LIMIT_VALUE;}return _0x216ffd;};exports['offset']=function(_0x4d7581){_0x4d7581=parseInt(_0x4d7581,0xa);if(!_0x4d7581||_0x4d7581<0x0){_0x4d7581=0x0;}return _0x4d7581;};exports[_0x756e('0x13')]=function(_0x28872e){var _0x30bc11,_0xe26ae=null;if(_0x28872e){_0x30bc11=_0x28872e[_0x756e('0x6')](',');_0xe26ae=_[_0x756e('0x14')](_0x30bc11,function(_0xb00195){if(_0xb00195[_0x756e('0x15')]('-')===0x0){return[_0xb00195===_0x756e('0x16')?sequelize[_0x756e('0x17')](sequelize[_0x756e('0x18')](_0x756e('0x16')),_0x756e('0x19')):_0xb00195[_0x756e('0x1a')](0x1),_0x756e('0x1b')];}else{return[_0xb00195===_0x756e('0x16')?sequelize['cast'](sequelize[_0x756e('0x18')]('priority'),_0x756e('0x19')):_0xb00195,_0x756e('0x1c')];}});}return _0xe26ae;};exports[_0x756e('0x1d')]=function(_0x2722eb,_0x506986){if(_[_0x756e('0x8')](_0x2722eb)){return _0x2722eb;}if(_[_0x756e('0x12')](_0x2722eb)){for(var _0x2f4db8=0x0;_0x2f4db8<_0x2722eb['length'];_0x2f4db8+=0x1){_0x2722eb[_0x2f4db8]=this[_0x756e('0x1d')](_0x2722eb[_0x2f4db8],_0x506986);}return _0x2722eb;}if(!_[_0x756e('0x1e')](_0x2722eb)){return _0x2722eb;}if(_[_0x756e('0x1f')](_0x506986)){_0x506986=[_0x506986];}if(!_['isArray'](_0x506986)){return _0x2722eb;}for(var _0xf09ae3=0x0;_0xf09ae3<_0x506986[_0x756e('0x20')];_0xf09ae3+=0x1){_['unset'](_0x2722eb,_0x506986[_0xf09ae3]);}for(var _0x39befb in _0x2722eb){if(_0x2722eb[_0x756e('0x21')](_0x39befb)){_0x2722eb[_0x39befb]=this[_0x756e('0x1d')](_0x2722eb[_0x39befb],_0x506986);}}return _0x2722eb;};exports['isNumeric']=function(_0x3c332e){return _0x3c332e[_0x756e('0x22')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports[_0x756e('0x23')]=function(_0x2a7fdb){return _0x2a7fdb['match'](/^\S+@\S+$/)?!![]:![];};exports[_0x756e('0x24')]=function(_0x422a53){var _0x39acd7=[];_0x422a53[_0x756e('0x6')](/[ ,]+/)[_0x756e('0x25')](function(_0x4fdb97){_0x4fdb97=_0x4fdb97[_0x756e('0x26')](/([^:]")"+/g,'$1');_0x4fdb97='+'+_0x4fdb97+'*';var _0x5c7947=/[ `!@#$%^&*()_\-?~]/;if(_0x4fdb97['match'](_0x5c7947))_0x4fdb97='\x22'+_0x4fdb97+'\x22';_0x39acd7[_0x756e('0x27')](_0x4fdb97);});return _0x39acd7['join']('\x20');};exports[_0x756e('0x28')]=function(_0x6a3661,_0x6aaf10,_0xccf702){var _0x4529aa={},_0x17d9d1={};if(_0x6aaf10[_0x756e('0x29')][_0x756e('0x2a')]){_0x6aaf10[_0x756e('0x29')]['id']=_0x6aaf10[_0x756e('0x29')][_0x756e('0x2a')];delete _0x6aaf10[_0x756e('0x29')]['$id'];}_0x4529aa['model']=_[_0x756e('0x14')](_0x6a3661,_0x756e('0x10'));_0x4529aa[_0x756e('0x29')]=_[_0x756e('0x3')](_0x6aaf10[_0x756e('0x29')]);_0x4529aa[_0x756e('0x7')]=_[_0x756e('0x2b')](_0x4529aa['model'],_0x4529aa['query']);_0x17d9d1['attributes']=_[_0x756e('0x2b')](_0x4529aa[_0x756e('0x2c')],this[_0x756e('0x5')](_0x6aaf10['query'][_0x756e('0x5')]));_0x17d9d1[_0x756e('0x2d')]=_0x17d9d1['attributes'][_0x756e('0x20')]?_0x17d9d1[_0x756e('0x2d')]:_0x4529aa[_0x756e('0x2c')];if(!_0x6aaf10[_0x756e('0x29')][_0x756e('0x21')](_0x756e('0x2e'))){_0x17d9d1[_0x756e('0x2f')]=this[_0x756e('0x2f')](_0x6aaf10['query'][_0x756e('0x2f')]);_0x17d9d1[_0x756e('0x30')]=this[_0x756e('0x30')](_0x6aaf10[_0x756e('0x29')][_0x756e('0x30')]);}_0x17d9d1[_0x756e('0x31')]=this[_0x756e('0x13')](_0x6aaf10[_0x756e('0x29')][_0x756e('0x13')]);_0x17d9d1[_0x756e('0x32')]=this['filters'](_[_0x756e('0x33')](_0x6aaf10[_0x756e('0x29')],_0x4529aa['filters']),_0x6a3661);if(_0x6aaf10[_0x756e('0x29')][_0x756e('0x34')]){var _0x2b4fc3=_0x6a3661;var _0x57a93f=_0x6aaf10[_0x756e('0x29')][_0x756e('0x34')];if(typeof _0x57a93f===_0x756e('0x35')){_0x2b4fc3=_['filter'](_0x6a3661,function(_0x5a8dfb){return _[_0x756e('0x4')](_0x57a93f[_0x756e('0x36')],_0x5a8dfb[_0x756e('0x10')]);});_0x57a93f=_0x57a93f[_0x756e('0x37')];}_0x17d9d1[_0x756e('0x32')]=_['merge'](_0x17d9d1[_0x756e('0x32')],{'$or':_[_0x756e('0x14')](_0x2b4fc3,function(_0x5c471e){if(_0x5c471e[_0x756e('0x38')]!==_0x756e('0x39')){if(_0xccf702){return sequelize[_0x756e('0x32')](sequelize['fn'](_0x756e('0x3a'),sequelize[_0x756e('0x18')](_0x5c471e[_0x756e('0x10')])),{'$like':sequelize['fn'](_0x756e('0x3a'),'%'+_0x6aaf10[_0x756e('0x29')][_0x756e('0x34')]+'%')});}else{var _0x52d21e={};_0x52d21e[_0x5c471e[_0x756e('0x10')]]={'$like':'%'+_0x6aaf10['query'][_0x756e('0x34')]+'%'};return _0x52d21e;}}})});}_0x17d9d1=_[_0x756e('0x3b')]({},_0x17d9d1,_0x6aaf10[_0x756e('0x3c')]);return _0x17d9d1;};