60ca22541c7c025bc57db956a02cce3ff186b430
[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 _0x55c8=['stack','name','map','Team','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','rows','params','fields','includeAll','find','body','user','get','role','Teams','userProfileId','UserProfileResource','create','catch','update','destroy','sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','Sequelize','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','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','UserFaxQueue','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','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','sendStatus','send','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queues','addQueues','add','ids','removeQueues','remove','addAgents','isArray','Voice','Chat','Mail','Fax','Openchannel','Whatsapp','transaction','penalty','User','Queue','findOrCreate','emit','Queue:save','findAll','online','voicePause','interface','UserVoiceQueueRt','isNil','format','TeamVoiceQueue','all','removeAgents','Sms','Queue:remove','QueueId','getAgents','eml-format','rimraf','zip-dir','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','status','offset','undefined','count','set','Content-Range','json','apply','reject','save','then','error'];(function(_0x84c5eb,_0x527699){var _0x20f7fd=function(_0x5eabf4){while(--_0x5eabf4){_0x84c5eb['push'](_0x84c5eb['shift']());}};_0x20f7fd(++_0x527699);}(_0x55c8,0x70));var _0x855c=function(_0x23d43a,_0x36ab05){_0x23d43a=_0x23d43a-0x0;var _0x441271=_0x55c8[_0x23d43a];return _0x441271;};'use strict';var emlformat=require(_0x855c('0x0'));var rimraf=require(_0x855c('0x1'));var zipdir=require(_0x855c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x855c('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x855c('0x4'));var sox=require(_0x855c('0x5'));var csv=require(_0x855c('0x6'));var ejs=require(_0x855c('0x7'));var fs=require('fs');var fs_extra=require(_0x855c('0x8'));var _=require(_0x855c('0x9'));var squel=require('squel');var crypto=require(_0x855c('0xa'));var jsforce=require(_0x855c('0xb'));var deskjs=require(_0x855c('0xc'));var toCsv=require('to-csv');var querystring=require(_0x855c('0xd'));var Papa=require(_0x855c('0xe'));var Redis=require(_0x855c('0xf'));var authService=require(_0x855c('0x10'));var qs=require(_0x855c('0x11'));var as=require(_0x855c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x855c('0x13'))(_0x855c('0x14'));var utils=require(_0x855c('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x855c('0x16'));var db=require('../../mysqldb')['db'];config[_0x855c('0x17')]=_[_0x855c('0x18')](config[_0x855c('0x17')],{'host':_0x855c('0x19'),'port':0x18eb});var socket=require(_0x855c('0x1a'))(new Redis(config[_0x855c('0x17')]));require('./team.socket')[_0x855c('0x1b')](socket);function respondWithStatusCode(_0x40cff9,_0x30b5cd){_0x30b5cd=_0x30b5cd||0xcc;return function(_0x35ffb5){if(_0x35ffb5){return _0x40cff9['sendStatus'](_0x30b5cd);}return _0x40cff9[_0x855c('0x1c')](_0x30b5cd)['end']();};}function respondWithResult(_0x974bc6,_0x381fa2){_0x381fa2=_0x381fa2||0xc8;return function(_0x5068da){if(_0x5068da){return _0x974bc6[_0x855c('0x1c')](_0x381fa2)['json'](_0x5068da);}};}function respondWithFilteredResult(_0x100c11,_0x54924b){return function(_0x4f5d3e){if(_0x4f5d3e){var _0x64e455=typeof _0x54924b[_0x855c('0x1d')]===_0x855c('0x1e')&&typeof _0x54924b['limit']===_0x855c('0x1e');var _0x31d5b2=_0x4f5d3e[_0x855c('0x1f')];var _0x18686e=_0x64e455?0x0:_0x54924b[_0x855c('0x1d')];var _0x19d7ce=_0x64e455?_0x4f5d3e['count']:_0x54924b['offset']+_0x54924b['limit'];var _0x135902;if(_0x19d7ce>=_0x31d5b2){_0x19d7ce=_0x31d5b2;_0x135902=0xc8;}else{_0x135902=0xce;}_0x100c11[_0x855c('0x1c')](_0x135902);return _0x100c11[_0x855c('0x20')](_0x855c('0x21'),_0x18686e+'-'+_0x19d7ce+'/'+_0x31d5b2)[_0x855c('0x22')](_0x4f5d3e);}return null;};}function patchUpdates(_0x564d6d){return function(_0x61562e){try{jsonpatch[_0x855c('0x23')](_0x61562e,_0x564d6d,!![]);}catch(_0x3ff433){return BPromise[_0x855c('0x24')](_0x3ff433);}return _0x61562e[_0x855c('0x25')]();};}function saveUpdates(_0xc81d51,_0x5e5e47){return function(_0x2b40c2){if(_0x2b40c2){return _0x2b40c2['update'](_0xc81d51)[_0x855c('0x26')](function(_0x12a073){return _0x12a073;});}return null;};}function handleEntityNotFound(_0x324bc9,_0x4ae415){return function(_0x3233d4){if(!_0x3233d4){_0x324bc9['sendStatus'](0x194);}return _0x3233d4;};}function handleError(_0x3ec36a,_0x19bf53){_0x19bf53=_0x19bf53||0x1f4;return function(_0x12ffd2){logger[_0x855c('0x27')](_0x12ffd2[_0x855c('0x28')]);if(_0x12ffd2[_0x855c('0x29')]){delete _0x12ffd2[_0x855c('0x29')];}_0x3ec36a['status'](_0x19bf53)['send'](_0x12ffd2);};}exports['index']=function(_0x461784,_0x1f6940){var _0x13c736={},_0x51f6bc={},_0x1f66e4={'count':0x0,'rows':[]};var _0x469fe8=_[_0x855c('0x2a')](db[_0x855c('0x2b')][_0x855c('0x2c')],function(_0x226d2a){return{'name':_0x226d2a[_0x855c('0x2d')],'type':_0x226d2a[_0x855c('0x2e')]['key']};});_0x51f6bc[_0x855c('0x2f')]=_[_0x855c('0x2a')](_0x469fe8,_0x855c('0x29'));_0x51f6bc[_0x855c('0x30')]=_[_0x855c('0x31')](_0x461784[_0x855c('0x30')]);_0x51f6bc[_0x855c('0x32')]=_[_0x855c('0x33')](_0x51f6bc['model'],_0x51f6bc[_0x855c('0x30')]);_0x13c736[_0x855c('0x34')]=_['intersection'](_0x51f6bc[_0x855c('0x2f')],qs['fields'](_0x461784['query']['fields']));_0x13c736['attributes']=_0x13c736[_0x855c('0x34')][_0x855c('0x35')]?_0x13c736[_0x855c('0x34')]:_0x51f6bc['model'];if(!_0x461784[_0x855c('0x30')][_0x855c('0x36')](_0x855c('0x37'))){_0x13c736['limit']=qs[_0x855c('0x38')](_0x461784[_0x855c('0x30')][_0x855c('0x38')]);_0x13c736[_0x855c('0x1d')]=qs[_0x855c('0x1d')](_0x461784[_0x855c('0x30')]['offset']);}_0x13c736[_0x855c('0x39')]=qs['sort'](_0x461784['query'][_0x855c('0x3a')]);_0x13c736[_0x855c('0x3b')]=qs[_0x855c('0x32')](_[_0x855c('0x3c')](_0x461784['query'],_0x51f6bc[_0x855c('0x32')]),_0x469fe8);if(_0x461784[_0x855c('0x30')][_0x855c('0x3d')]){_0x13c736[_0x855c('0x3b')]=_['merge'](_0x13c736['where'],{'$or':_[_0x855c('0x2a')](_0x469fe8,function(_0x58a9b3){if(_0x58a9b3[_0x855c('0x2e')]!==_0x855c('0x3e')){var _0x5f12a0={};_0x5f12a0[_0x58a9b3[_0x855c('0x29')]]={'$like':'%'+_0x461784[_0x855c('0x30')][_0x855c('0x3d')]+'%'};return _0x5f12a0;}})});}_0x13c736=_[_0x855c('0x3f')]({},_0x13c736,_0x461784[_0x855c('0x40')]);var _0x1e3b35={'where':_0x13c736[_0x855c('0x3b')]};return db[_0x855c('0x2b')][_0x855c('0x1f')](_0x1e3b35)[_0x855c('0x26')](function(_0x5b7cf3){_0x1f66e4[_0x855c('0x1f')]=_0x5b7cf3;if(_0x461784[_0x855c('0x30')]['includeAll']){_0x13c736[_0x855c('0x41')]=[{'all':!![]}];}return db[_0x855c('0x2b')]['findAll'](_0x13c736);})['then'](function(_0x3211df){_0x1f66e4[_0x855c('0x42')]=_0x3211df;return _0x1f66e4;})['then'](respondWithFilteredResult(_0x1f6940,_0x13c736))['catch'](handleError(_0x1f6940,null));};exports['show']=function(_0x4f5470,_0x442658){var _0x48b0e6={'raw':![],'where':{'id':_0x4f5470[_0x855c('0x43')]['id']}},_0x453877={};_0x453877[_0x855c('0x2f')]=_[_0x855c('0x31')](db[_0x855c('0x2b')][_0x855c('0x2c')]);_0x453877['query']=_['keys'](_0x4f5470[_0x855c('0x30')]);_0x453877[_0x855c('0x32')]=_[_0x855c('0x33')](_0x453877['model'],_0x453877[_0x855c('0x30')]);_0x48b0e6['attributes']=_[_0x855c('0x33')](_0x453877['model'],qs['fields'](_0x4f5470[_0x855c('0x30')][_0x855c('0x44')]));_0x48b0e6[_0x855c('0x34')]=_0x48b0e6[_0x855c('0x34')][_0x855c('0x35')]?_0x48b0e6[_0x855c('0x34')]:_0x453877[_0x855c('0x2f')];if(_0x4f5470[_0x855c('0x30')][_0x855c('0x45')]){_0x48b0e6[_0x855c('0x41')]=[{'all':!![]}];}_0x48b0e6=_[_0x855c('0x3f')]({},_0x48b0e6,_0x4f5470[_0x855c('0x40')]);return db['Team'][_0x855c('0x46')](_0x48b0e6)[_0x855c('0x26')](handleEntityNotFound(_0x442658,null))[_0x855c('0x26')](respondWithResult(_0x442658,null))['catch'](handleError(_0x442658,null));};exports['create']=function(_0x37fb05,_0x84738d){return db[_0x855c('0x2b')]['create'](_0x37fb05[_0x855c('0x47')],{})['then'](function(_0x59a6c1){var _0x4b757f=_0x37fb05[_0x855c('0x48')][_0x855c('0x49')]({'plain':!![]});if(!_0x4b757f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b757f[_0x855c('0x4a')]===_0x855c('0x48')){var _0x2c22c7=_0x59a6c1['get']({'plain':!![]});var _0x5b8651=_0x855c('0x4b');return db['UserProfileSection']['find']({'where':{'name':_0x5b8651,'userProfileId':_0x4b757f[_0x855c('0x4c')]},'raw':!![]})[_0x855c('0x26')](function(_0x303831){if(_0x303831&&_0x303831['autoAssociation']===0x0){return db[_0x855c('0x4d')][_0x855c('0x4e')]({'name':_0x2c22c7['name'],'resourceId':_0x2c22c7['id'],'type':_0x303831[_0x855c('0x29')],'sectionId':_0x303831['id']},{})['then'](function(){return _0x59a6c1;});}else{return _0x59a6c1;}})[_0x855c('0x4f')](function(_0x3f3b17){logger[_0x855c('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f3b17);throw _0x3f3b17;});}return _0x59a6c1;})[_0x855c('0x26')](respondWithResult(_0x84738d,0xc9))[_0x855c('0x4f')](handleError(_0x84738d,null));};exports[_0x855c('0x50')]=function(_0xbee9c7,_0x11a580){if(_0xbee9c7[_0x855c('0x47')]['id']){delete _0xbee9c7[_0x855c('0x47')]['id'];}return db[_0x855c('0x2b')][_0x855c('0x46')]({'where':{'id':_0xbee9c7[_0x855c('0x43')]['id']}})[_0x855c('0x26')](handleEntityNotFound(_0x11a580,null))[_0x855c('0x26')](saveUpdates(_0xbee9c7[_0x855c('0x47')],null))['then'](respondWithResult(_0x11a580,null))[_0x855c('0x4f')](handleError(_0x11a580,null));};exports[_0x855c('0x51')]=function(_0x41973c,_0x48ca29){var _0x5a8054=_0x41973c[_0x855c('0x43')]['id'];var _0x1d158d=[];return db[_0x855c('0x52')]['transaction'](function(_0x4a6d9b){var _0x23a54f='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x5a8054;return db['sequelize'][_0x855c('0x30')](_0x23a54f,{'type':db['Sequelize'][_0x855c('0x53')][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b})[_0x855c('0x26')](function(_0x265f4f){_0x1d158d=_[_0x855c('0x2a')](_0x265f4f,function(_0x399259){return Number(_0x399259[_0x855c('0x55')]);});})[_0x855c('0x26')](function(){var _0x2a9608=_0x855c('0x56')+_0x5a8054;return db[_0x855c('0x52')]['query'](_0x2a9608,{'type':db[_0x855c('0x57')]['QueryTypes'][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b});})['then'](function(_0x5df410){var _0x4d088e=_['map'](_0x5df410,function(_0x1dab63){return Number(_0x1dab63['VoiceQueueId']);});return db[_0x855c('0x58')][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'VoiceQueueId':{'$in':_0x4d088e}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){var _0x51dce2=_0x855c('0x59')+_0x5a8054;return db[_0x855c('0x52')][_0x855c('0x30')](_0x51dce2,{'type':db[_0x855c('0x57')]['QueryTypes'][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b});})['then'](function(_0x5d7dd2){var _0x3e2394=_['map'](_0x5d7dd2,function(_0x2704a8){return Number(_0x2704a8[_0x855c('0x5a')]);});return db[_0x855c('0x5b')]['destroy']({'where':{'UserId':{'$in':_0x1d158d},'MailQueueId':{'$in':_0x3e2394}},'transaction':_0x4a6d9b});})['then'](function(){var _0xf9fd4d=_0x855c('0x5c')+_0x5a8054;return db[_0x855c('0x52')]['query'](_0xf9fd4d,{'type':db['Sequelize'][_0x855c('0x53')][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(_0x57db72){var _0x4d48ce=_[_0x855c('0x2a')](_0x57db72,function(_0x146fbd){return Number(_0x146fbd[_0x855c('0x5d')]);});return db[_0x855c('0x5e')][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'SmsQueueId':{'$in':_0x4d48ce}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){var _0x4cf5ea=_0x855c('0x5f')+_0x5a8054;return db[_0x855c('0x52')]['query'](_0x4cf5ea,{'type':db[_0x855c('0x57')][_0x855c('0x53')]['SELECT'],'raw':!![],'transaction':_0x4a6d9b});})['then'](function(_0x48f7ec){var _0x5be2f8=_[_0x855c('0x2a')](_0x48f7ec,function(_0x1c6db5){return Number(_0x1c6db5[_0x855c('0x60')]);});return db['UserChatQueue']['destroy']({'where':{'UserId':{'$in':_0x1d158d},'ChatQueueId':{'$in':_0x5be2f8}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){var _0x12eb14=_0x855c('0x61')+_0x5a8054;return db['sequelize']['query'](_0x12eb14,{'type':db[_0x855c('0x57')][_0x855c('0x53')][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(_0x3155e9){var _0x8ce08a=_['map'](_0x3155e9,function(_0x3cc6b3){return Number(_0x3cc6b3['FaxQueueId']);});return db[_0x855c('0x62')][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'FaxQueueId':{'$in':_0x8ce08a}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){var _0x1a797b=_0x855c('0x63')+_0x5a8054;return db[_0x855c('0x52')][_0x855c('0x30')](_0x1a797b,{'type':db[_0x855c('0x57')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(_0x48bc6b){var _0x325edc=_['map'](_0x48bc6b,function(_0x55713f){return Number(_0x55713f[_0x855c('0x64')]);});return db[_0x855c('0x65')][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'OpenchannelQueueId':{'$in':_0x325edc}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){var _0x435c74=_0x855c('0x66')+_0x5a8054;return db[_0x855c('0x52')]['query'](_0x435c74,{'type':db[_0x855c('0x57')][_0x855c('0x53')][_0x855c('0x54')],'raw':!![],'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(_0x41d00e){var _0x126669=_[_0x855c('0x2a')](_0x41d00e,function(_0x12b3e){return Number(_0x12b3e[_0x855c('0x67')]);});return db['UserWhatsappQueue'][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'WhatsappQueueId':{'$in':_0x126669}},'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(){return db[_0x855c('0x68')]['find']({'where':{'TeamId':_0x5a8054}});})['then'](function(_0x4438fb){if(_0x4438fb===null){return;}return db[_0x855c('0x69')][_0x855c('0x51')]({'where':{'UserId':{'$in':_0x1d158d},'VoicePrefixId':_0x4438fb[_0x855c('0x6a')]},'transaction':_0x4a6d9b});})['then'](function(){return db[_0x855c('0x2b')]['destroy']({'where':{'id':_0x5a8054},'cascade':!![],'transaction':_0x4a6d9b});})[_0x855c('0x26')](function(_0x4e3dd9){if(_0x4e3dd9===0x0){_0x48ca29[_0x855c('0x6b')](0x194);}else{return db[_0x855c('0x4d')][_0x855c('0x51')]({'where':{'type':'Teams','resourceId':_0x5a8054},'cascade':!![],'transaction':_0x4a6d9b})[_0x855c('0x26')](function(){_0x48ca29['status'](0xcc)['end']();});}})[_0x855c('0x4f')](function(_0x4cf0eb){_0x48ca29[_0x855c('0x1c')](0x1f4)[_0x855c('0x6c')](_0x4cf0eb);});});};exports[_0x855c('0x6d')]=function(_0x106093,_0x4144b4,_0x5bf3f3){return db[_0x855c('0x2b')][_0x855c('0x6e')]({'where':{'id':_0x106093[_0x855c('0x43')]['id']}})[_0x855c('0x26')](handleEntityNotFound(_0x4144b4,null))[_0x855c('0x26')](function(_0x44f173){if(!_0x106093[_0x855c('0x30')][_0x855c('0x6f')]||!utils[_0x855c('0x70')](_0x106093[_0x855c('0x30')][_0x855c('0x6f')])){throw new db[(_0x855c('0x57'))][(_0x855c('0x71'))](_0x855c('0x72'));}var _0x38634a={};var _0x51aec8={};_0x51aec8[_0x855c('0x2f')]=_[_0x855c('0x31')](db[_[_0x855c('0x73')](_0x106093[_0x855c('0x30')][_0x855c('0x6f')][_0x855c('0x74')]())+'Queue'][_0x855c('0x2c')]);_0x51aec8[_0x855c('0x30')]=_[_0x855c('0x31')](_0x106093[_0x855c('0x30')]);_0x51aec8['filters']=_[_0x855c('0x33')](_0x51aec8[_0x855c('0x2f')],_0x51aec8['query']);_0x38634a[_0x855c('0x34')]=_[_0x855c('0x33')](_0x51aec8[_0x855c('0x2f')],qs[_0x855c('0x44')](_0x106093['query'][_0x855c('0x44')]));_0x38634a[_0x855c('0x34')]=_0x38634a['attributes'][_0x855c('0x35')]?_0x38634a[_0x855c('0x34')]:_0x51aec8['model'];_0x38634a[_0x855c('0x38')]=qs['limit'](_0x106093[_0x855c('0x30')]['limit']);_0x38634a[_0x855c('0x1d')]=qs[_0x855c('0x1d')](_0x106093[_0x855c('0x30')]['offset']);_0x38634a[_0x855c('0x39')]=qs[_0x855c('0x3a')](_0x106093['query'][_0x855c('0x3a')]);_0x38634a[_0x855c('0x3b')]=qs[_0x855c('0x32')](_[_0x855c('0x3c')](_0x106093['query'],_0x51aec8[_0x855c('0x32')]));_0x38634a=_[_0x855c('0x3f')]({},_0x38634a,_0x106093[_0x855c('0x40')]);return _0x44f173[_0x855c('0x49')+_[_0x855c('0x73')](_0x106093[_0x855c('0x30')]['channel'][_0x855c('0x74')]())+_0x855c('0x75')](_0x38634a);})[_0x855c('0x26')](respondWithResult(_0x4144b4,null))[_0x855c('0x4f')](handleError(_0x4144b4,null));};exports[_0x855c('0x76')]=function(_0x5e2180,_0x45ddc1,_0x52f8fa){return db[_0x855c('0x2b')][_0x855c('0x6e')]({'where':{'id':_0x5e2180[_0x855c('0x43')]['id']}})[_0x855c('0x26')](function(_0x5cd45d){if(_0x5cd45d){if(!_0x5e2180['body']['channel']||!utils[_0x855c('0x70')](_0x5e2180[_0x855c('0x47')]['channel'])){throw new db['Sequelize'][(_0x855c('0x71'))](_0x855c('0x72'));}return _0x5cd45d[_0x855c('0x77')+_['capitalize'](_0x5e2180[_0x855c('0x47')][_0x855c('0x6f')][_0x855c('0x74')]())+_0x855c('0x75')](_0x5e2180[_0x855c('0x47')][_0x855c('0x78')]);}return null;})[_0x855c('0x26')](handleEntityNotFound(_0x45ddc1,null))['then'](respondWithStatusCode(_0x45ddc1,null))['catch'](handleError(_0x45ddc1,null));};exports[_0x855c('0x79')]=function(_0xb81d07,_0x21933d,_0x15e948){return db['Team']['findOne']({'where':{'id':_0xb81d07[_0x855c('0x43')]['id']}})[_0x855c('0x26')](function(_0x30551b){if(_0x30551b){if(!_0xb81d07[_0x855c('0x30')][_0x855c('0x6f')]||!utils[_0x855c('0x70')](_0xb81d07['query'][_0x855c('0x6f')])){throw new db[(_0x855c('0x57'))][(_0x855c('0x71'))](_0x855c('0x72'));}return _0x30551b[_0x855c('0x7a')+_[_0x855c('0x73')](_0xb81d07[_0x855c('0x30')][_0x855c('0x6f')]['toLowerCase']())+'Queues'](_0xb81d07[_0x855c('0x30')][_0x855c('0x78')]);}return null;})['then'](handleEntityNotFound(_0x21933d,null))[_0x855c('0x26')](respondWithStatusCode(_0x21933d,null))[_0x855c('0x4f')](handleError(_0x21933d,null));};exports[_0x855c('0x7b')]=function(_0x97c086,_0x248c4d){var _0x9f9536=_[_0x855c('0x7c')](_0x97c086[_0x855c('0x47')]['ids'])?_0x97c086[_0x855c('0x47')][_0x855c('0x78')]:[_0x97c086[_0x855c('0x47')][_0x855c('0x78')]];var _0x5e12ab=_0x97c086['params']['id'];return db[_0x855c('0x2b')][_0x855c('0x46')]({'where':{'id':_0x5e12ab}})[_0x855c('0x26')](handleEntityNotFound(_0x248c4d,null))[_0x855c('0x26')](function(_0x1182a0){if(_0x1182a0){var _0x25eba5=[_0x855c('0x7d'),_0x855c('0x7e'),_0x855c('0x7f'),'Sms',_0x855c('0x80'),_0x855c('0x81'),_0x855c('0x82')];return db[_0x855c('0x52')][_0x855c('0x83')](function(_0x5bb76b){var _0x54bbc4=_['map'](_0x25eba5,function(_0x4cf6cd){var _0x4ca137={'attributes':['id',_0x855c('0x29')]};if(_0x4cf6cd===_0x855c('0x7d')){_0x4ca137['through']={'attributes':['penalty']};}return _0x1182a0[_0x855c('0x49')+_0x4cf6cd+_0x855c('0x75')](_0x4ca137)[_0x855c('0x26')](function(_0x36c447){var _0x493b0a=_[_0x855c('0x2a')](_0x36c447,function(_0x4084db){var _0x4f102a=_[_0x855c('0x2a')](_0x9f9536,function(_0x3d909e){var _0x14032a={'where':{'UserId':_0x3d909e,[_0x4cf6cd+'QueueId']:_0x4084db['id']},'transaction':_0x5bb76b};if(_0x4cf6cd===_0x855c('0x7d')){_0x14032a['defaults']={'penalty':_0x4084db['TeamVoiceQueue'][_0x855c('0x84')]};}return db[_0x855c('0x85')+_0x4cf6cd+_0x855c('0x86')][_0x855c('0x87')](_0x14032a)[_0x855c('0x26')](function(){socket[_0x855c('0x88')](_0x855c('0x48')+_0x4cf6cd+_0x855c('0x89'),{'UserId':_0x3d909e,[_0x4cf6cd+'QueueId']:_0x4084db['id']});if(_0x4cf6cd!=='Voice'){return;}return db[_0x855c('0x85')][_0x855c('0x8a')]({'where':{'id':_0x9f9536,'online':0x1},'attributes':['id',_0x855c('0x29'),_0x855c('0x8b'),_0x855c('0x8c'),_0x855c('0x8d')],'raw':!![]})[_0x855c('0x26')](function(_0x521b57){var _0x47428c=_['map'](_0x521b57,function(_0x19d681){return db[_0x855c('0x8e')]['upsert']({'membername':_0x19d681[_0x855c('0x29')],'UserId':_0x19d681['id'],'queue_name':_0x4084db['name'],'VoiceQueueId':_0x4084db['id'],'interface':_[_0x855c('0x8f')](_0x19d681[_0x855c('0x8d')])?util[_0x855c('0x90')]('SIP/%s',_0x19d681[_0x855c('0x29')]):_0x19d681[_0x855c('0x8d')],'paused':_0x19d681[_0x855c('0x8c')]||![],'penalty':_0x4084db[_0x855c('0x91')][_0x855c('0x84')]},{'transaction':_0x5bb76b});});return Promise['all'](_0x47428c);});});});return Promise[_0x855c('0x92')](_0x4f102a);});return Promise[_0x855c('0x92')](_0x493b0a);})[_0x855c('0x26')](function(){return db[_0x855c('0x68')][_0x855c('0x6e')]({'where':{'teamId':_0x5e12ab}})[_0x855c('0x26')](function(_0x2a0d6e){if(_0x2a0d6e){var _0x4c532a=_[_0x855c('0x2a')](_0x9f9536,function(_0x7b33f9){db['UserVoicePrefix']['upsert']({'UserId':_0x7b33f9,'VoicePrefixId':_0x2a0d6e[_0x855c('0x6a')]});});return Promise[_0x855c('0x92')](_0x4c532a);}});});});return Promise[_0x855c('0x92')](_0x54bbc4)[_0x855c('0x26')](function(){return _0x1182a0[_0x855c('0x7b')](_0x9f9536,{'transaction':_0x5bb76b})['spread'](function(_0x2c2ece){return _0x2c2ece;});});});}})[_0x855c('0x26')](respondWithResult(_0x248c4d,null))[_0x855c('0x4f')](handleError(_0x248c4d,null));};exports[_0x855c('0x93')]=function(_0x3326b6,_0xbe93e){var _0x2939c9=_['isArray'](_0x3326b6['query']['ids'])?_0x3326b6[_0x855c('0x30')][_0x855c('0x78')]:[_0x3326b6[_0x855c('0x30')]['ids']];var _0x58b8b1=_0x3326b6['params']['id'];return db['Team'][_0x855c('0x46')]({'where':{'id':_0x58b8b1}})[_0x855c('0x26')](handleEntityNotFound(_0xbe93e,null))[_0x855c('0x26')](function(_0x3f8955){if(_0x3f8955){var _0x445812=[_0x855c('0x7d'),_0x855c('0x7e'),_0x855c('0x7f'),_0x855c('0x94'),'Fax',_0x855c('0x81'),_0x855c('0x82')];return db[_0x855c('0x52')]['transaction'](function(_0xc938fd){var _0x3ab50a=_[_0x855c('0x2a')](_0x445812,function(_0x33bb29){var _0x3acb85={'attributes':['id',_0x855c('0x29')]};return _0x3f8955['get'+_0x33bb29+_0x855c('0x75')](_0x3acb85)['then'](function(_0x5d4570){var _0x287469=_[_0x855c('0x2a')](_0x5d4570,function(_0x3b426d){return _0x3b426d['removeAgents'](_0x2939c9,{'transaction':_0xc938fd})[_0x855c('0x26')](function(){var _0x1ffddc=_[_0x855c('0x2a')](_0x2939c9,function(_0x2d3021){socket[_0x855c('0x88')](_0x855c('0x48')+_0x33bb29+_0x855c('0x95'),{'UserId':Number(_0x2d3021),[_0x33bb29+_0x855c('0x96')]:_0x3b426d['id']});if(_0x33bb29!==_0x855c('0x7d')){return;}return db[_0x855c('0x8e')][_0x855c('0x51')]({'where':{'VoiceQueueId':_0x3b426d['id'],'UserId':_0x2d3021},'transaction':_0xc938fd});});return Promise[_0x855c('0x92')](_0x1ffddc);});});return Promise[_0x855c('0x92')](_0x287469);});});return Promise[_0x855c('0x92')](_0x3ab50a)[_0x855c('0x26')](function(){return _0x3f8955[_0x855c('0x93')](_0x2939c9,{'transaction':_0xc938fd});})[_0x855c('0x26')](function(){return db[_0x855c('0x68')][_0x855c('0x6e')]({'where':{'teamId':_0x58b8b1}})['then'](function(_0x4190ea){if(_0x4190ea){var _0x1d5e24=_[_0x855c('0x2a')](_0x2939c9,function(_0x34dc4b){db[_0x855c('0x69')][_0x855c('0x51')]({'where':{'UserId':_0x34dc4b,'VoicePrefixId':_0x4190ea[_0x855c('0x6a')]}});});return Promise['all'](_0x1d5e24);}});});});}})[_0x855c('0x26')](respondWithStatusCode(_0xbe93e,null))[_0x855c('0x4f')](handleError(_0xbe93e,null));};exports[_0x855c('0x97')]=function(_0x430ac1,_0x415ea5,_0x4611cb){var _0x401f65={};var _0x161d47={};var _0x35a583;var _0x118a23;return db[_0x855c('0x2b')][_0x855c('0x6e')]({'where':{'id':_0x430ac1['params']['id']}})[_0x855c('0x26')](handleEntityNotFound(_0x415ea5,null))['then'](function(_0x273acd){if(_0x273acd){_0x35a583=_0x273acd;_0x161d47[_0x855c('0x2f')]=_['keys'](db[_0x855c('0x85')][_0x855c('0x2c')]);_0x161d47[_0x855c('0x30')]=_[_0x855c('0x31')](_0x430ac1['query']);_0x161d47[_0x855c('0x32')]=_[_0x855c('0x33')](_0x161d47[_0x855c('0x2f')],_0x161d47[_0x855c('0x30')]);_0x401f65[_0x855c('0x34')]=_[_0x855c('0x33')](_0x161d47[_0x855c('0x2f')],qs[_0x855c('0x44')](_0x430ac1[_0x855c('0x30')][_0x855c('0x44')]));_0x401f65['attributes']=_0x401f65['attributes'][_0x855c('0x35')]?_0x401f65[_0x855c('0x34')]:_0x161d47[_0x855c('0x2f')];_0x401f65[_0x855c('0x39')]=qs[_0x855c('0x3a')](_0x430ac1[_0x855c('0x30')][_0x855c('0x3a')]);_0x401f65[_0x855c('0x3b')]=qs[_0x855c('0x32')](_[_0x855c('0x3c')](_0x430ac1[_0x855c('0x30')],_0x161d47[_0x855c('0x32')]));if(_0x430ac1[_0x855c('0x30')][_0x855c('0x3d')]){_0x401f65['where']=_[_0x855c('0x3f')](_0x401f65[_0x855c('0x3b')],{'$or':_['map'](_0x401f65[_0x855c('0x34')],function(_0x50a1b1){var _0x353282={};_0x353282[_0x50a1b1]={'$like':'%'+_0x430ac1[_0x855c('0x30')][_0x855c('0x3d')]+'%'};return _0x353282;})});}_0x401f65=_['merge']({},_0x401f65,_0x430ac1[_0x855c('0x40')]);return _0x35a583[_0x855c('0x97')](_0x401f65);}})['then'](function(_0xf07970){if(_0xf07970){_0x118a23=_0xf07970[_0x855c('0x35')];if(!_0x430ac1[_0x855c('0x30')]['hasOwnProperty'](_0x855c('0x37'))){_0x401f65['limit']=qs['limit'](_0x430ac1[_0x855c('0x30')][_0x855c('0x38')]);_0x401f65[_0x855c('0x1d')]=qs[_0x855c('0x1d')](_0x430ac1['query']['offset']);}return _0x35a583[_0x855c('0x97')](_0x401f65);}})['then'](function(_0x410698){if(_0x410698){return _0x410698?{'count':_0x118a23,'rows':_0x410698}:null;}})[_0x855c('0x26')](respondWithResult(_0x415ea5,null))[_0x855c('0x4f')](handleError(_0x415ea5,null));};