Built motion from commit da617fac.|2.6.6
[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 _0xdef5=['ids','removeQueues','findOne','remove','addAgents','isArray','Voice','Sms','Openchannel','Whatsapp','through','penalty','QueueId','User','findOrCreate','emit','Queue:save','findAll','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','TeamVoiceQueue','all','spread','Mail','removeAgents','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./team.socket','status','end','offset','set','Content-Range','json','reject','save','sendStatus','stack','name','index','map','Team','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','sort','pick','filter','merge','where','type','options','count','then','include','rows','catch','show','params','includeAll','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','VoiceQueueId','UserVoiceQueue','destroy','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','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','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','UserProfileResource','send','getQueues','channel','capitalize','toLowerCase','Queue','length','Queues','isValidChannel','ValidationError','Unknown\x20channel'];(function(_0x4dde94,_0x52b903){var _0x30acf7=function(_0x2d0ead){while(--_0x2d0ead){_0x4dde94['push'](_0x4dde94['shift']());}};_0x30acf7(++_0x52b903);}(_0xdef5,0x152));var _0x5def=function(_0x2e7667,_0x154d3a){_0x2e7667=_0x2e7667-0x0;var _0x9219ab=_0xdef5[_0x2e7667];return _0x9219ab;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5def('0x0'));var zipdir=require(_0x5def('0x1'));var jsonpatch=require(_0x5def('0x2'));var rp=require(_0x5def('0x3'));var moment=require('moment');var BPromise=require(_0x5def('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x5def('0x5'));var csv=require('to-csv');var ejs=require(_0x5def('0x6'));var fs=require('fs');var fs_extra=require(_0x5def('0x7'));var _=require(_0x5def('0x8'));var squel=require(_0x5def('0x9'));var crypto=require(_0x5def('0xa'));var jsforce=require(_0x5def('0xb'));var deskjs=require(_0x5def('0xc'));var toCsv=require(_0x5def('0xd'));var querystring=require(_0x5def('0xe'));var Papa=require(_0x5def('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x5def('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5def('0x11'));var logger=require(_0x5def('0x12'))(_0x5def('0x13'));var utils=require(_0x5def('0x14'));var config=require(_0x5def('0x15'));var licenseUtil=require(_0x5def('0x16'));var db=require(_0x5def('0x17'))['db'];config[_0x5def('0x18')]=_[_0x5def('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x5def('0x1a'))(new Redis(config[_0x5def('0x18')]));require(_0x5def('0x1b'))['register'](socket);function respondWithStatusCode(_0x6e22f5,_0x235279){_0x235279=_0x235279||0xcc;return function(_0x4eaead){if(_0x4eaead){return _0x6e22f5['sendStatus'](_0x235279);}return _0x6e22f5[_0x5def('0x1c')](_0x235279)[_0x5def('0x1d')]();};}function respondWithResult(_0x2560a1,_0x1d4a72){_0x1d4a72=_0x1d4a72||0xc8;return function(_0xe6032f){if(_0xe6032f){return _0x2560a1[_0x5def('0x1c')](_0x1d4a72)['json'](_0xe6032f);}};}function respondWithFilteredResult(_0x497e0a,_0x634d33){return function(_0x1578ce){if(_0x1578ce){var _0x4ca19f=typeof _0x634d33[_0x5def('0x1e')]==='undefined'&&typeof _0x634d33['limit']==='undefined';var _0x445299=_0x1578ce['count'];var _0x2a1971=_0x4ca19f?0x0:_0x634d33[_0x5def('0x1e')];var _0x2c3bcb=_0x4ca19f?_0x1578ce['count']:_0x634d33[_0x5def('0x1e')]+_0x634d33['limit'];var _0x46c8b6;if(_0x2c3bcb>=_0x445299){_0x2c3bcb=_0x445299;_0x46c8b6=0xc8;}else{_0x46c8b6=0xce;}_0x497e0a[_0x5def('0x1c')](_0x46c8b6);return _0x497e0a[_0x5def('0x1f')](_0x5def('0x20'),_0x2a1971+'-'+_0x2c3bcb+'/'+_0x445299)[_0x5def('0x21')](_0x1578ce);}return null;};}function patchUpdates(_0x3ec3e8){return function(_0x2b49f7){try{jsonpatch['apply'](_0x2b49f7,_0x3ec3e8,!![]);}catch(_0x75e2e6){return BPromise[_0x5def('0x22')](_0x75e2e6);}return _0x2b49f7[_0x5def('0x23')]();};}function saveUpdates(_0x43c754,_0x3e4098){return function(_0x3c3f2d){if(_0x3c3f2d){return _0x3c3f2d['update'](_0x43c754)['then'](function(_0xbbbae1){return _0xbbbae1;});}return null;};}function handleEntityNotFound(_0x5ce2af,_0x1e692f){return function(_0x514704){if(!_0x514704){_0x5ce2af[_0x5def('0x24')](0x194);}return _0x514704;};}function handleError(_0x5f0aa3,_0x49ded3){_0x49ded3=_0x49ded3||0x1f4;return function(_0x5efc54){logger['error'](_0x5efc54[_0x5def('0x25')]);if(_0x5efc54[_0x5def('0x26')]){delete _0x5efc54[_0x5def('0x26')];}_0x5f0aa3[_0x5def('0x1c')](_0x49ded3)['send'](_0x5efc54);};}exports[_0x5def('0x27')]=function(_0x49d631,_0x3bddbc){var _0x10032c={},_0x39b8ee={},_0x593ef1={'count':0x0,'rows':[]};var _0x823ccf=_[_0x5def('0x28')](db[_0x5def('0x29')][_0x5def('0x2a')],function(_0x11ccda){return{'name':_0x11ccda[_0x5def('0x2b')],'type':_0x11ccda['type'][_0x5def('0x2c')]};});_0x39b8ee[_0x5def('0x2d')]=_[_0x5def('0x28')](_0x823ccf,_0x5def('0x26'));_0x39b8ee[_0x5def('0x2e')]=_[_0x5def('0x2f')](_0x49d631[_0x5def('0x2e')]);_0x39b8ee[_0x5def('0x30')]=_['intersection'](_0x39b8ee[_0x5def('0x2d')],_0x39b8ee['query']);_0x10032c[_0x5def('0x31')]=_[_0x5def('0x32')](_0x39b8ee[_0x5def('0x2d')],qs[_0x5def('0x33')](_0x49d631[_0x5def('0x2e')][_0x5def('0x33')]));_0x10032c['attributes']=_0x10032c[_0x5def('0x31')]['length']?_0x10032c['attributes']:_0x39b8ee[_0x5def('0x2d')];if(!_0x49d631[_0x5def('0x2e')][_0x5def('0x34')](_0x5def('0x35'))){_0x10032c[_0x5def('0x36')]=qs[_0x5def('0x36')](_0x49d631[_0x5def('0x2e')][_0x5def('0x36')]);_0x10032c[_0x5def('0x1e')]=qs[_0x5def('0x1e')](_0x49d631[_0x5def('0x2e')]['offset']);}_0x10032c[_0x5def('0x37')]=qs[_0x5def('0x38')](_0x49d631[_0x5def('0x2e')][_0x5def('0x38')]);_0x10032c['where']=qs[_0x5def('0x30')](_[_0x5def('0x39')](_0x49d631[_0x5def('0x2e')],_0x39b8ee['filters']),_0x823ccf);if(_0x49d631['query'][_0x5def('0x3a')]){_0x10032c['where']=_[_0x5def('0x3b')](_0x10032c[_0x5def('0x3c')],{'$or':_[_0x5def('0x28')](_0x823ccf,function(_0x412ed9){if(_0x412ed9[_0x5def('0x3d')]!=='VIRTUAL'){var _0x2e2ae7={};_0x2e2ae7[_0x412ed9[_0x5def('0x26')]]={'$like':'%'+_0x49d631[_0x5def('0x2e')][_0x5def('0x3a')]+'%'};return _0x2e2ae7;}})});}_0x10032c=_[_0x5def('0x3b')]({},_0x10032c,_0x49d631[_0x5def('0x3e')]);var _0x2aab5e={'where':_0x10032c['where']};return db[_0x5def('0x29')][_0x5def('0x3f')](_0x2aab5e)[_0x5def('0x40')](function(_0x1a7f02){_0x593ef1[_0x5def('0x3f')]=_0x1a7f02;if(_0x49d631['query']['includeAll']){_0x10032c[_0x5def('0x41')]=[{'all':!![]}];}return db['Team']['findAll'](_0x10032c);})[_0x5def('0x40')](function(_0x2e4340){_0x593ef1[_0x5def('0x42')]=_0x2e4340;return _0x593ef1;})[_0x5def('0x40')](respondWithFilteredResult(_0x3bddbc,_0x10032c))[_0x5def('0x43')](handleError(_0x3bddbc,null));};exports[_0x5def('0x44')]=function(_0x1d202c,_0x506e4a){var _0x3f4b87={'raw':![],'where':{'id':_0x1d202c[_0x5def('0x45')]['id']}},_0x4b473c={};_0x4b473c['model']=_[_0x5def('0x2f')](db[_0x5def('0x29')]['rawAttributes']);_0x4b473c[_0x5def('0x2e')]=_[_0x5def('0x2f')](_0x1d202c[_0x5def('0x2e')]);_0x4b473c[_0x5def('0x30')]=_[_0x5def('0x32')](_0x4b473c[_0x5def('0x2d')],_0x4b473c['query']);_0x3f4b87[_0x5def('0x31')]=_[_0x5def('0x32')](_0x4b473c[_0x5def('0x2d')],qs[_0x5def('0x33')](_0x1d202c[_0x5def('0x2e')][_0x5def('0x33')]));_0x3f4b87[_0x5def('0x31')]=_0x3f4b87[_0x5def('0x31')]['length']?_0x3f4b87[_0x5def('0x31')]:_0x4b473c[_0x5def('0x2d')];if(_0x1d202c[_0x5def('0x2e')][_0x5def('0x46')]){_0x3f4b87['include']=[{'all':!![]}];}_0x3f4b87=_[_0x5def('0x3b')]({},_0x3f4b87,_0x1d202c['options']);return db['Team'][_0x5def('0x47')](_0x3f4b87)['then'](handleEntityNotFound(_0x506e4a,null))[_0x5def('0x40')](respondWithResult(_0x506e4a,null))[_0x5def('0x43')](handleError(_0x506e4a,null));};exports[_0x5def('0x48')]=function(_0x46f5ac,_0x140737){return db['Team']['create'](_0x46f5ac['body'],{})[_0x5def('0x40')](function(_0x481dba){var _0x28679d=_0x46f5ac[_0x5def('0x49')][_0x5def('0x4a')]({'plain':!![]});if(!_0x28679d)throw new Error(_0x5def('0x4b'));if(_0x28679d[_0x5def('0x4c')]===_0x5def('0x49')){var _0xdc532b=_0x481dba[_0x5def('0x4a')]({'plain':!![]});var _0x529754=_0x5def('0x4d');return db['UserProfileSection']['find']({'where':{'name':_0x529754,'userProfileId':_0x28679d[_0x5def('0x4e')]},'raw':!![]})['then'](function(_0x5a71a2){if(_0x5a71a2&&_0x5a71a2[_0x5def('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0xdc532b[_0x5def('0x26')],'resourceId':_0xdc532b['id'],'type':_0x5a71a2[_0x5def('0x26')],'sectionId':_0x5a71a2['id']},{})[_0x5def('0x40')](function(){return _0x481dba;});}else{return _0x481dba;}})[_0x5def('0x43')](function(_0x5e5203){logger[_0x5def('0x50')](_0x5def('0x51'),_0x5e5203);throw _0x5e5203;});}return _0x481dba;})[_0x5def('0x40')](respondWithResult(_0x140737,0xc9))[_0x5def('0x43')](handleError(_0x140737,null));};exports[_0x5def('0x52')]=function(_0x5c2f90,_0x2c8e44){if(_0x5c2f90[_0x5def('0x53')]['id']){delete _0x5c2f90[_0x5def('0x53')]['id'];}return db[_0x5def('0x29')][_0x5def('0x47')]({'where':{'id':_0x5c2f90[_0x5def('0x45')]['id']}})[_0x5def('0x40')](handleEntityNotFound(_0x2c8e44,null))[_0x5def('0x40')](saveUpdates(_0x5c2f90[_0x5def('0x53')],null))[_0x5def('0x40')](respondWithResult(_0x2c8e44,null))['catch'](handleError(_0x2c8e44,null));};exports['destroy']=function(_0x52b311,_0x2e0793){var _0x192f77=_0x52b311[_0x5def('0x45')]['id'];var _0x4989ff=[];return db[_0x5def('0x54')][_0x5def('0x55')](function(_0x152f12){var _0x1e544a=_0x5def('0x56')+_0x192f77;return db[_0x5def('0x54')][_0x5def('0x2e')](_0x1e544a,{'type':db[_0x5def('0x57')][_0x5def('0x58')][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12})[_0x5def('0x40')](function(_0x5c3bbb){_0x4989ff=_[_0x5def('0x28')](_0x5c3bbb,function(_0x8b2a4f){return Number(_0x8b2a4f['UserId']);});})[_0x5def('0x40')](function(){var _0x513bd6='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x192f77;return db[_0x5def('0x54')][_0x5def('0x2e')](_0x513bd6,{'type':db[_0x5def('0x57')][_0x5def('0x58')][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x1fc00b){var _0x48d83f=_[_0x5def('0x28')](_0x1fc00b,function(_0xfdfe83){return Number(_0xfdfe83[_0x5def('0x5a')]);});return db[_0x5def('0x5b')][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'VoiceQueueId':{'$in':_0x48d83f}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){var _0x5d4eed=_0x5def('0x5d')+_0x192f77;return db[_0x5def('0x54')]['query'](_0x5d4eed,{'type':db['Sequelize']['QueryTypes'][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x2e15ad){var _0x4d2bec=_[_0x5def('0x28')](_0x2e15ad,function(_0xacc80d){return Number(_0xacc80d['MailQueueId']);});return db[_0x5def('0x5e')][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'MailQueueId':{'$in':_0x4d2bec}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){var _0x3d0f56=_0x5def('0x5f')+_0x192f77;return db['sequelize'][_0x5def('0x2e')](_0x3d0f56,{'type':db[_0x5def('0x57')][_0x5def('0x58')][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x34243f){var _0x458ec6=_[_0x5def('0x28')](_0x34243f,function(_0x126b25){return Number(_0x126b25[_0x5def('0x60')]);});return db['UserSmsQueue'][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'SmsQueueId':{'$in':_0x458ec6}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){var _0x2a98cb=_0x5def('0x61')+_0x192f77;return db[_0x5def('0x54')][_0x5def('0x2e')](_0x2a98cb,{'type':db[_0x5def('0x57')]['QueryTypes'][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x813e48){var _0x3a2077=_['map'](_0x813e48,function(_0x3d56d0){return Number(_0x3d56d0[_0x5def('0x62')]);});return db['UserChatQueue'][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'ChatQueueId':{'$in':_0x3a2077}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){var _0x25db55=_0x5def('0x63')+_0x192f77;return db[_0x5def('0x54')][_0x5def('0x2e')](_0x25db55,{'type':db['Sequelize']['QueryTypes'][_0x5def('0x59')],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x392bdd){var _0xa4ac8f=_['map'](_0x392bdd,function(_0x15ce64){return Number(_0x15ce64['FaxQueueId']);});return db['UserFaxQueue'][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'FaxQueueId':{'$in':_0xa4ac8f}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){var _0x3e1d6a=_0x5def('0x64')+_0x192f77;return db['sequelize'][_0x5def('0x2e')](_0x3e1d6a,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x3520c2){var _0x39f2ef=_[_0x5def('0x28')](_0x3520c2,function(_0x1d470b){return Number(_0x1d470b[_0x5def('0x65')]);});return db[_0x5def('0x66')][_0x5def('0x5c')]({'where':{'UserId':{'$in':_0x4989ff},'OpenchannelQueueId':{'$in':_0x39f2ef}},'transaction':_0x152f12});})['then'](function(){var _0x50fc26=_0x5def('0x67')+_0x192f77;return db[_0x5def('0x54')][_0x5def('0x2e')](_0x50fc26,{'type':db[_0x5def('0x57')][_0x5def('0x58')]['SELECT'],'raw':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x5c04fe){var _0x107856=_[_0x5def('0x28')](_0x5c04fe,function(_0xf16afc){return Number(_0xf16afc[_0x5def('0x68')]);});return db[_0x5def('0x69')]['destroy']({'where':{'UserId':{'$in':_0x4989ff},'WhatsappQueueId':{'$in':_0x107856}},'transaction':_0x152f12});})[_0x5def('0x40')](function(){return db[_0x5def('0x6a')][_0x5def('0x47')]({'where':{'TeamId':_0x192f77}});})[_0x5def('0x40')](function(_0x25aef0){if(_0x25aef0===null){return;}return db[_0x5def('0x6b')]['destroy']({'where':{'UserId':{'$in':_0x4989ff},'VoicePrefixId':_0x25aef0[_0x5def('0x6c')]},'transaction':_0x152f12});})[_0x5def('0x40')](function(){return db[_0x5def('0x29')][_0x5def('0x5c')]({'where':{'id':_0x192f77},'cascade':!![],'transaction':_0x152f12});})[_0x5def('0x40')](function(_0x560c25){if(_0x560c25===0x0){_0x2e0793['sendStatus'](0x194);}else{return db[_0x5def('0x6d')][_0x5def('0x5c')]({'where':{'type':_0x5def('0x4d'),'resourceId':_0x192f77},'cascade':!![],'transaction':_0x152f12})[_0x5def('0x40')](function(){_0x2e0793[_0x5def('0x1c')](0xcc)['end']();});}})[_0x5def('0x43')](function(_0x456ed0){_0x2e0793[_0x5def('0x1c')](0x1f4)[_0x5def('0x6e')](_0x456ed0);});});};exports[_0x5def('0x6f')]=function(_0x2a2406,_0x4482fe,_0x290c50){return db[_0x5def('0x29')]['findOne']({'where':{'id':_0x2a2406['params']['id']}})['then'](handleEntityNotFound(_0x4482fe,null))[_0x5def('0x40')](function(_0x347183){if(!_0x2a2406[_0x5def('0x2e')][_0x5def('0x70')]||!utils['isValidChannel'](_0x2a2406['query'][_0x5def('0x70')])){throw new db['Sequelize']['ValidationError']('Unknown\x20channel');}var _0x1098cd={};var _0x3ce2ba={};_0x3ce2ba[_0x5def('0x2d')]=_[_0x5def('0x2f')](db[_[_0x5def('0x71')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x70')][_0x5def('0x72')]())+_0x5def('0x73')][_0x5def('0x2a')]);_0x3ce2ba['query']=_[_0x5def('0x2f')](_0x2a2406[_0x5def('0x2e')]);_0x3ce2ba[_0x5def('0x30')]=_[_0x5def('0x32')](_0x3ce2ba[_0x5def('0x2d')],_0x3ce2ba[_0x5def('0x2e')]);_0x1098cd[_0x5def('0x31')]=_[_0x5def('0x32')](_0x3ce2ba[_0x5def('0x2d')],qs[_0x5def('0x33')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x33')]));_0x1098cd[_0x5def('0x31')]=_0x1098cd[_0x5def('0x31')][_0x5def('0x74')]?_0x1098cd[_0x5def('0x31')]:_0x3ce2ba[_0x5def('0x2d')];_0x1098cd[_0x5def('0x36')]=qs[_0x5def('0x36')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x36')]);_0x1098cd['offset']=qs[_0x5def('0x1e')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x1e')]);_0x1098cd[_0x5def('0x37')]=qs[_0x5def('0x38')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x38')]);_0x1098cd['where']=qs[_0x5def('0x30')](_['pick'](_0x2a2406['query'],_0x3ce2ba['filters']));_0x1098cd=_[_0x5def('0x3b')]({},_0x1098cd,_0x2a2406[_0x5def('0x3e')]);return _0x347183[_0x5def('0x4a')+_[_0x5def('0x71')](_0x2a2406[_0x5def('0x2e')][_0x5def('0x70')][_0x5def('0x72')]())+_0x5def('0x75')](_0x1098cd);})[_0x5def('0x40')](respondWithResult(_0x4482fe,null))['catch'](handleError(_0x4482fe,null));};exports['addQueues']=function(_0x2efb24,_0x13a4cd,_0x4a6e2f){return db['Team']['findOne']({'where':{'id':_0x2efb24[_0x5def('0x45')]['id']}})[_0x5def('0x40')](function(_0x26ff81){if(_0x26ff81){if(!_0x2efb24['body'][_0x5def('0x70')]||!utils[_0x5def('0x76')](_0x2efb24['body'][_0x5def('0x70')])){throw new db['Sequelize'][(_0x5def('0x77'))](_0x5def('0x78'));}return _0x26ff81['add'+_[_0x5def('0x71')](_0x2efb24[_0x5def('0x53')][_0x5def('0x70')]['toLowerCase']())+'Queues'](_0x2efb24[_0x5def('0x53')][_0x5def('0x79')]);}return null;})[_0x5def('0x40')](handleEntityNotFound(_0x13a4cd,null))[_0x5def('0x40')](respondWithStatusCode(_0x13a4cd,null))[_0x5def('0x43')](handleError(_0x13a4cd,null));};exports[_0x5def('0x7a')]=function(_0x467990,_0x7de522,_0x2301ac){return db[_0x5def('0x29')][_0x5def('0x7b')]({'where':{'id':_0x467990[_0x5def('0x45')]['id']}})[_0x5def('0x40')](function(_0x45b3f4){if(_0x45b3f4){if(!_0x467990[_0x5def('0x2e')][_0x5def('0x70')]||!utils[_0x5def('0x76')](_0x467990['query']['channel'])){throw new db[(_0x5def('0x57'))][(_0x5def('0x77'))](_0x5def('0x78'));}return _0x45b3f4[_0x5def('0x7c')+_['capitalize'](_0x467990['query'][_0x5def('0x70')][_0x5def('0x72')]())+_0x5def('0x75')](_0x467990[_0x5def('0x2e')][_0x5def('0x79')]);}return null;})[_0x5def('0x40')](handleEntityNotFound(_0x7de522,null))['then'](respondWithStatusCode(_0x7de522,null))[_0x5def('0x43')](handleError(_0x7de522,null));};exports[_0x5def('0x7d')]=function(_0x21b18d,_0x5d7a5f){var _0xa1cce3=_[_0x5def('0x7e')](_0x21b18d['body'][_0x5def('0x79')])?_0x21b18d[_0x5def('0x53')]['ids']:[_0x21b18d[_0x5def('0x53')][_0x5def('0x79')]];var _0x40c844=_0x21b18d['params']['id'];return db['Team'][_0x5def('0x47')]({'where':{'id':_0x40c844}})[_0x5def('0x40')](handleEntityNotFound(_0x5d7a5f,null))[_0x5def('0x40')](function(_0x15fe65){if(_0x15fe65){var _0xe39ad6=[_0x5def('0x7f'),'Chat','Mail',_0x5def('0x80'),'Fax',_0x5def('0x81'),_0x5def('0x82')];return db[_0x5def('0x54')][_0x5def('0x55')](function(_0x9453de){var _0x405692=_[_0x5def('0x28')](_0xe39ad6,function(_0x11b3fb){var _0x5969be={'attributes':['id',_0x5def('0x26')]};if(_0x11b3fb===_0x5def('0x7f')){_0x5969be[_0x5def('0x83')]={'attributes':[_0x5def('0x84')]};}return _0x15fe65[_0x5def('0x4a')+_0x11b3fb+'Queues'](_0x5969be)[_0x5def('0x40')](function(_0xb41bc0){var _0x133d74=_[_0x5def('0x28')](_0xb41bc0,function(_0x464439){var _0x493f1c=_[_0x5def('0x28')](_0xa1cce3,function(_0x5e5e11){var _0xccf618={'where':{'UserId':_0x5e5e11,[_0x11b3fb+_0x5def('0x85')]:_0x464439['id']},'transaction':_0x9453de};if(_0x11b3fb===_0x5def('0x7f')){_0xccf618[_0x5def('0x19')]={'penalty':_0x464439['TeamVoiceQueue']['penalty']};}return db[_0x5def('0x86')+_0x11b3fb+_0x5def('0x73')][_0x5def('0x87')](_0xccf618)['then'](function(){socket[_0x5def('0x88')](_0x5def('0x49')+_0x11b3fb+_0x5def('0x89'),{'UserId':_0x5e5e11,[_0x11b3fb+'QueueId']:_0x464439['id']});if(_0x11b3fb!==_0x5def('0x7f')){return;}return db[_0x5def('0x86')][_0x5def('0x8a')]({'where':{'id':_0xa1cce3,'online':0x1},'attributes':['id',_0x5def('0x26'),_0x5def('0x8b'),_0x5def('0x8c'),_0x5def('0x8d')],'raw':!![]})[_0x5def('0x40')](function(_0x34f291){var _0x4bd24a=_['map'](_0x34f291,function(_0x5945c2){return db[_0x5def('0x8e')][_0x5def('0x8f')]({'membername':_0x5945c2[_0x5def('0x26')],'UserId':_0x5945c2['id'],'queue_name':_0x464439[_0x5def('0x26')],'VoiceQueueId':_0x464439['id'],'interface':_[_0x5def('0x90')](_0x5945c2[_0x5def('0x8d')])?util[_0x5def('0x91')](_0x5def('0x92'),_0x5945c2[_0x5def('0x26')]):_0x5945c2[_0x5def('0x8d')],'paused':_0x5945c2['voicePause']||![],'penalty':_0x464439[_0x5def('0x93')][_0x5def('0x84')]},{'transaction':_0x9453de});});return Promise[_0x5def('0x94')](_0x4bd24a);});});});return Promise[_0x5def('0x94')](_0x493f1c);});return Promise[_0x5def('0x94')](_0x133d74);})[_0x5def('0x40')](function(){return db[_0x5def('0x6a')]['findOne']({'where':{'teamId':_0x40c844}})[_0x5def('0x40')](function(_0x102c90){if(_0x102c90){var _0x34cafa=_[_0x5def('0x28')](_0xa1cce3,function(_0x45df0a){db[_0x5def('0x6b')][_0x5def('0x8f')]({'UserId':_0x45df0a,'VoicePrefixId':_0x102c90[_0x5def('0x6c')]});});return Promise[_0x5def('0x94')](_0x34cafa);}});});});return Promise[_0x5def('0x94')](_0x405692)[_0x5def('0x40')](function(){return _0x15fe65[_0x5def('0x7d')](_0xa1cce3,{'transaction':_0x9453de})[_0x5def('0x95')](function(_0x12dd90){return _0x12dd90;});});});}})['then'](respondWithResult(_0x5d7a5f,null))[_0x5def('0x43')](handleError(_0x5d7a5f,null));};exports['removeAgents']=function(_0x170aa5,_0x9f9251){var _0x50d811=_[_0x5def('0x7e')](_0x170aa5[_0x5def('0x2e')][_0x5def('0x79')])?_0x170aa5[_0x5def('0x2e')][_0x5def('0x79')]:[_0x170aa5[_0x5def('0x2e')][_0x5def('0x79')]];var _0x1b5cc7=_0x170aa5[_0x5def('0x45')]['id'];return db[_0x5def('0x29')][_0x5def('0x47')]({'where':{'id':_0x1b5cc7}})[_0x5def('0x40')](handleEntityNotFound(_0x9f9251,null))[_0x5def('0x40')](function(_0xfcf447){if(_0xfcf447){var _0x50f482=['Voice','Chat',_0x5def('0x96'),_0x5def('0x80'),'Fax',_0x5def('0x81'),_0x5def('0x82')];return db[_0x5def('0x54')]['transaction'](function(_0x4c9148){var _0x26f932=_[_0x5def('0x28')](_0x50f482,function(_0xd53286){var _0x5514f8={'attributes':['id','name']};return _0xfcf447[_0x5def('0x4a')+_0xd53286+_0x5def('0x75')](_0x5514f8)[_0x5def('0x40')](function(_0x136f68){var _0x216bfb=_['map'](_0x136f68,function(_0x2be522){return _0x2be522[_0x5def('0x97')](_0x50d811,{'transaction':_0x4c9148})[_0x5def('0x40')](function(){var _0x2c2c4a=_[_0x5def('0x28')](_0x50d811,function(_0x208565){socket[_0x5def('0x88')](_0x5def('0x49')+_0xd53286+'Queue:remove',{'UserId':Number(_0x208565),[_0xd53286+_0x5def('0x85')]:_0x2be522['id']});if(_0xd53286!==_0x5def('0x7f')){return;}return db[_0x5def('0x8e')]['destroy']({'where':{'VoiceQueueId':_0x2be522['id'],'UserId':_0x208565},'transaction':_0x4c9148});});return Promise[_0x5def('0x94')](_0x2c2c4a);});});return Promise[_0x5def('0x94')](_0x216bfb);});});return Promise[_0x5def('0x94')](_0x26f932)['then'](function(){return _0xfcf447[_0x5def('0x97')](_0x50d811,{'transaction':_0x4c9148});})['then'](function(){return db[_0x5def('0x6a')][_0x5def('0x7b')]({'where':{'teamId':_0x1b5cc7}})['then'](function(_0x403b18){if(_0x403b18){var _0x49aa19=_[_0x5def('0x28')](_0x50d811,function(_0x39d3a0){db['UserVoicePrefix'][_0x5def('0x5c')]({'where':{'UserId':_0x39d3a0,'VoicePrefixId':_0x403b18[_0x5def('0x6c')]}});});return Promise[_0x5def('0x94')](_0x49aa19);}});});});}})['then'](respondWithStatusCode(_0x9f9251,null))[_0x5def('0x43')](handleError(_0x9f9251,null));};exports[_0x5def('0x98')]=function(_0x99c5ed,_0x110da3,_0x4dc101){var _0x34abce={};var _0x31232c={};var _0x3bafce;var _0x1019ee;return db['Team']['findOne']({'where':{'id':_0x99c5ed[_0x5def('0x45')]['id']}})[_0x5def('0x40')](handleEntityNotFound(_0x110da3,null))[_0x5def('0x40')](function(_0x375ba9){if(_0x375ba9){_0x3bafce=_0x375ba9;_0x31232c[_0x5def('0x2d')]=_['keys'](db[_0x5def('0x86')][_0x5def('0x2a')]);_0x31232c[_0x5def('0x2e')]=_[_0x5def('0x2f')](_0x99c5ed[_0x5def('0x2e')]);_0x31232c['filters']=_[_0x5def('0x32')](_0x31232c[_0x5def('0x2d')],_0x31232c['query']);_0x34abce[_0x5def('0x31')]=_[_0x5def('0x32')](_0x31232c[_0x5def('0x2d')],qs['fields'](_0x99c5ed[_0x5def('0x2e')][_0x5def('0x33')]));_0x34abce[_0x5def('0x31')]=_0x34abce[_0x5def('0x31')][_0x5def('0x74')]?_0x34abce[_0x5def('0x31')]:_0x31232c[_0x5def('0x2d')];_0x34abce[_0x5def('0x37')]=qs[_0x5def('0x38')](_0x99c5ed[_0x5def('0x2e')]['sort']);_0x34abce[_0x5def('0x3c')]=qs[_0x5def('0x30')](_[_0x5def('0x39')](_0x99c5ed[_0x5def('0x2e')],_0x31232c[_0x5def('0x30')]));if(_0x99c5ed[_0x5def('0x2e')]['filter']){_0x34abce[_0x5def('0x3c')]=_[_0x5def('0x3b')](_0x34abce['where'],{'$or':_[_0x5def('0x28')](_0x34abce['attributes'],function(_0x7e5518){var _0x45b3f8={};_0x45b3f8[_0x7e5518]={'$like':'%'+_0x99c5ed['query'][_0x5def('0x3a')]+'%'};return _0x45b3f8;})});}_0x34abce=_[_0x5def('0x3b')]({},_0x34abce,_0x99c5ed[_0x5def('0x3e')]);return _0x3bafce[_0x5def('0x98')](_0x34abce);}})[_0x5def('0x40')](function(_0x250e4a){if(_0x250e4a){_0x1019ee=_0x250e4a['length'];if(!_0x99c5ed[_0x5def('0x2e')][_0x5def('0x34')]('nolimit')){_0x34abce[_0x5def('0x36')]=qs['limit'](_0x99c5ed['query']['limit']);_0x34abce[_0x5def('0x1e')]=qs[_0x5def('0x1e')](_0x99c5ed[_0x5def('0x2e')][_0x5def('0x1e')]);}return _0x3bafce[_0x5def('0x98')](_0x34abce);}})[_0x5def('0x40')](function(_0x1bdde5){if(_0x1bdde5){return _0x1bdde5?{'count':_0x1019ee,'rows':_0x1bdde5}:null;}})['then'](respondWithResult(_0x110da3,null))['catch'](handleError(_0x110da3,null));};