64f27b31d8bd33d80643b0644f86bdddaeee7e24
[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 _0x13e0=['Mail','Sms','Fax','Openchannel','Whatsapp','Voice','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','emit','Queue:save','findAll','online','voicePause','UserVoiceQueueRt','upsert','interface','SIP/%s','all','UserVoicePrefix','addAgents','spread','removeAgents','Queue:remove','getAgents','filter','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','map','Team','type','key','model','keys','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','rows','show','params','rawAttributes','intersection','includeAll','options','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','transaction','Sequelize','QueryTypes','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','sequelize','SELECT','VoiceQueueId','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','UserFaxQueue','OpenchannelQueueId','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','VoicePrefixId','Teams','send','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','add','ids','removeQueues','remove','Queues','isArray','Chat'];(function(_0x520742,_0xead82f){var _0x47dba2=function(_0x572c6d){while(--_0x572c6d){_0x520742['push'](_0x520742['shift']());}};_0x47dba2(++_0xead82f);}(_0x13e0,0x14e));var _0x013e=function(_0x3d91aa,_0x42b929){_0x3d91aa=_0x3d91aa-0x0;var _0x442eed=_0x13e0[_0x3d91aa];return _0x442eed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x013e('0x0'));var zipdir=require(_0x013e('0x1'));var jsonpatch=require(_0x013e('0x2'));var rp=require(_0x013e('0x3'));var moment=require(_0x013e('0x4'));var BPromise=require(_0x013e('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x013e('0x6'));var csv=require(_0x013e('0x7'));var ejs=require(_0x013e('0x8'));var fs=require('fs');var fs_extra=require(_0x013e('0x9'));var _=require(_0x013e('0xa'));var squel=require(_0x013e('0xb'));var crypto=require(_0x013e('0xc'));var jsforce=require(_0x013e('0xd'));var deskjs=require(_0x013e('0xe'));var toCsv=require(_0x013e('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x013e('0xf'));var qs=require(_0x013e('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x013e('0x11'));var logger=require(_0x013e('0x12'))(_0x013e('0x13'));var utils=require('../../config/utils');var config=require(_0x013e('0x14'));var licenseUtil=require(_0x013e('0x15'));var db=require(_0x013e('0x16'))['db'];config['redis']=_[_0x013e('0x17')](config[_0x013e('0x18')],{'host':_0x013e('0x19'),'port':0x18eb});var socket=require(_0x013e('0x1a'))(new Redis(config[_0x013e('0x18')]));require(_0x013e('0x1b'))[_0x013e('0x1c')](socket);function respondWithStatusCode(_0x4b15e4,_0x1ed369){_0x1ed369=_0x1ed369||0xcc;return function(_0x327523){if(_0x327523){return _0x4b15e4[_0x013e('0x1d')](_0x1ed369);}return _0x4b15e4[_0x013e('0x1e')](_0x1ed369)[_0x013e('0x1f')]();};}function respondWithResult(_0x2f152e,_0x4db7a2){_0x4db7a2=_0x4db7a2||0xc8;return function(_0x3b3b06){if(_0x3b3b06){return _0x2f152e['status'](_0x4db7a2)[_0x013e('0x20')](_0x3b3b06);}};}function respondWithFilteredResult(_0x350137,_0x1ddfe6){return function(_0x1dc163){if(_0x1dc163){var _0x2f16a9=typeof _0x1ddfe6[_0x013e('0x21')]==='undefined'&&typeof _0x1ddfe6[_0x013e('0x22')]==='undefined';var _0x40f3ad=_0x1dc163[_0x013e('0x23')];var _0x1c74e3=_0x2f16a9?0x0:_0x1ddfe6[_0x013e('0x21')];var _0x5bf301=_0x2f16a9?_0x1dc163[_0x013e('0x23')]:_0x1ddfe6[_0x013e('0x21')]+_0x1ddfe6['limit'];var _0x46d4bd;if(_0x5bf301>=_0x40f3ad){_0x5bf301=_0x40f3ad;_0x46d4bd=0xc8;}else{_0x46d4bd=0xce;}_0x350137[_0x013e('0x1e')](_0x46d4bd);return _0x350137[_0x013e('0x24')](_0x013e('0x25'),_0x1c74e3+'-'+_0x5bf301+'/'+_0x40f3ad)[_0x013e('0x20')](_0x1dc163);}return null;};}function patchUpdates(_0x41d859){return function(_0x2e6c79){try{jsonpatch[_0x013e('0x26')](_0x2e6c79,_0x41d859,!![]);}catch(_0x2e3824){return BPromise[_0x013e('0x27')](_0x2e3824);}return _0x2e6c79[_0x013e('0x28')]();};}function saveUpdates(_0x31e2b9,_0x3b0499){return function(_0x411a2c){if(_0x411a2c){return _0x411a2c[_0x013e('0x29')](_0x31e2b9)[_0x013e('0x2a')](function(_0xeb8255){return _0xeb8255;});}return null;};}function handleEntityNotFound(_0x50e562,_0x567d23){return function(_0xfa70d5){if(!_0xfa70d5){_0x50e562[_0x013e('0x1d')](0x194);}return _0xfa70d5;};}function handleError(_0x4264b5,_0x579353){_0x579353=_0x579353||0x1f4;return function(_0x44bfbc){logger[_0x013e('0x2b')](_0x44bfbc[_0x013e('0x2c')]);if(_0x44bfbc[_0x013e('0x2d')]){delete _0x44bfbc[_0x013e('0x2d')];}_0x4264b5[_0x013e('0x1e')](_0x579353)['send'](_0x44bfbc);};}exports[_0x013e('0x2e')]=function(_0x302b05,_0x5dc1e9){var _0x5d5476={},_0x2f9898={},_0xb133cb={'count':0x0,'rows':[]};var _0x3f96a2=_[_0x013e('0x2f')](db[_0x013e('0x30')]['rawAttributes'],function(_0x57ad54){return{'name':_0x57ad54['fieldName'],'type':_0x57ad54[_0x013e('0x31')][_0x013e('0x32')]};});_0x2f9898[_0x013e('0x33')]=_['map'](_0x3f96a2,'name');_0x2f9898['query']=_[_0x013e('0x34')](_0x302b05[_0x013e('0x35')]);_0x2f9898[_0x013e('0x36')]=_['intersection'](_0x2f9898[_0x013e('0x33')],_0x2f9898[_0x013e('0x35')]);_0x5d5476[_0x013e('0x37')]=_['intersection'](_0x2f9898[_0x013e('0x33')],qs[_0x013e('0x38')](_0x302b05[_0x013e('0x35')][_0x013e('0x38')]));_0x5d5476[_0x013e('0x37')]=_0x5d5476[_0x013e('0x37')][_0x013e('0x39')]?_0x5d5476[_0x013e('0x37')]:_0x2f9898['model'];if(!_0x302b05[_0x013e('0x35')][_0x013e('0x3a')](_0x013e('0x3b'))){_0x5d5476[_0x013e('0x22')]=qs[_0x013e('0x22')](_0x302b05[_0x013e('0x35')][_0x013e('0x22')]);_0x5d5476[_0x013e('0x21')]=qs[_0x013e('0x21')](_0x302b05[_0x013e('0x35')][_0x013e('0x21')]);}_0x5d5476[_0x013e('0x3c')]=qs['sort'](_0x302b05[_0x013e('0x35')][_0x013e('0x3d')]);_0x5d5476[_0x013e('0x3e')]=qs[_0x013e('0x36')](_[_0x013e('0x3f')](_0x302b05['query'],_0x2f9898[_0x013e('0x36')]),_0x3f96a2);if(_0x302b05[_0x013e('0x35')]['filter']){_0x5d5476[_0x013e('0x3e')]=_[_0x013e('0x40')](_0x5d5476[_0x013e('0x3e')],{'$or':_[_0x013e('0x2f')](_0x3f96a2,function(_0x3770ff){if(_0x3770ff[_0x013e('0x31')]!==_0x013e('0x41')){var _0x289ca1={};_0x289ca1[_0x3770ff[_0x013e('0x2d')]]={'$like':'%'+_0x302b05[_0x013e('0x35')]['filter']+'%'};return _0x289ca1;}})});}_0x5d5476=_[_0x013e('0x40')]({},_0x5d5476,_0x302b05['options']);var _0x595d1a={'where':_0x5d5476['where']};return db['Team'][_0x013e('0x23')](_0x595d1a)[_0x013e('0x2a')](function(_0x3dfe5d){_0xb133cb[_0x013e('0x23')]=_0x3dfe5d;if(_0x302b05[_0x013e('0x35')]['includeAll']){_0x5d5476['include']=[{'all':!![]}];}return db[_0x013e('0x30')]['findAll'](_0x5d5476);})[_0x013e('0x2a')](function(_0x2243fa){_0xb133cb[_0x013e('0x42')]=_0x2243fa;return _0xb133cb;})[_0x013e('0x2a')](respondWithFilteredResult(_0x5dc1e9,_0x5d5476))['catch'](handleError(_0x5dc1e9,null));};exports[_0x013e('0x43')]=function(_0x2f4606,_0x57b7e5){var _0x46569d={'raw':![],'where':{'id':_0x2f4606[_0x013e('0x44')]['id']}},_0x20eeed={};_0x20eeed[_0x013e('0x33')]=_['keys'](db[_0x013e('0x30')][_0x013e('0x45')]);_0x20eeed['query']=_[_0x013e('0x34')](_0x2f4606['query']);_0x20eeed[_0x013e('0x36')]=_[_0x013e('0x46')](_0x20eeed[_0x013e('0x33')],_0x20eeed[_0x013e('0x35')]);_0x46569d['attributes']=_[_0x013e('0x46')](_0x20eeed[_0x013e('0x33')],qs[_0x013e('0x38')](_0x2f4606[_0x013e('0x35')][_0x013e('0x38')]));_0x46569d[_0x013e('0x37')]=_0x46569d[_0x013e('0x37')][_0x013e('0x39')]?_0x46569d[_0x013e('0x37')]:_0x20eeed['model'];if(_0x2f4606[_0x013e('0x35')][_0x013e('0x47')]){_0x46569d['include']=[{'all':!![]}];}_0x46569d=_[_0x013e('0x40')]({},_0x46569d,_0x2f4606[_0x013e('0x48')]);return db['Team'][_0x013e('0x49')](_0x46569d)[_0x013e('0x2a')](handleEntityNotFound(_0x57b7e5,null))[_0x013e('0x2a')](respondWithResult(_0x57b7e5,null))[_0x013e('0x4a')](handleError(_0x57b7e5,null));};exports[_0x013e('0x4b')]=function(_0x387d40,_0x1bfd78){return db['Team']['create'](_0x387d40[_0x013e('0x4c')],{})[_0x013e('0x2a')](function(_0x5f2182){var _0x3ad80d=_0x387d40[_0x013e('0x4d')]['get']({'plain':!![]});if(!_0x3ad80d)throw new Error(_0x013e('0x4e'));if(_0x3ad80d[_0x013e('0x4f')]===_0x013e('0x4d')){var _0x19f39c=_0x5f2182[_0x013e('0x50')]({'plain':!![]});var _0x33c99d='Teams';return db['UserProfileSection'][_0x013e('0x49')]({'where':{'name':_0x33c99d,'userProfileId':_0x3ad80d[_0x013e('0x51')]},'raw':!![]})['then'](function(_0x5ae8fe){if(_0x5ae8fe&&_0x5ae8fe[_0x013e('0x52')]===0x0){return db[_0x013e('0x53')]['create']({'name':_0x19f39c[_0x013e('0x2d')],'resourceId':_0x19f39c['id'],'type':_0x5ae8fe[_0x013e('0x2d')],'sectionId':_0x5ae8fe['id']},{})['then'](function(){return _0x5f2182;});}else{return _0x5f2182;}})[_0x013e('0x4a')](function(_0x1c12b2){logger[_0x013e('0x2b')](_0x013e('0x54'),_0x1c12b2);throw _0x1c12b2;});}return _0x5f2182;})[_0x013e('0x2a')](respondWithResult(_0x1bfd78,0xc9))['catch'](handleError(_0x1bfd78,null));};exports['update']=function(_0x2a67ac,_0x2f6545){if(_0x2a67ac[_0x013e('0x4c')]['id']){delete _0x2a67ac[_0x013e('0x4c')]['id'];}return db[_0x013e('0x30')][_0x013e('0x49')]({'where':{'id':_0x2a67ac['params']['id']}})[_0x013e('0x2a')](handleEntityNotFound(_0x2f6545,null))[_0x013e('0x2a')](saveUpdates(_0x2a67ac['body'],null))['then'](respondWithResult(_0x2f6545,null))[_0x013e('0x4a')](handleError(_0x2f6545,null));};exports[_0x013e('0x55')]=function(_0x410d99,_0x5862f1){var _0x94ac62=_0x410d99['params']['id'];var _0x36ca60=[];return db['sequelize'][_0x013e('0x56')](function(_0xbbf6){var _0x55a9ab='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x94ac62;return db['sequelize']['query'](_0x55a9ab,{'type':db[_0x013e('0x57')][_0x013e('0x58')]['SELECT'],'raw':!![],'transaction':_0xbbf6})[_0x013e('0x2a')](function(_0x3b1074){_0x36ca60=_[_0x013e('0x2f')](_0x3b1074,function(_0x85f42c){return Number(_0x85f42c[_0x013e('0x59')]);});})[_0x013e('0x2a')](function(){var _0x29bff8=_0x013e('0x5a')+_0x94ac62;return db[_0x013e('0x5b')][_0x013e('0x35')](_0x29bff8,{'type':db[_0x013e('0x57')]['QueryTypes'][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x30d299){var _0x1b2234=_[_0x013e('0x2f')](_0x30d299,function(_0x470913){return Number(_0x470913[_0x013e('0x5d')]);});return db['UserVoiceQueue']['destroy']({'where':{'UserId':{'$in':_0x36ca60},'VoiceQueueId':{'$in':_0x1b2234}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){var _0x213549=_0x013e('0x5e')+_0x94ac62;return db[_0x013e('0x5b')][_0x013e('0x35')](_0x213549,{'type':db['Sequelize'][_0x013e('0x58')][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x12dd2c){var _0x17cb79=_[_0x013e('0x2f')](_0x12dd2c,function(_0x56d0ec){return Number(_0x56d0ec['MailQueueId']);});return db['UserMailQueue'][_0x013e('0x55')]({'where':{'UserId':{'$in':_0x36ca60},'MailQueueId':{'$in':_0x17cb79}},'transaction':_0xbbf6});})['then'](function(){var _0x176f19=_0x013e('0x5f')+_0x94ac62;return db[_0x013e('0x5b')]['query'](_0x176f19,{'type':db[_0x013e('0x57')][_0x013e('0x58')][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})['then'](function(_0x5b6e49){var _0x3ea12b=_[_0x013e('0x2f')](_0x5b6e49,function(_0x1b5e7f){return Number(_0x1b5e7f[_0x013e('0x60')]);});return db[_0x013e('0x61')][_0x013e('0x55')]({'where':{'UserId':{'$in':_0x36ca60},'SmsQueueId':{'$in':_0x3ea12b}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){var _0x37534a=_0x013e('0x62')+_0x94ac62;return db['sequelize'][_0x013e('0x35')](_0x37534a,{'type':db[_0x013e('0x57')][_0x013e('0x58')][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x21b373){var _0x373051=_[_0x013e('0x2f')](_0x21b373,function(_0x58687a){return Number(_0x58687a['ChatQueueId']);});return db[_0x013e('0x63')]['destroy']({'where':{'UserId':{'$in':_0x36ca60},'ChatQueueId':{'$in':_0x373051}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){var _0x5bfbab=_0x013e('0x64')+_0x94ac62;return db[_0x013e('0x5b')][_0x013e('0x35')](_0x5bfbab,{'type':db['Sequelize'][_0x013e('0x58')][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x460cd2){var _0x5d241e=_[_0x013e('0x2f')](_0x460cd2,function(_0x37ddd1){return Number(_0x37ddd1['FaxQueueId']);});return db[_0x013e('0x65')][_0x013e('0x55')]({'where':{'UserId':{'$in':_0x36ca60},'FaxQueueId':{'$in':_0x5d241e}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){var _0xab7ada='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x94ac62;return db[_0x013e('0x5b')]['query'](_0xab7ada,{'type':db[_0x013e('0x57')]['QueryTypes'][_0x013e('0x5c')],'raw':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x22ecf4){var _0x34c924=_['map'](_0x22ecf4,function(_0x41fdfb){return Number(_0x41fdfb[_0x013e('0x66')]);});return db['UserOpenchannelQueue'][_0x013e('0x55')]({'where':{'UserId':{'$in':_0x36ca60},'OpenchannelQueueId':{'$in':_0x34c924}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){var _0x252486='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0x94ac62;return db[_0x013e('0x5b')]['query'](_0x252486,{'type':db[_0x013e('0x57')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0xbbf6});})['then'](function(_0x3444b5){var _0xab972b=_[_0x013e('0x2f')](_0x3444b5,function(_0x147f36){return Number(_0x147f36[_0x013e('0x67')]);});return db[_0x013e('0x68')]['destroy']({'where':{'UserId':{'$in':_0x36ca60},'WhatsappQueueId':{'$in':_0xab972b}},'transaction':_0xbbf6});})[_0x013e('0x2a')](function(){return db[_0x013e('0x69')]['find']({'where':{'TeamId':_0x94ac62}});})['then'](function(_0x20383b){if(_0x20383b===null){return;}return db['UserVoicePrefix'][_0x013e('0x55')]({'where':{'UserId':{'$in':_0x36ca60},'VoicePrefixId':_0x20383b[_0x013e('0x6a')]},'transaction':_0xbbf6});})['then'](function(){return db[_0x013e('0x30')][_0x013e('0x55')]({'where':{'id':_0x94ac62},'cascade':!![],'transaction':_0xbbf6});})[_0x013e('0x2a')](function(_0x3bc3b8){if(_0x3bc3b8===0x0){_0x5862f1[_0x013e('0x1d')](0x194);}else{return db[_0x013e('0x53')]['destroy']({'where':{'type':_0x013e('0x6b'),'resourceId':_0x94ac62},'cascade':!![],'transaction':_0xbbf6})[_0x013e('0x2a')](function(){_0x5862f1['status'](0xcc)['end']();});}})[_0x013e('0x4a')](function(_0x57ff88){_0x5862f1[_0x013e('0x1e')](0x1f4)[_0x013e('0x6c')](_0x57ff88);});});};exports[_0x013e('0x6d')]=function(_0xc52589,_0x241c88,_0x5bc6ed){return db[_0x013e('0x30')][_0x013e('0x6e')]({'where':{'id':_0xc52589[_0x013e('0x44')]['id']}})[_0x013e('0x2a')](handleEntityNotFound(_0x241c88,null))[_0x013e('0x2a')](function(_0x58146f){if(!_0xc52589[_0x013e('0x35')][_0x013e('0x6f')]||!utils[_0x013e('0x70')](_0xc52589['query'][_0x013e('0x6f')])){throw new db[(_0x013e('0x57'))][(_0x013e('0x71'))](_0x013e('0x72'));}var _0x41985c={};var _0x47eff1={};_0x47eff1[_0x013e('0x33')]=_[_0x013e('0x34')](db[_[_0x013e('0x73')](_0xc52589[_0x013e('0x35')]['channel'][_0x013e('0x74')]())+_0x013e('0x75')][_0x013e('0x45')]);_0x47eff1['query']=_[_0x013e('0x34')](_0xc52589['query']);_0x47eff1[_0x013e('0x36')]=_[_0x013e('0x46')](_0x47eff1[_0x013e('0x33')],_0x47eff1[_0x013e('0x35')]);_0x41985c[_0x013e('0x37')]=_[_0x013e('0x46')](_0x47eff1[_0x013e('0x33')],qs[_0x013e('0x38')](_0xc52589[_0x013e('0x35')]['fields']));_0x41985c[_0x013e('0x37')]=_0x41985c[_0x013e('0x37')]['length']?_0x41985c[_0x013e('0x37')]:_0x47eff1['model'];_0x41985c[_0x013e('0x22')]=qs[_0x013e('0x22')](_0xc52589['query']['limit']);_0x41985c['offset']=qs[_0x013e('0x21')](_0xc52589[_0x013e('0x35')][_0x013e('0x21')]);_0x41985c[_0x013e('0x3c')]=qs[_0x013e('0x3d')](_0xc52589[_0x013e('0x35')]['sort']);_0x41985c['where']=qs[_0x013e('0x36')](_[_0x013e('0x3f')](_0xc52589['query'],_0x47eff1[_0x013e('0x36')]));_0x41985c=_[_0x013e('0x40')]({},_0x41985c,_0xc52589[_0x013e('0x48')]);return _0x58146f[_0x013e('0x50')+_[_0x013e('0x73')](_0xc52589[_0x013e('0x35')][_0x013e('0x6f')]['toLowerCase']())+'Queues'](_0x41985c);})[_0x013e('0x2a')](respondWithResult(_0x241c88,null))[_0x013e('0x4a')](handleError(_0x241c88,null));};exports['addQueues']=function(_0x2969f4,_0x4acdfe,_0x4d9e84){return db[_0x013e('0x30')]['findOne']({'where':{'id':_0x2969f4[_0x013e('0x44')]['id']}})[_0x013e('0x2a')](function(_0x8daceb){if(_0x8daceb){if(!_0x2969f4[_0x013e('0x4c')][_0x013e('0x6f')]||!utils[_0x013e('0x70')](_0x2969f4[_0x013e('0x4c')][_0x013e('0x6f')])){throw new db[(_0x013e('0x57'))]['ValidationError'](_0x013e('0x72'));}return _0x8daceb[_0x013e('0x76')+_[_0x013e('0x73')](_0x2969f4[_0x013e('0x4c')][_0x013e('0x6f')][_0x013e('0x74')]())+'Queues'](_0x2969f4[_0x013e('0x4c')][_0x013e('0x77')]);}return null;})[_0x013e('0x2a')](handleEntityNotFound(_0x4acdfe,null))[_0x013e('0x2a')](respondWithStatusCode(_0x4acdfe,null))[_0x013e('0x4a')](handleError(_0x4acdfe,null));};exports[_0x013e('0x78')]=function(_0x1af02a,_0x1a461f,_0x51191f){return db[_0x013e('0x30')][_0x013e('0x6e')]({'where':{'id':_0x1af02a[_0x013e('0x44')]['id']}})['then'](function(_0x4858f9){if(_0x4858f9){if(!_0x1af02a[_0x013e('0x35')]['channel']||!utils[_0x013e('0x70')](_0x1af02a['query']['channel'])){throw new db[(_0x013e('0x57'))][(_0x013e('0x71'))](_0x013e('0x72'));}return _0x4858f9[_0x013e('0x79')+_[_0x013e('0x73')](_0x1af02a[_0x013e('0x35')]['channel'][_0x013e('0x74')]())+_0x013e('0x7a')](_0x1af02a[_0x013e('0x35')]['ids']);}return null;})[_0x013e('0x2a')](handleEntityNotFound(_0x1a461f,null))[_0x013e('0x2a')](respondWithStatusCode(_0x1a461f,null))[_0x013e('0x4a')](handleError(_0x1a461f,null));};exports['addAgents']=function(_0x4debcf,_0x1acc59){var _0x65fcf=_[_0x013e('0x7b')](_0x4debcf[_0x013e('0x4c')][_0x013e('0x77')])?_0x4debcf[_0x013e('0x4c')][_0x013e('0x77')]:[_0x4debcf[_0x013e('0x4c')][_0x013e('0x77')]];var _0x300dbb=_0x4debcf[_0x013e('0x44')]['id'];return db[_0x013e('0x30')]['find']({'where':{'id':_0x300dbb}})[_0x013e('0x2a')](handleEntityNotFound(_0x1acc59,null))['then'](function(_0x5ec1f6){if(_0x5ec1f6){var _0x2c0255=['Voice',_0x013e('0x7c'),_0x013e('0x7d'),_0x013e('0x7e'),_0x013e('0x7f'),_0x013e('0x80'),_0x013e('0x81')];return db[_0x013e('0x5b')]['transaction'](function(_0x4cd5cf){var _0x40992c=_[_0x013e('0x2f')](_0x2c0255,function(_0x1af741){var _0x12dcb5={'attributes':['id',_0x013e('0x2d')]};if(_0x1af741===_0x013e('0x82')){_0x12dcb5['through']={'attributes':[_0x013e('0x83')]};}return _0x5ec1f6['get'+_0x1af741+_0x013e('0x7a')](_0x12dcb5)['then'](function(_0x2e71b4){var _0x9e659d=_[_0x013e('0x2f')](_0x2e71b4,function(_0x2709c5){var _0x3705aa=_[_0x013e('0x2f')](_0x65fcf,function(_0x296030){var _0x4133c2={'where':{'UserId':_0x296030,[_0x1af741+_0x013e('0x84')]:_0x2709c5['id']},'transaction':_0x4cd5cf};if(_0x1af741===_0x013e('0x82')){_0x4133c2[_0x013e('0x17')]={'penalty':_0x2709c5[_0x013e('0x85')][_0x013e('0x83')]};}return db[_0x013e('0x86')+_0x1af741+_0x013e('0x75')][_0x013e('0x87')](_0x4133c2)[_0x013e('0x2a')](function(){socket[_0x013e('0x88')](_0x013e('0x4d')+_0x1af741+_0x013e('0x89'),{'UserId':_0x296030,[_0x1af741+_0x013e('0x84')]:_0x2709c5['id']});if(_0x1af741!==_0x013e('0x82')){return;}return db[_0x013e('0x86')][_0x013e('0x8a')]({'where':{'id':_0x65fcf,'online':0x1},'attributes':['id',_0x013e('0x2d'),_0x013e('0x8b'),_0x013e('0x8c'),'interface'],'raw':!![]})[_0x013e('0x2a')](function(_0x2a53c6){var _0x5a3deb=_['map'](_0x2a53c6,function(_0x4feda2){return db[_0x013e('0x8d')][_0x013e('0x8e')]({'membername':_0x4feda2[_0x013e('0x2d')],'UserId':_0x4feda2['id'],'queue_name':_0x2709c5[_0x013e('0x2d')],'VoiceQueueId':_0x2709c5['id'],'interface':_['isNil'](_0x4feda2[_0x013e('0x8f')])?util['format'](_0x013e('0x90'),_0x4feda2[_0x013e('0x2d')]):_0x4feda2[_0x013e('0x8f')],'paused':_0x4feda2[_0x013e('0x8c')]||![],'penalty':_0x2709c5[_0x013e('0x85')]['penalty']},{'transaction':_0x4cd5cf});});return Promise['all'](_0x5a3deb);});});});return Promise[_0x013e('0x91')](_0x3705aa);});return Promise[_0x013e('0x91')](_0x9e659d);})['then'](function(){return db[_0x013e('0x69')][_0x013e('0x6e')]({'where':{'teamId':_0x300dbb}})[_0x013e('0x2a')](function(_0x4ee2bc){if(_0x4ee2bc){var _0x3294d3=_[_0x013e('0x2f')](_0x65fcf,function(_0x18db82){db[_0x013e('0x92')][_0x013e('0x8e')]({'UserId':_0x18db82,'VoicePrefixId':_0x4ee2bc[_0x013e('0x6a')]});});return Promise[_0x013e('0x91')](_0x3294d3);}});});});return Promise[_0x013e('0x91')](_0x40992c)[_0x013e('0x2a')](function(){return _0x5ec1f6[_0x013e('0x93')](_0x65fcf,{'transaction':_0x4cd5cf})[_0x013e('0x94')](function(_0x19f1d0){return _0x19f1d0;});});});}})[_0x013e('0x2a')](respondWithResult(_0x1acc59,null))[_0x013e('0x4a')](handleError(_0x1acc59,null));};exports['removeAgents']=function(_0x47d32a,_0x3f28e1){var _0x334194=_[_0x013e('0x7b')](_0x47d32a[_0x013e('0x35')][_0x013e('0x77')])?_0x47d32a['query']['ids']:[_0x47d32a[_0x013e('0x35')][_0x013e('0x77')]];var _0x25f4e5=_0x47d32a['params']['id'];return db[_0x013e('0x30')][_0x013e('0x49')]({'where':{'id':_0x25f4e5}})[_0x013e('0x2a')](handleEntityNotFound(_0x3f28e1,null))[_0x013e('0x2a')](function(_0x855d4d){if(_0x855d4d){var _0x1c196b=['Voice','Chat','Mail','Sms',_0x013e('0x7f'),'Openchannel',_0x013e('0x81')];return db['sequelize']['transaction'](function(_0x3b0fd3){var _0x1bf7b8=_['map'](_0x1c196b,function(_0x22d689){var _0xb54aac={'attributes':['id','name']};return _0x855d4d[_0x013e('0x50')+_0x22d689+_0x013e('0x7a')](_0xb54aac)[_0x013e('0x2a')](function(_0x5467e3){var _0x2b5149=_['map'](_0x5467e3,function(_0x590c7b){return _0x590c7b[_0x013e('0x95')](_0x334194,{'transaction':_0x3b0fd3})['then'](function(){var _0x1e2beb=_['map'](_0x334194,function(_0x37113d){socket[_0x013e('0x88')]('user'+_0x22d689+_0x013e('0x96'),{'UserId':Number(_0x37113d),[_0x22d689+_0x013e('0x84')]:_0x590c7b['id']});if(_0x22d689!==_0x013e('0x82')){return;}return db[_0x013e('0x8d')][_0x013e('0x55')]({'where':{'VoiceQueueId':_0x590c7b['id'],'UserId':_0x37113d},'transaction':_0x3b0fd3});});return Promise[_0x013e('0x91')](_0x1e2beb);});});return Promise['all'](_0x2b5149);});});return Promise[_0x013e('0x91')](_0x1bf7b8)['then'](function(){return _0x855d4d['removeAgents'](_0x334194,{'transaction':_0x3b0fd3});})[_0x013e('0x2a')](function(){return db[_0x013e('0x69')][_0x013e('0x6e')]({'where':{'teamId':_0x25f4e5}})['then'](function(_0xb4a479){if(_0xb4a479){var _0x438ca4=_[_0x013e('0x2f')](_0x334194,function(_0x322ad3){db[_0x013e('0x92')][_0x013e('0x55')]({'where':{'UserId':_0x322ad3,'VoicePrefixId':_0xb4a479[_0x013e('0x6a')]}});});return Promise[_0x013e('0x91')](_0x438ca4);}});});});}})[_0x013e('0x2a')](respondWithStatusCode(_0x3f28e1,null))[_0x013e('0x4a')](handleError(_0x3f28e1,null));};exports[_0x013e('0x97')]=function(_0x52beb7,_0x48cf1c,_0x5c3844){var _0x37e6e1={};var _0x37acfb={};var _0x1945f4;var _0x59082e;return db['Team']['findOne']({'where':{'id':_0x52beb7[_0x013e('0x44')]['id']}})['then'](handleEntityNotFound(_0x48cf1c,null))[_0x013e('0x2a')](function(_0x391d11){if(_0x391d11){_0x1945f4=_0x391d11;_0x37acfb[_0x013e('0x33')]=_[_0x013e('0x34')](db[_0x013e('0x86')][_0x013e('0x45')]);_0x37acfb['query']=_[_0x013e('0x34')](_0x52beb7['query']);_0x37acfb[_0x013e('0x36')]=_[_0x013e('0x46')](_0x37acfb[_0x013e('0x33')],_0x37acfb[_0x013e('0x35')]);_0x37e6e1[_0x013e('0x37')]=_[_0x013e('0x46')](_0x37acfb['model'],qs[_0x013e('0x38')](_0x52beb7['query'][_0x013e('0x38')]));_0x37e6e1[_0x013e('0x37')]=_0x37e6e1[_0x013e('0x37')]['length']?_0x37e6e1[_0x013e('0x37')]:_0x37acfb[_0x013e('0x33')];_0x37e6e1[_0x013e('0x3c')]=qs[_0x013e('0x3d')](_0x52beb7[_0x013e('0x35')][_0x013e('0x3d')]);_0x37e6e1[_0x013e('0x3e')]=qs['filters'](_['pick'](_0x52beb7[_0x013e('0x35')],_0x37acfb[_0x013e('0x36')]));if(_0x52beb7['query'][_0x013e('0x98')]){_0x37e6e1[_0x013e('0x3e')]=_[_0x013e('0x40')](_0x37e6e1[_0x013e('0x3e')],{'$or':_[_0x013e('0x2f')](_0x37e6e1[_0x013e('0x37')],function(_0x20d0be){var _0x13ba83={};_0x13ba83[_0x20d0be]={'$like':'%'+_0x52beb7[_0x013e('0x35')]['filter']+'%'};return _0x13ba83;})});}_0x37e6e1=_[_0x013e('0x40')]({},_0x37e6e1,_0x52beb7[_0x013e('0x48')]);return _0x1945f4[_0x013e('0x97')](_0x37e6e1);}})[_0x013e('0x2a')](function(_0x3a2913){if(_0x3a2913){_0x59082e=_0x3a2913[_0x013e('0x39')];if(!_0x52beb7[_0x013e('0x35')][_0x013e('0x3a')]('nolimit')){_0x37e6e1[_0x013e('0x22')]=qs[_0x013e('0x22')](_0x52beb7[_0x013e('0x35')][_0x013e('0x22')]);_0x37e6e1[_0x013e('0x21')]=qs[_0x013e('0x21')](_0x52beb7['query'][_0x013e('0x21')]);}return _0x1945f4[_0x013e('0x97')](_0x37e6e1);}})['then'](function(_0x27911b){if(_0x27911b){return _0x27911b?{'count':_0x59082e,'rows':_0x27911b}:null;}})['then'](respondWithResult(_0x48cf1c,null))[_0x013e('0x4a')](handleError(_0x48cf1c,null));};