Built motion from commit 1fa89557.|2.6.10
[motion2.git] / server / api / team / team.controller.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 _0x7d99=['model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','filter','merge','type','VIRTUAL','options','where','includeAll','include','rows','catch','show','params','length','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','Teams','UserProfileSection','find','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','destroy','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','VoicePrefixId','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','Queue','pick','Queues','addQueues','add','toLowerCase','ids','removeQueues','remove','addAgents','isArray','Voice','Chat','Mail','Openchannel','through','QueueId','TeamVoiceQueue','penalty','User','findOrCreate','emit','Queue:save','findAll','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','all','UserVoicePrefix','spread','Sms','Fax','Whatsapp','removeAgents','getAgents','order','rimraf','zip-dir','bluebird','mustache','sox','ejs','fs-extra','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end','json','offset','count','limit','Content-Range','reject','save','then','error','stack','name','send','index','map','Team','rawAttributes','fieldName','key'];(function(_0x16cfae,_0x3c3596){var _0x5a04cf=function(_0x578063){while(--_0x578063){_0x16cfae['push'](_0x16cfae['shift']());}};_0x5a04cf(++_0x3c3596);}(_0x7d99,0x107));var _0x97d9=function(_0x4be4d6,_0x1cbdac){_0x4be4d6=_0x4be4d6-0x0;var _0x48b709=_0x7d99[_0x4be4d6];return _0x48b709;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x97d9('0x0'));var zipdir=require(_0x97d9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x97d9('0x2'));var Mustache=require(_0x97d9('0x3'));var util=require('util');var path=require('path');var sox=require(_0x97d9('0x4'));var csv=require('to-csv');var ejs=require(_0x97d9('0x5'));var fs=require('fs');var fs_extra=require(_0x97d9('0x6'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x97d9('0x7'));var jsforce=require(_0x97d9('0x8'));var deskjs=require(_0x97d9('0x9'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x97d9('0xa'));var Redis=require('ioredis');var authService=require(_0x97d9('0xb'));var qs=require(_0x97d9('0xc'));var as=require(_0x97d9('0xd'));var hardwareService=require(_0x97d9('0xe'));var logger=require(_0x97d9('0xf'))('api');var utils=require(_0x97d9('0x10'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x97d9('0x11'))['db'];config[_0x97d9('0x12')]=_[_0x97d9('0x13')](config[_0x97d9('0x12')],{'host':_0x97d9('0x14'),'port':0x18eb});var socket=require(_0x97d9('0x15'))(new Redis(config[_0x97d9('0x12')]));require(_0x97d9('0x16'))[_0x97d9('0x17')](socket);function respondWithStatusCode(_0x466f47,_0x446040){_0x446040=_0x446040||0xcc;return function(_0x5e111d){if(_0x5e111d){return _0x466f47[_0x97d9('0x18')](_0x446040);}return _0x466f47[_0x97d9('0x19')](_0x446040)[_0x97d9('0x1a')]();};}function respondWithResult(_0x8b95d3,_0x58917c){_0x58917c=_0x58917c||0xc8;return function(_0x24ad9d){if(_0x24ad9d){return _0x8b95d3[_0x97d9('0x19')](_0x58917c)[_0x97d9('0x1b')](_0x24ad9d);}};}function respondWithFilteredResult(_0x18fdf0,_0x39b09a){return function(_0x191ed5){if(_0x191ed5){var _0x3ec15e=typeof _0x39b09a[_0x97d9('0x1c')]==='undefined'&&typeof _0x39b09a['limit']==='undefined';var _0x3df476=_0x191ed5['count'];var _0x14f0f1=_0x3ec15e?0x0:_0x39b09a[_0x97d9('0x1c')];var _0x4216cc=_0x3ec15e?_0x191ed5[_0x97d9('0x1d')]:_0x39b09a[_0x97d9('0x1c')]+_0x39b09a[_0x97d9('0x1e')];var _0xdcffe5;if(_0x4216cc>=_0x3df476){_0x4216cc=_0x3df476;_0xdcffe5=0xc8;}else{_0xdcffe5=0xce;}_0x18fdf0['status'](_0xdcffe5);return _0x18fdf0['set'](_0x97d9('0x1f'),_0x14f0f1+'-'+_0x4216cc+'/'+_0x3df476)[_0x97d9('0x1b')](_0x191ed5);}return null;};}function patchUpdates(_0x3d1443){return function(_0x56373e){try{jsonpatch['apply'](_0x56373e,_0x3d1443,!![]);}catch(_0xdea40a){return BPromise[_0x97d9('0x20')](_0xdea40a);}return _0x56373e[_0x97d9('0x21')]();};}function saveUpdates(_0x35d9b5,_0x5ec241){return function(_0x37c23e){if(_0x37c23e){return _0x37c23e['update'](_0x35d9b5)[_0x97d9('0x22')](function(_0x7e0d4f){return _0x7e0d4f;});}return null;};}function handleEntityNotFound(_0x1bedab,_0x2dd9ac){return function(_0x4b93a8){if(!_0x4b93a8){_0x1bedab['sendStatus'](0x194);}return _0x4b93a8;};}function handleError(_0x3f6896,_0x2f802d){_0x2f802d=_0x2f802d||0x1f4;return function(_0x7fe9a3){logger[_0x97d9('0x23')](_0x7fe9a3[_0x97d9('0x24')]);if(_0x7fe9a3[_0x97d9('0x25')]){delete _0x7fe9a3[_0x97d9('0x25')];}_0x3f6896['status'](_0x2f802d)[_0x97d9('0x26')](_0x7fe9a3);};}exports[_0x97d9('0x27')]=function(_0x325dd7,_0x3593f6){var _0x211867={},_0x1de47b={},_0x28b3c9={'count':0x0,'rows':[]};var _0x19f9d4=_[_0x97d9('0x28')](db[_0x97d9('0x29')][_0x97d9('0x2a')],function(_0x66d539){return{'name':_0x66d539[_0x97d9('0x2b')],'type':_0x66d539['type'][_0x97d9('0x2c')]};});_0x1de47b[_0x97d9('0x2d')]=_['map'](_0x19f9d4,'name');_0x1de47b[_0x97d9('0x2e')]=_[_0x97d9('0x2f')](_0x325dd7['query']);_0x1de47b[_0x97d9('0x30')]=_['intersection'](_0x1de47b[_0x97d9('0x2d')],_0x1de47b['query']);_0x211867[_0x97d9('0x31')]=_[_0x97d9('0x32')](_0x1de47b[_0x97d9('0x2d')],qs[_0x97d9('0x33')](_0x325dd7[_0x97d9('0x2e')][_0x97d9('0x33')]));_0x211867[_0x97d9('0x31')]=_0x211867[_0x97d9('0x31')]['length']?_0x211867['attributes']:_0x1de47b['model'];if(!_0x325dd7['query'][_0x97d9('0x34')](_0x97d9('0x35'))){_0x211867['limit']=qs[_0x97d9('0x1e')](_0x325dd7['query']['limit']);_0x211867['offset']=qs[_0x97d9('0x1c')](_0x325dd7['query'][_0x97d9('0x1c')]);}_0x211867['order']=qs[_0x97d9('0x36')](_0x325dd7[_0x97d9('0x2e')][_0x97d9('0x36')]);_0x211867['where']=qs[_0x97d9('0x30')](_['pick'](_0x325dd7['query'],_0x1de47b[_0x97d9('0x30')]),_0x19f9d4);if(_0x325dd7['query'][_0x97d9('0x37')]){_0x211867['where']=_[_0x97d9('0x38')](_0x211867['where'],{'$or':_[_0x97d9('0x28')](_0x19f9d4,function(_0xa6c663){if(_0xa6c663[_0x97d9('0x39')]!==_0x97d9('0x3a')){var _0xca37da={};_0xca37da[_0xa6c663[_0x97d9('0x25')]]={'$like':'%'+_0x325dd7[_0x97d9('0x2e')][_0x97d9('0x37')]+'%'};return _0xca37da;}})});}_0x211867=_['merge']({},_0x211867,_0x325dd7[_0x97d9('0x3b')]);var _0xed990f={'where':_0x211867[_0x97d9('0x3c')]};return db[_0x97d9('0x29')][_0x97d9('0x1d')](_0xed990f)['then'](function(_0x5b14ba){_0x28b3c9['count']=_0x5b14ba;if(_0x325dd7[_0x97d9('0x2e')][_0x97d9('0x3d')]){_0x211867[_0x97d9('0x3e')]=[{'all':!![]}];}return db[_0x97d9('0x29')]['findAll'](_0x211867);})['then'](function(_0x5ca27f){_0x28b3c9[_0x97d9('0x3f')]=_0x5ca27f;return _0x28b3c9;})[_0x97d9('0x22')](respondWithFilteredResult(_0x3593f6,_0x211867))[_0x97d9('0x40')](handleError(_0x3593f6,null));};exports[_0x97d9('0x41')]=function(_0x250ba7,_0x560c3c){var _0x532bea={'raw':![],'where':{'id':_0x250ba7[_0x97d9('0x42')]['id']}},_0x18679f={};_0x18679f[_0x97d9('0x2d')]=_[_0x97d9('0x2f')](db[_0x97d9('0x29')][_0x97d9('0x2a')]);_0x18679f[_0x97d9('0x2e')]=_['keys'](_0x250ba7[_0x97d9('0x2e')]);_0x18679f['filters']=_[_0x97d9('0x32')](_0x18679f[_0x97d9('0x2d')],_0x18679f[_0x97d9('0x2e')]);_0x532bea[_0x97d9('0x31')]=_['intersection'](_0x18679f[_0x97d9('0x2d')],qs[_0x97d9('0x33')](_0x250ba7[_0x97d9('0x2e')]['fields']));_0x532bea[_0x97d9('0x31')]=_0x532bea[_0x97d9('0x31')][_0x97d9('0x43')]?_0x532bea[_0x97d9('0x31')]:_0x18679f['model'];if(_0x250ba7['query'][_0x97d9('0x3d')]){_0x532bea['include']=[{'all':!![]}];}_0x532bea=_['merge']({},_0x532bea,_0x250ba7['options']);return db['Team']['find'](_0x532bea)[_0x97d9('0x22')](handleEntityNotFound(_0x560c3c,null))[_0x97d9('0x22')](respondWithResult(_0x560c3c,null))[_0x97d9('0x40')](handleError(_0x560c3c,null));};exports['create']=function(_0x1c898f,_0x4c0d2c){return db[_0x97d9('0x29')]['create'](_0x1c898f['body'],{})[_0x97d9('0x22')](function(_0x39bff0){var _0x8b7565=_0x1c898f['user']['get']({'plain':!![]});if(!_0x8b7565)throw new Error(_0x97d9('0x44'));if(_0x8b7565[_0x97d9('0x45')]===_0x97d9('0x46')){var _0x214c74=_0x39bff0[_0x97d9('0x47')]({'plain':!![]});var _0x53bbea=_0x97d9('0x48');return db[_0x97d9('0x49')][_0x97d9('0x4a')]({'where':{'name':_0x53bbea,'userProfileId':_0x8b7565['userProfileId']},'raw':!![]})[_0x97d9('0x22')](function(_0x4ee520){if(_0x4ee520&&_0x4ee520['autoAssociation']===0x0){return db[_0x97d9('0x4b')][_0x97d9('0x4c')]({'name':_0x214c74[_0x97d9('0x25')],'resourceId':_0x214c74['id'],'type':_0x4ee520[_0x97d9('0x25')],'sectionId':_0x4ee520['id']},{})['then'](function(){return _0x39bff0;});}else{return _0x39bff0;}})[_0x97d9('0x40')](function(_0x346408){logger[_0x97d9('0x23')](_0x97d9('0x4d'),_0x346408);throw _0x346408;});}return _0x39bff0;})[_0x97d9('0x22')](respondWithResult(_0x4c0d2c,0xc9))[_0x97d9('0x40')](handleError(_0x4c0d2c,null));};exports[_0x97d9('0x4e')]=function(_0x206ff3,_0xe02fa1){if(_0x206ff3[_0x97d9('0x4f')]['id']){delete _0x206ff3[_0x97d9('0x4f')]['id'];}return db['Team'][_0x97d9('0x4a')]({'where':{'id':_0x206ff3[_0x97d9('0x42')]['id']}})[_0x97d9('0x22')](handleEntityNotFound(_0xe02fa1,null))[_0x97d9('0x22')](saveUpdates(_0x206ff3[_0x97d9('0x4f')],null))[_0x97d9('0x22')](respondWithResult(_0xe02fa1,null))['catch'](handleError(_0xe02fa1,null));};exports[_0x97d9('0x50')]=function(_0x5edd64,_0x449ec8){var _0x32bb41=_0x5edd64[_0x97d9('0x42')]['id'];var _0xc69139=[];return db[_0x97d9('0x51')][_0x97d9('0x52')](function(_0x44ac3b){var _0x21a7e6=_0x97d9('0x53')+_0x32bb41;return db[_0x97d9('0x51')]['query'](_0x21a7e6,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b})[_0x97d9('0x22')](function(_0x60f8f3){_0xc69139=_[_0x97d9('0x28')](_0x60f8f3,function(_0x3f851b){return Number(_0x3f851b[_0x97d9('0x57')]);});})[_0x97d9('0x22')](function(){var _0x8f8d86=_0x97d9('0x58')+_0x32bb41;return db[_0x97d9('0x51')]['query'](_0x8f8d86,{'type':db[_0x97d9('0x54')]['QueryTypes'][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0x275629){var _0x122c45=_[_0x97d9('0x28')](_0x275629,function(_0x3552f0){return Number(_0x3552f0[_0x97d9('0x59')]);});return db[_0x97d9('0x5a')][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'VoiceQueueId':{'$in':_0x122c45}},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){var _0x17857d=_0x97d9('0x5b')+_0x32bb41;return db[_0x97d9('0x51')][_0x97d9('0x2e')](_0x17857d,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0xe53dcc){var _0x23233c=_[_0x97d9('0x28')](_0xe53dcc,function(_0x2d6b3b){return Number(_0x2d6b3b[_0x97d9('0x5c')]);});return db[_0x97d9('0x5d')]['destroy']({'where':{'UserId':{'$in':_0xc69139},'MailQueueId':{'$in':_0x23233c}},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){var _0x2e49e0=_0x97d9('0x5e')+_0x32bb41;return db[_0x97d9('0x51')][_0x97d9('0x2e')](_0x2e49e0,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})['then'](function(_0x4ca1ca){var _0x21c6e3=_[_0x97d9('0x28')](_0x4ca1ca,function(_0x359542){return Number(_0x359542[_0x97d9('0x5f')]);});return db['UserSmsQueue']['destroy']({'where':{'UserId':{'$in':_0xc69139},'SmsQueueId':{'$in':_0x21c6e3}},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){var _0x1c415a=_0x97d9('0x60')+_0x32bb41;return db[_0x97d9('0x51')]['query'](_0x1c415a,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0x4e7d6c){var _0xe6276c=_[_0x97d9('0x28')](_0x4e7d6c,function(_0x36513a){return Number(_0x36513a[_0x97d9('0x61')]);});return db[_0x97d9('0x62')][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'ChatQueueId':{'$in':_0xe6276c}},'transaction':_0x44ac3b});})['then'](function(){var _0xde2894='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x32bb41;return db[_0x97d9('0x51')][_0x97d9('0x2e')](_0xde2894,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0x8dcdd5){var _0x21f76c=_[_0x97d9('0x28')](_0x8dcdd5,function(_0x3d79de){return Number(_0x3d79de[_0x97d9('0x63')]);});return db[_0x97d9('0x64')][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'FaxQueueId':{'$in':_0x21f76c}},'transaction':_0x44ac3b});})['then'](function(){var _0x314964=_0x97d9('0x65')+_0x32bb41;return db['sequelize'][_0x97d9('0x2e')](_0x314964,{'type':db[_0x97d9('0x54')][_0x97d9('0x55')][_0x97d9('0x56')],'raw':!![],'transaction':_0x44ac3b});})['then'](function(_0x56ad11){var _0x55504b=_[_0x97d9('0x28')](_0x56ad11,function(_0x25679f){return Number(_0x25679f[_0x97d9('0x66')]);});return db[_0x97d9('0x67')][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'OpenchannelQueueId':{'$in':_0x55504b}},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){var _0x2ba840='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0x32bb41;return db[_0x97d9('0x51')]['query'](_0x2ba840,{'type':db[_0x97d9('0x54')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0x77ae3){var _0x1cdf9a=_[_0x97d9('0x28')](_0x77ae3,function(_0x55c549){return Number(_0x55c549[_0x97d9('0x68')]);});return db[_0x97d9('0x69')][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'WhatsappQueueId':{'$in':_0x1cdf9a}},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){return db[_0x97d9('0x6a')]['find']({'where':{'TeamId':_0x32bb41}});})[_0x97d9('0x22')](function(_0x52aa52){if(_0x52aa52===null){return;}return db['UserVoicePrefix'][_0x97d9('0x50')]({'where':{'UserId':{'$in':_0xc69139},'VoicePrefixId':_0x52aa52[_0x97d9('0x6b')]},'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(){return db[_0x97d9('0x29')]['destroy']({'where':{'id':_0x32bb41},'cascade':!![],'transaction':_0x44ac3b});})[_0x97d9('0x22')](function(_0x58feee){if(_0x58feee===0x0){_0x449ec8[_0x97d9('0x18')](0x194);}else{return db[_0x97d9('0x4b')][_0x97d9('0x50')]({'where':{'type':_0x97d9('0x48'),'resourceId':_0x32bb41},'cascade':!![],'transaction':_0x44ac3b})['then'](function(){_0x449ec8[_0x97d9('0x19')](0xcc)[_0x97d9('0x1a')]();});}})[_0x97d9('0x40')](function(_0x481f4e){_0x449ec8[_0x97d9('0x19')](0x1f4)[_0x97d9('0x26')](_0x481f4e);});});};exports[_0x97d9('0x6c')]=function(_0x4d72c2,_0x4387ce,_0x4ce0ae){return db[_0x97d9('0x29')][_0x97d9('0x6d')]({'where':{'id':_0x4d72c2[_0x97d9('0x42')]['id']}})[_0x97d9('0x22')](handleEntityNotFound(_0x4387ce,null))[_0x97d9('0x22')](function(_0x6deb8d){if(!_0x4d72c2['query'][_0x97d9('0x6e')]||!utils[_0x97d9('0x6f')](_0x4d72c2[_0x97d9('0x2e')][_0x97d9('0x6e')])){throw new db['Sequelize'][(_0x97d9('0x70'))](_0x97d9('0x71'));}var _0x36cb7d={};var _0x12305c={};_0x12305c[_0x97d9('0x2d')]=_['keys'](db[_[_0x97d9('0x72')](_0x4d72c2['query'][_0x97d9('0x6e')]['toLowerCase']())+_0x97d9('0x73')][_0x97d9('0x2a')]);_0x12305c[_0x97d9('0x2e')]=_[_0x97d9('0x2f')](_0x4d72c2[_0x97d9('0x2e')]);_0x12305c['filters']=_[_0x97d9('0x32')](_0x12305c[_0x97d9('0x2d')],_0x12305c[_0x97d9('0x2e')]);_0x36cb7d[_0x97d9('0x31')]=_['intersection'](_0x12305c[_0x97d9('0x2d')],qs[_0x97d9('0x33')](_0x4d72c2['query'][_0x97d9('0x33')]));_0x36cb7d[_0x97d9('0x31')]=_0x36cb7d[_0x97d9('0x31')][_0x97d9('0x43')]?_0x36cb7d[_0x97d9('0x31')]:_0x12305c[_0x97d9('0x2d')];_0x36cb7d['limit']=qs[_0x97d9('0x1e')](_0x4d72c2[_0x97d9('0x2e')]['limit']);_0x36cb7d[_0x97d9('0x1c')]=qs['offset'](_0x4d72c2[_0x97d9('0x2e')][_0x97d9('0x1c')]);_0x36cb7d['order']=qs[_0x97d9('0x36')](_0x4d72c2[_0x97d9('0x2e')][_0x97d9('0x36')]);_0x36cb7d[_0x97d9('0x3c')]=qs['filters'](_[_0x97d9('0x74')](_0x4d72c2[_0x97d9('0x2e')],_0x12305c[_0x97d9('0x30')]));_0x36cb7d=_[_0x97d9('0x38')]({},_0x36cb7d,_0x4d72c2['options']);return _0x6deb8d['get'+_[_0x97d9('0x72')](_0x4d72c2['query'][_0x97d9('0x6e')]['toLowerCase']())+_0x97d9('0x75')](_0x36cb7d);})[_0x97d9('0x22')](respondWithResult(_0x4387ce,null))[_0x97d9('0x40')](handleError(_0x4387ce,null));};exports[_0x97d9('0x76')]=function(_0x260455,_0x4111bf,_0x4f7a34){return db['Team'][_0x97d9('0x6d')]({'where':{'id':_0x260455[_0x97d9('0x42')]['id']}})['then'](function(_0xa02503){if(_0xa02503){if(!_0x260455['body'][_0x97d9('0x6e')]||!utils['isValidChannel'](_0x260455[_0x97d9('0x4f')]['channel'])){throw new db[(_0x97d9('0x54'))]['ValidationError'](_0x97d9('0x71'));}return _0xa02503[_0x97d9('0x77')+_[_0x97d9('0x72')](_0x260455[_0x97d9('0x4f')][_0x97d9('0x6e')][_0x97d9('0x78')]())+'Queues'](_0x260455['body'][_0x97d9('0x79')]);}return null;})[_0x97d9('0x22')](handleEntityNotFound(_0x4111bf,null))[_0x97d9('0x22')](respondWithStatusCode(_0x4111bf,null))[_0x97d9('0x40')](handleError(_0x4111bf,null));};exports[_0x97d9('0x7a')]=function(_0x4cabba,_0x396bc9,_0x5a14e6){return db[_0x97d9('0x29')]['findOne']({'where':{'id':_0x4cabba[_0x97d9('0x42')]['id']}})[_0x97d9('0x22')](function(_0x17e9c4){if(_0x17e9c4){if(!_0x4cabba[_0x97d9('0x2e')][_0x97d9('0x6e')]||!utils['isValidChannel'](_0x4cabba[_0x97d9('0x2e')][_0x97d9('0x6e')])){throw new db[(_0x97d9('0x54'))][(_0x97d9('0x70'))](_0x97d9('0x71'));}return _0x17e9c4[_0x97d9('0x7b')+_['capitalize'](_0x4cabba[_0x97d9('0x2e')][_0x97d9('0x6e')]['toLowerCase']())+_0x97d9('0x75')](_0x4cabba[_0x97d9('0x2e')][_0x97d9('0x79')]);}return null;})[_0x97d9('0x22')](handleEntityNotFound(_0x396bc9,null))[_0x97d9('0x22')](respondWithStatusCode(_0x396bc9,null))[_0x97d9('0x40')](handleError(_0x396bc9,null));};exports[_0x97d9('0x7c')]=function(_0xf62754,_0x1aeb8d){var _0x588590=_[_0x97d9('0x7d')](_0xf62754[_0x97d9('0x4f')][_0x97d9('0x79')])?_0xf62754[_0x97d9('0x4f')][_0x97d9('0x79')]:[_0xf62754[_0x97d9('0x4f')]['ids']];var _0x380f9d=_0xf62754[_0x97d9('0x42')]['id'];return db[_0x97d9('0x29')]['find']({'where':{'id':_0x380f9d}})[_0x97d9('0x22')](handleEntityNotFound(_0x1aeb8d,null))[_0x97d9('0x22')](function(_0x1a90e6){if(_0x1a90e6){var _0x4bf630=[_0x97d9('0x7e'),_0x97d9('0x7f'),_0x97d9('0x80'),'Sms','Fax',_0x97d9('0x81'),'Whatsapp'];return db['sequelize'][_0x97d9('0x52')](function(_0x224831){var _0x9b2a53=_[_0x97d9('0x28')](_0x4bf630,function(_0x268f87){var _0x5164b5={'attributes':['id',_0x97d9('0x25')]};if(_0x268f87===_0x97d9('0x7e')){_0x5164b5[_0x97d9('0x82')]={'attributes':['penalty']};}return _0x1a90e6[_0x97d9('0x47')+_0x268f87+_0x97d9('0x75')](_0x5164b5)[_0x97d9('0x22')](function(_0x2daa74){var _0x502efd=_[_0x97d9('0x28')](_0x2daa74,function(_0x2889e2){var _0x307ee9=_[_0x97d9('0x28')](_0x588590,function(_0xa15c3d){var _0x134adf={'where':{'UserId':_0xa15c3d,[_0x268f87+_0x97d9('0x83')]:_0x2889e2['id']},'transaction':_0x224831};if(_0x268f87==='Voice'){_0x134adf['defaults']={'penalty':_0x2889e2[_0x97d9('0x84')][_0x97d9('0x85')]};}return db[_0x97d9('0x86')+_0x268f87+'Queue'][_0x97d9('0x87')](_0x134adf)[_0x97d9('0x22')](function(){socket[_0x97d9('0x88')](_0x97d9('0x46')+_0x268f87+_0x97d9('0x89'),{'UserId':_0xa15c3d,[_0x268f87+_0x97d9('0x83')]:_0x2889e2['id']});if(_0x268f87!==_0x97d9('0x7e')){return;}return db['User'][_0x97d9('0x8a')]({'where':{'id':_0x588590,'online':0x1},'attributes':['id',_0x97d9('0x25'),'online',_0x97d9('0x8b'),_0x97d9('0x8c')],'raw':!![]})[_0x97d9('0x22')](function(_0x4187b5){var _0x3bf9fa=_[_0x97d9('0x28')](_0x4187b5,function(_0x444077){return db[_0x97d9('0x8d')][_0x97d9('0x8e')]({'membername':_0x444077[_0x97d9('0x25')],'UserId':_0x444077['id'],'queue_name':_0x2889e2[_0x97d9('0x25')],'VoiceQueueId':_0x2889e2['id'],'interface':_[_0x97d9('0x8f')](_0x444077['interface'])?util[_0x97d9('0x90')]('SIP/%s',_0x444077[_0x97d9('0x25')]):_0x444077[_0x97d9('0x8c')],'paused':_0x444077['voicePause']||![],'penalty':_0x2889e2[_0x97d9('0x84')][_0x97d9('0x85')]},{'transaction':_0x224831});});return Promise['all'](_0x3bf9fa);});});});return Promise['all'](_0x307ee9);});return Promise[_0x97d9('0x91')](_0x502efd);})['then'](function(){return db[_0x97d9('0x6a')]['findOne']({'where':{'teamId':_0x380f9d}})[_0x97d9('0x22')](function(_0x3ec184){if(_0x3ec184){var _0xf111bf=_['map'](_0x588590,function(_0x524f99){db[_0x97d9('0x92')][_0x97d9('0x8e')]({'UserId':_0x524f99,'VoicePrefixId':_0x3ec184[_0x97d9('0x6b')]});});return Promise[_0x97d9('0x91')](_0xf111bf);}});});});return Promise[_0x97d9('0x91')](_0x9b2a53)[_0x97d9('0x22')](function(){return _0x1a90e6[_0x97d9('0x7c')](_0x588590,{'transaction':_0x224831})[_0x97d9('0x93')](function(_0x5b65ac){return _0x5b65ac;});});});}})[_0x97d9('0x22')](respondWithResult(_0x1aeb8d,null))[_0x97d9('0x40')](handleError(_0x1aeb8d,null));};exports['removeAgents']=function(_0x3ea920,_0x2ba99c){var _0x430ad2=_['isArray'](_0x3ea920[_0x97d9('0x2e')][_0x97d9('0x79')])?_0x3ea920[_0x97d9('0x2e')]['ids']:[_0x3ea920[_0x97d9('0x2e')][_0x97d9('0x79')]];var _0x5c73aa=_0x3ea920[_0x97d9('0x42')]['id'];return db[_0x97d9('0x29')][_0x97d9('0x4a')]({'where':{'id':_0x5c73aa}})['then'](handleEntityNotFound(_0x2ba99c,null))[_0x97d9('0x22')](function(_0x27f5a7){if(_0x27f5a7){var _0x4045d5=[_0x97d9('0x7e'),'Chat','Mail',_0x97d9('0x94'),_0x97d9('0x95'),_0x97d9('0x81'),_0x97d9('0x96')];return db['sequelize'][_0x97d9('0x52')](function(_0x4491e0){var _0x5d4821=_[_0x97d9('0x28')](_0x4045d5,function(_0x193ee2){var _0x2eba9f={'attributes':['id',_0x97d9('0x25')]};return _0x27f5a7[_0x97d9('0x47')+_0x193ee2+'Queues'](_0x2eba9f)[_0x97d9('0x22')](function(_0x11febb){var _0x37b7c5=_['map'](_0x11febb,function(_0x1428c5){return _0x1428c5['removeAgents'](_0x430ad2,{'transaction':_0x4491e0})['then'](function(){var _0x4fe444=_['map'](_0x430ad2,function(_0x680778){socket['emit']('user'+_0x193ee2+'Queue:remove',{'UserId':Number(_0x680778),[_0x193ee2+_0x97d9('0x83')]:_0x1428c5['id']});if(_0x193ee2!==_0x97d9('0x7e')){return;}return db[_0x97d9('0x8d')]['destroy']({'where':{'VoiceQueueId':_0x1428c5['id'],'UserId':_0x680778},'transaction':_0x4491e0});});return Promise[_0x97d9('0x91')](_0x4fe444);});});return Promise[_0x97d9('0x91')](_0x37b7c5);});});return Promise[_0x97d9('0x91')](_0x5d4821)[_0x97d9('0x22')](function(){return _0x27f5a7[_0x97d9('0x97')](_0x430ad2,{'transaction':_0x4491e0});})[_0x97d9('0x22')](function(){return db[_0x97d9('0x6a')][_0x97d9('0x6d')]({'where':{'teamId':_0x5c73aa}})[_0x97d9('0x22')](function(_0xc25682){if(_0xc25682){var _0x261d00=_[_0x97d9('0x28')](_0x430ad2,function(_0x1bc4ba){db[_0x97d9('0x92')][_0x97d9('0x50')]({'where':{'UserId':_0x1bc4ba,'VoicePrefixId':_0xc25682['VoicePrefixId']}});});return Promise[_0x97d9('0x91')](_0x261d00);}});});});}})['then'](respondWithStatusCode(_0x2ba99c,null))[_0x97d9('0x40')](handleError(_0x2ba99c,null));};exports[_0x97d9('0x98')]=function(_0x5e7f9a,_0x87260,_0x5839d2){var _0x415030={};var _0x1e8e36={};var _0xf75fd4;var _0x8bc316;return db[_0x97d9('0x29')]['findOne']({'where':{'id':_0x5e7f9a[_0x97d9('0x42')]['id']}})[_0x97d9('0x22')](handleEntityNotFound(_0x87260,null))[_0x97d9('0x22')](function(_0x2b220f){if(_0x2b220f){_0xf75fd4=_0x2b220f;_0x1e8e36['model']=_[_0x97d9('0x2f')](db[_0x97d9('0x86')]['rawAttributes']);_0x1e8e36[_0x97d9('0x2e')]=_[_0x97d9('0x2f')](_0x5e7f9a[_0x97d9('0x2e')]);_0x1e8e36[_0x97d9('0x30')]=_['intersection'](_0x1e8e36[_0x97d9('0x2d')],_0x1e8e36[_0x97d9('0x2e')]);_0x415030['attributes']=_[_0x97d9('0x32')](_0x1e8e36['model'],qs['fields'](_0x5e7f9a['query'][_0x97d9('0x33')]));_0x415030['attributes']=_0x415030[_0x97d9('0x31')]['length']?_0x415030[_0x97d9('0x31')]:_0x1e8e36['model'];_0x415030[_0x97d9('0x99')]=qs[_0x97d9('0x36')](_0x5e7f9a['query']['sort']);_0x415030[_0x97d9('0x3c')]=qs['filters'](_['pick'](_0x5e7f9a[_0x97d9('0x2e')],_0x1e8e36[_0x97d9('0x30')]));if(_0x5e7f9a[_0x97d9('0x2e')][_0x97d9('0x37')]){_0x415030[_0x97d9('0x3c')]=_[_0x97d9('0x38')](_0x415030['where'],{'$or':_[_0x97d9('0x28')](_0x415030[_0x97d9('0x31')],function(_0x5236ee){var _0xf48349={};_0xf48349[_0x5236ee]={'$like':'%'+_0x5e7f9a[_0x97d9('0x2e')][_0x97d9('0x37')]+'%'};return _0xf48349;})});}_0x415030=_[_0x97d9('0x38')]({},_0x415030,_0x5e7f9a[_0x97d9('0x3b')]);return _0xf75fd4[_0x97d9('0x98')](_0x415030);}})[_0x97d9('0x22')](function(_0xb7569e){if(_0xb7569e){_0x8bc316=_0xb7569e[_0x97d9('0x43')];if(!_0x5e7f9a[_0x97d9('0x2e')][_0x97d9('0x34')](_0x97d9('0x35'))){_0x415030[_0x97d9('0x1e')]=qs[_0x97d9('0x1e')](_0x5e7f9a['query'][_0x97d9('0x1e')]);_0x415030['offset']=qs[_0x97d9('0x1c')](_0x5e7f9a[_0x97d9('0x2e')][_0x97d9('0x1c')]);}return _0xf75fd4[_0x97d9('0x98')](_0x415030);}})[_0x97d9('0x22')](function(_0x4f4c78){if(_0x4f4c78){return _0x4f4c78?{'count':_0x8bc316,'rows':_0x4f4c78}:null;}})[_0x97d9('0x22')](respondWithResult(_0x87260,null))[_0x97d9('0x40')](handleError(_0x87260,null));};