abfb1fc5feb0bba05a2780e81f250c74f827be5b
[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 _0xa69f=['to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','undefined','limit','count','offset','set','apply','reject','save','then','stack','name','send','index','map','fieldName','type','key','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','Team','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','sequelize','transaction','Sequelize','QueryTypes','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','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','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','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','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','end','getQueues','findOne','isValidChannel','channel','Unknown\x20channel','capitalize','toLowerCase','Queue','Queues','ValidationError','add','ids','removeQueues','addAgents','Voice','Chat','Sms','Fax','Whatsapp','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','Queue:save','UserVoiceQueueRt','upsert','isNil','interface','format','SIP/%s','voicePause','all','spread','removeAgents','Mail','emit','pick','getAgents','nolimit','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox'];(function(_0x5d6f9d,_0x394054){var _0x197bca=function(_0x4217fd){while(--_0x4217fd){_0x5d6f9d['push'](_0x5d6f9d['shift']());}};_0x197bca(++_0x394054);}(_0xa69f,0x12e));var _0xfa69=function(_0x941ad0,_0xd91c91){_0x941ad0=_0x941ad0-0x0;var _0x202a85=_0xa69f[_0x941ad0];return _0x202a85;};'use strict';var emlformat=require(_0xfa69('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfa69('0x1'));var jsonpatch=require(_0xfa69('0x2'));var rp=require(_0xfa69('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xfa69('0x4'));var util=require(_0xfa69('0x5'));var path=require(_0xfa69('0x6'));var sox=require(_0xfa69('0x7'));var csv=require(_0xfa69('0x8'));var ejs=require(_0xfa69('0x9'));var fs=require('fs');var fs_extra=require(_0xfa69('0xa'));var _=require(_0xfa69('0xb'));var squel=require('squel');var crypto=require(_0xfa69('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xfa69('0xd'));var toCsv=require(_0xfa69('0x8'));var querystring=require(_0xfa69('0xe'));var Papa=require(_0xfa69('0xf'));var Redis=require(_0xfa69('0x10'));var authService=require(_0xfa69('0x11'));var qs=require(_0xfa69('0x12'));var as=require(_0xfa69('0x13'));var hardwareService=require(_0xfa69('0x14'));var logger=require('../../config/logger')(_0xfa69('0x15'));var utils=require(_0xfa69('0x16'));var config=require(_0xfa69('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xfa69('0x18'))['db'];config[_0xfa69('0x19')]=_[_0xfa69('0x1a')](config[_0xfa69('0x19')],{'host':_0xfa69('0x1b'),'port':0x18eb});var socket=require(_0xfa69('0x1c'))(new Redis(config['redis']));require(_0xfa69('0x1d'))[_0xfa69('0x1e')](socket);function respondWithStatusCode(_0x478293,_0x26e40c){_0x26e40c=_0x26e40c||0xcc;return function(_0x5211e6){if(_0x5211e6){return _0x478293[_0xfa69('0x1f')](_0x26e40c);}return _0x478293[_0xfa69('0x20')](_0x26e40c)['end']();};}function respondWithResult(_0x5a007c,_0x5d43d7){_0x5d43d7=_0x5d43d7||0xc8;return function(_0x58a192){if(_0x58a192){return _0x5a007c[_0xfa69('0x20')](_0x5d43d7)['json'](_0x58a192);}};}function respondWithFilteredResult(_0x5eac2c,_0x28d250){return function(_0x66c37c){if(_0x66c37c){var _0x42d316=typeof _0x28d250['offset']===_0xfa69('0x21')&&typeof _0x28d250[_0xfa69('0x22')]===_0xfa69('0x21');var _0x4e79f6=_0x66c37c[_0xfa69('0x23')];var _0x23ff42=_0x42d316?0x0:_0x28d250['offset'];var _0xf07e84=_0x42d316?_0x66c37c['count']:_0x28d250[_0xfa69('0x24')]+_0x28d250[_0xfa69('0x22')];var _0x530d01;if(_0xf07e84>=_0x4e79f6){_0xf07e84=_0x4e79f6;_0x530d01=0xc8;}else{_0x530d01=0xce;}_0x5eac2c['status'](_0x530d01);return _0x5eac2c[_0xfa69('0x25')]('Content-Range',_0x23ff42+'-'+_0xf07e84+'/'+_0x4e79f6)['json'](_0x66c37c);}return null;};}function patchUpdates(_0x5f44e8){return function(_0x52b9eb){try{jsonpatch[_0xfa69('0x26')](_0x52b9eb,_0x5f44e8,!![]);}catch(_0x1aa5e1){return BPromise[_0xfa69('0x27')](_0x1aa5e1);}return _0x52b9eb[_0xfa69('0x28')]();};}function saveUpdates(_0x4a1b2c,_0x1c48e7){return function(_0x3eba20){if(_0x3eba20){return _0x3eba20['update'](_0x4a1b2c)[_0xfa69('0x29')](function(_0x1f9a9a){return _0x1f9a9a;});}return null;};}function handleEntityNotFound(_0x15d9a2,_0x24afbf){return function(_0x40df15){if(!_0x40df15){_0x15d9a2[_0xfa69('0x1f')](0x194);}return _0x40df15;};}function handleError(_0x259a6d,_0x379763){_0x379763=_0x379763||0x1f4;return function(_0x5b6ef9){logger['error'](_0x5b6ef9[_0xfa69('0x2a')]);if(_0x5b6ef9[_0xfa69('0x2b')]){delete _0x5b6ef9[_0xfa69('0x2b')];}_0x259a6d[_0xfa69('0x20')](_0x379763)[_0xfa69('0x2c')](_0x5b6ef9);};}exports[_0xfa69('0x2d')]=function(_0x3d7ac7,_0x7b1fd9){var _0x3d6dfa={},_0x49825c={},_0x3eeef4={'count':0x0,'rows':[]};var _0x424b74=_[_0xfa69('0x2e')](db['Team']['rawAttributes'],function(_0x556fa5){return{'name':_0x556fa5[_0xfa69('0x2f')],'type':_0x556fa5[_0xfa69('0x30')][_0xfa69('0x31')]};});_0x49825c['model']=_[_0xfa69('0x2e')](_0x424b74,_0xfa69('0x2b'));_0x49825c['query']=_[_0xfa69('0x32')](_0x3d7ac7[_0xfa69('0x33')]);_0x49825c[_0xfa69('0x34')]=_['intersection'](_0x49825c[_0xfa69('0x35')],_0x49825c[_0xfa69('0x33')]);_0x3d6dfa[_0xfa69('0x36')]=_[_0xfa69('0x37')](_0x49825c[_0xfa69('0x35')],qs[_0xfa69('0x38')](_0x3d7ac7[_0xfa69('0x33')][_0xfa69('0x38')]));_0x3d6dfa[_0xfa69('0x36')]=_0x3d6dfa['attributes'][_0xfa69('0x39')]?_0x3d6dfa[_0xfa69('0x36')]:_0x49825c[_0xfa69('0x35')];if(!_0x3d7ac7[_0xfa69('0x33')][_0xfa69('0x3a')]('nolimit')){_0x3d6dfa['limit']=qs['limit'](_0x3d7ac7[_0xfa69('0x33')]['limit']);_0x3d6dfa[_0xfa69('0x24')]=qs['offset'](_0x3d7ac7[_0xfa69('0x33')][_0xfa69('0x24')]);}_0x3d6dfa[_0xfa69('0x3b')]=qs[_0xfa69('0x3c')](_0x3d7ac7[_0xfa69('0x33')][_0xfa69('0x3c')]);_0x3d6dfa[_0xfa69('0x3d')]=qs['filters'](_['pick'](_0x3d7ac7[_0xfa69('0x33')],_0x49825c[_0xfa69('0x34')]),_0x424b74);if(_0x3d7ac7[_0xfa69('0x33')][_0xfa69('0x3e')]){_0x3d6dfa[_0xfa69('0x3d')]=_[_0xfa69('0x3f')](_0x3d6dfa[_0xfa69('0x3d')],{'$or':_['map'](_0x424b74,function(_0x3aa0d2){if(_0x3aa0d2[_0xfa69('0x30')]!==_0xfa69('0x40')){var _0x149ff9={};_0x149ff9[_0x3aa0d2['name']]={'$like':'%'+_0x3d7ac7['query']['filter']+'%'};return _0x149ff9;}})});}_0x3d6dfa=_['merge']({},_0x3d6dfa,_0x3d7ac7[_0xfa69('0x41')]);var _0x1c4099={'where':_0x3d6dfa[_0xfa69('0x3d')]};return db[_0xfa69('0x42')][_0xfa69('0x23')](_0x1c4099)[_0xfa69('0x29')](function(_0x419238){_0x3eeef4[_0xfa69('0x23')]=_0x419238;if(_0x3d7ac7['query'][_0xfa69('0x43')]){_0x3d6dfa[_0xfa69('0x44')]=[{'all':!![]}];}return db[_0xfa69('0x42')][_0xfa69('0x45')](_0x3d6dfa);})[_0xfa69('0x29')](function(_0x4edbd1){_0x3eeef4[_0xfa69('0x46')]=_0x4edbd1;return _0x3eeef4;})[_0xfa69('0x29')](respondWithFilteredResult(_0x7b1fd9,_0x3d6dfa))[_0xfa69('0x47')](handleError(_0x7b1fd9,null));};exports[_0xfa69('0x48')]=function(_0x3d8878,_0x5dbaf7){var _0x517012={'raw':![],'where':{'id':_0x3d8878[_0xfa69('0x49')]['id']}},_0x35e0ad={};_0x35e0ad[_0xfa69('0x35')]=_[_0xfa69('0x32')](db[_0xfa69('0x42')][_0xfa69('0x4a')]);_0x35e0ad['query']=_[_0xfa69('0x32')](_0x3d8878[_0xfa69('0x33')]);_0x35e0ad[_0xfa69('0x34')]=_['intersection'](_0x35e0ad['model'],_0x35e0ad[_0xfa69('0x33')]);_0x517012['attributes']=_['intersection'](_0x35e0ad[_0xfa69('0x35')],qs[_0xfa69('0x38')](_0x3d8878[_0xfa69('0x33')][_0xfa69('0x38')]));_0x517012[_0xfa69('0x36')]=_0x517012[_0xfa69('0x36')][_0xfa69('0x39')]?_0x517012[_0xfa69('0x36')]:_0x35e0ad[_0xfa69('0x35')];if(_0x3d8878[_0xfa69('0x33')][_0xfa69('0x43')]){_0x517012[_0xfa69('0x44')]=[{'all':!![]}];}_0x517012=_[_0xfa69('0x3f')]({},_0x517012,_0x3d8878[_0xfa69('0x41')]);return db[_0xfa69('0x42')][_0xfa69('0x4b')](_0x517012)[_0xfa69('0x29')](handleEntityNotFound(_0x5dbaf7,null))[_0xfa69('0x29')](respondWithResult(_0x5dbaf7,null))[_0xfa69('0x47')](handleError(_0x5dbaf7,null));};exports[_0xfa69('0x4c')]=function(_0x5ec0f0,_0x5f92ca){return db['Team'][_0xfa69('0x4c')](_0x5ec0f0[_0xfa69('0x4d')],{})[_0xfa69('0x29')](function(_0x4b9bd9){var _0x1392a5=_0x5ec0f0['user'][_0xfa69('0x4e')]({'plain':!![]});if(!_0x1392a5)throw new Error(_0xfa69('0x4f'));if(_0x1392a5['role']===_0xfa69('0x50')){var _0x34b187=_0x4b9bd9[_0xfa69('0x4e')]({'plain':!![]});var _0x58f0ee='Teams';return db[_0xfa69('0x51')][_0xfa69('0x4b')]({'where':{'name':_0x58f0ee,'userProfileId':_0x1392a5[_0xfa69('0x52')]},'raw':!![]})[_0xfa69('0x29')](function(_0x2e3ab3){if(_0x2e3ab3&&_0x2e3ab3['autoAssociation']===0x0){return db[_0xfa69('0x53')]['create']({'name':_0x34b187[_0xfa69('0x2b')],'resourceId':_0x34b187['id'],'type':_0x2e3ab3[_0xfa69('0x2b')],'sectionId':_0x2e3ab3['id']},{})[_0xfa69('0x29')](function(){return _0x4b9bd9;});}else{return _0x4b9bd9;}})['catch'](function(_0x985a){logger[_0xfa69('0x54')](_0xfa69('0x55'),_0x985a);throw _0x985a;});}return _0x4b9bd9;})[_0xfa69('0x29')](respondWithResult(_0x5f92ca,0xc9))[_0xfa69('0x47')](handleError(_0x5f92ca,null));};exports[_0xfa69('0x56')]=function(_0x11e5ea,_0x431f62){if(_0x11e5ea[_0xfa69('0x4d')]['id']){delete _0x11e5ea[_0xfa69('0x4d')]['id'];}return db['Team']['find']({'where':{'id':_0x11e5ea['params']['id']}})[_0xfa69('0x29')](handleEntityNotFound(_0x431f62,null))[_0xfa69('0x29')](saveUpdates(_0x11e5ea['body'],null))[_0xfa69('0x29')](respondWithResult(_0x431f62,null))[_0xfa69('0x47')](handleError(_0x431f62,null));};exports[_0xfa69('0x57')]=function(_0x2e07e7,_0x194efe){var _0x4cd8e2=_0x2e07e7[_0xfa69('0x49')]['id'];var _0x5935d1=[];return db[_0xfa69('0x58')][_0xfa69('0x59')](function(_0x47d802){var _0x4c027b='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x4cd8e2;return db[_0xfa69('0x58')][_0xfa69('0x33')](_0x4c027b,{'type':db[_0xfa69('0x5a')][_0xfa69('0x5b')][_0xfa69('0x5c')],'raw':!![],'transaction':_0x47d802})[_0xfa69('0x29')](function(_0x377eeb){_0x5935d1=_[_0xfa69('0x2e')](_0x377eeb,function(_0x110bcd){return Number(_0x110bcd['UserId']);});})[_0xfa69('0x29')](function(){var _0x59b641=_0xfa69('0x5d')+_0x4cd8e2;return db[_0xfa69('0x58')]['query'](_0x59b641,{'type':db[_0xfa69('0x5a')][_0xfa69('0x5b')][_0xfa69('0x5c')],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x3d7db0){var _0x3152f1=_[_0xfa69('0x2e')](_0x3d7db0,function(_0x347a96){return Number(_0x347a96['VoiceQueueId']);});return db[_0xfa69('0x5e')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'VoiceQueueId':{'$in':_0x3152f1}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){var _0x31d022=_0xfa69('0x5f')+_0x4cd8e2;return db[_0xfa69('0x58')]['query'](_0x31d022,{'type':db[_0xfa69('0x5a')][_0xfa69('0x5b')][_0xfa69('0x5c')],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x3f4620){var _0xc74d67=_[_0xfa69('0x2e')](_0x3f4620,function(_0x3edbba){return Number(_0x3edbba[_0xfa69('0x60')]);});return db[_0xfa69('0x61')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'MailQueueId':{'$in':_0xc74d67}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){var _0x6a3852=_0xfa69('0x62')+_0x4cd8e2;return db[_0xfa69('0x58')][_0xfa69('0x33')](_0x6a3852,{'type':db[_0xfa69('0x5a')][_0xfa69('0x5b')]['SELECT'],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x53acfc){var _0x35d4f6=_[_0xfa69('0x2e')](_0x53acfc,function(_0xec44f9){return Number(_0xec44f9[_0xfa69('0x63')]);});return db[_0xfa69('0x64')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'SmsQueueId':{'$in':_0x35d4f6}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){var _0x5cf0ec='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x4cd8e2;return db[_0xfa69('0x58')]['query'](_0x5cf0ec,{'type':db[_0xfa69('0x5a')][_0xfa69('0x5b')][_0xfa69('0x5c')],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x1b0506){var _0x5aac7f=_[_0xfa69('0x2e')](_0x1b0506,function(_0x1bf4af){return Number(_0x1bf4af[_0xfa69('0x65')]);});return db[_0xfa69('0x66')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'ChatQueueId':{'$in':_0x5aac7f}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){var _0x2682eb=_0xfa69('0x67')+_0x4cd8e2;return db[_0xfa69('0x58')][_0xfa69('0x33')](_0x2682eb,{'type':db[_0xfa69('0x5a')]['QueryTypes'][_0xfa69('0x5c')],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x331cf8){var _0x3484de=_['map'](_0x331cf8,function(_0x2f2ac2){return Number(_0x2f2ac2[_0xfa69('0x68')]);});return db[_0xfa69('0x69')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'FaxQueueId':{'$in':_0x3484de}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){var _0xca5a7f=_0xfa69('0x6a')+_0x4cd8e2;return db[_0xfa69('0x58')]['query'](_0xca5a7f,{'type':db['Sequelize'][_0xfa69('0x5b')]['SELECT'],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x3e3fa0){var _0x5741a5=_['map'](_0x3e3fa0,function(_0x4280c5){return Number(_0x4280c5[_0xfa69('0x6b')]);});return db[_0xfa69('0x6c')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'OpenchannelQueueId':{'$in':_0x5741a5}},'transaction':_0x47d802});})['then'](function(){var _0x5a2f93=_0xfa69('0x6d')+_0x4cd8e2;return db[_0xfa69('0x58')]['query'](_0x5a2f93,{'type':db['Sequelize'][_0xfa69('0x5b')]['SELECT'],'raw':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x4f22f0){var _0x5681c9=_[_0xfa69('0x2e')](_0x4f22f0,function(_0x401f1d){return Number(_0x401f1d['WhatsappQueueId']);});return db[_0xfa69('0x6e')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'WhatsappQueueId':{'$in':_0x5681c9}},'transaction':_0x47d802});})[_0xfa69('0x29')](function(){return db[_0xfa69('0x6f')][_0xfa69('0x4b')]({'where':{'TeamId':_0x4cd8e2}});})[_0xfa69('0x29')](function(_0x58a65c){if(_0x58a65c===null){return;}return db[_0xfa69('0x70')][_0xfa69('0x57')]({'where':{'UserId':{'$in':_0x5935d1},'VoicePrefixId':_0x58a65c[_0xfa69('0x71')]},'transaction':_0x47d802});})['then'](function(){return db[_0xfa69('0x42')][_0xfa69('0x57')]({'where':{'id':_0x4cd8e2},'cascade':!![],'transaction':_0x47d802});})[_0xfa69('0x29')](function(_0x5bfb01){if(_0x5bfb01===0x0){_0x194efe[_0xfa69('0x1f')](0x194);}else{return db['UserProfileResource'][_0xfa69('0x57')]({'where':{'type':'Teams','resourceId':_0x4cd8e2},'cascade':!![],'transaction':_0x47d802})[_0xfa69('0x29')](function(){_0x194efe[_0xfa69('0x20')](0xcc)[_0xfa69('0x72')]();});}})[_0xfa69('0x47')](function(_0x57d02f){_0x194efe[_0xfa69('0x20')](0x1f4)['send'](_0x57d02f);});});};exports[_0xfa69('0x73')]=function(_0x1e2ec8,_0x1d0cca,_0x2eda32){return db[_0xfa69('0x42')][_0xfa69('0x74')]({'where':{'id':_0x1e2ec8['params']['id']}})[_0xfa69('0x29')](handleEntityNotFound(_0x1d0cca,null))[_0xfa69('0x29')](function(_0x5e3142){if(!_0x1e2ec8[_0xfa69('0x33')]['channel']||!utils[_0xfa69('0x75')](_0x1e2ec8['query'][_0xfa69('0x76')])){throw new db['Sequelize']['ValidationError'](_0xfa69('0x77'));}var _0x356736={};var _0x4f8fb0={};_0x4f8fb0['model']=_[_0xfa69('0x32')](db[_[_0xfa69('0x78')](_0x1e2ec8['query'][_0xfa69('0x76')][_0xfa69('0x79')]())+_0xfa69('0x7a')][_0xfa69('0x4a')]);_0x4f8fb0['query']=_[_0xfa69('0x32')](_0x1e2ec8[_0xfa69('0x33')]);_0x4f8fb0[_0xfa69('0x34')]=_[_0xfa69('0x37')](_0x4f8fb0[_0xfa69('0x35')],_0x4f8fb0[_0xfa69('0x33')]);_0x356736['attributes']=_['intersection'](_0x4f8fb0[_0xfa69('0x35')],qs[_0xfa69('0x38')](_0x1e2ec8[_0xfa69('0x33')][_0xfa69('0x38')]));_0x356736[_0xfa69('0x36')]=_0x356736['attributes'][_0xfa69('0x39')]?_0x356736[_0xfa69('0x36')]:_0x4f8fb0['model'];_0x356736[_0xfa69('0x22')]=qs[_0xfa69('0x22')](_0x1e2ec8[_0xfa69('0x33')][_0xfa69('0x22')]);_0x356736[_0xfa69('0x24')]=qs[_0xfa69('0x24')](_0x1e2ec8[_0xfa69('0x33')][_0xfa69('0x24')]);_0x356736[_0xfa69('0x3b')]=qs[_0xfa69('0x3c')](_0x1e2ec8[_0xfa69('0x33')][_0xfa69('0x3c')]);_0x356736[_0xfa69('0x3d')]=qs['filters'](_['pick'](_0x1e2ec8[_0xfa69('0x33')],_0x4f8fb0[_0xfa69('0x34')]));_0x356736=_[_0xfa69('0x3f')]({},_0x356736,_0x1e2ec8[_0xfa69('0x41')]);return _0x5e3142[_0xfa69('0x4e')+_[_0xfa69('0x78')](_0x1e2ec8['query'][_0xfa69('0x76')][_0xfa69('0x79')]())+_0xfa69('0x7b')](_0x356736);})[_0xfa69('0x29')](respondWithResult(_0x1d0cca,null))['catch'](handleError(_0x1d0cca,null));};exports['addQueues']=function(_0x12c76d,_0x40e7bf,_0x53bc4e){return db[_0xfa69('0x42')]['findOne']({'where':{'id':_0x12c76d['params']['id']}})['then'](function(_0x2fa4d8){if(_0x2fa4d8){if(!_0x12c76d[_0xfa69('0x4d')][_0xfa69('0x76')]||!utils['isValidChannel'](_0x12c76d[_0xfa69('0x4d')][_0xfa69('0x76')])){throw new db['Sequelize'][(_0xfa69('0x7c'))](_0xfa69('0x77'));}return _0x2fa4d8[_0xfa69('0x7d')+_['capitalize'](_0x12c76d[_0xfa69('0x4d')][_0xfa69('0x76')][_0xfa69('0x79')]())+_0xfa69('0x7b')](_0x12c76d[_0xfa69('0x4d')][_0xfa69('0x7e')]);}return null;})[_0xfa69('0x29')](handleEntityNotFound(_0x40e7bf,null))['then'](respondWithStatusCode(_0x40e7bf,null))[_0xfa69('0x47')](handleError(_0x40e7bf,null));};exports[_0xfa69('0x7f')]=function(_0x285f47,_0x17ad14,_0xcee13){return db[_0xfa69('0x42')][_0xfa69('0x74')]({'where':{'id':_0x285f47[_0xfa69('0x49')]['id']}})[_0xfa69('0x29')](function(_0x589b89){if(_0x589b89){if(!_0x285f47[_0xfa69('0x33')][_0xfa69('0x76')]||!utils[_0xfa69('0x75')](_0x285f47[_0xfa69('0x33')][_0xfa69('0x76')])){throw new db[(_0xfa69('0x5a'))][(_0xfa69('0x7c'))](_0xfa69('0x77'));}return _0x589b89['remove'+_[_0xfa69('0x78')](_0x285f47[_0xfa69('0x33')][_0xfa69('0x76')][_0xfa69('0x79')]())+_0xfa69('0x7b')](_0x285f47[_0xfa69('0x33')][_0xfa69('0x7e')]);}return null;})[_0xfa69('0x29')](handleEntityNotFound(_0x17ad14,null))['then'](respondWithStatusCode(_0x17ad14,null))['catch'](handleError(_0x17ad14,null));};exports[_0xfa69('0x80')]=function(_0x2279d4,_0x4c23d5){var _0x223f3e=_['isArray'](_0x2279d4['body'][_0xfa69('0x7e')])?_0x2279d4[_0xfa69('0x4d')][_0xfa69('0x7e')]:[_0x2279d4['body'][_0xfa69('0x7e')]];var _0x5b27db=_0x2279d4[_0xfa69('0x49')]['id'];return db['Team'][_0xfa69('0x4b')]({'where':{'id':_0x5b27db}})[_0xfa69('0x29')](handleEntityNotFound(_0x4c23d5,null))['then'](function(_0x1cdb80){if(_0x1cdb80){var _0x32395a=[_0xfa69('0x81'),_0xfa69('0x82'),'Mail',_0xfa69('0x83'),_0xfa69('0x84'),'Openchannel',_0xfa69('0x85')];return db[_0xfa69('0x58')][_0xfa69('0x59')](function(_0x115f65){var _0x42ea46=_[_0xfa69('0x2e')](_0x32395a,function(_0x41464c){var _0x5bbae6={'attributes':['id',_0xfa69('0x2b')]};if(_0x41464c==='Voice'){_0x5bbae6['through']={'attributes':[_0xfa69('0x86')]};}return _0x1cdb80[_0xfa69('0x4e')+_0x41464c+'Queues'](_0x5bbae6)[_0xfa69('0x29')](function(_0x2d0954){var _0x2a024f=_['map'](_0x2d0954,function(_0x1ab0c0){var _0x90f519=_[_0xfa69('0x2e')](_0x223f3e,function(_0x4c90d4){var _0x2bf1de={'where':{'UserId':_0x4c90d4,[_0x41464c+_0xfa69('0x87')]:_0x1ab0c0['id']},'transaction':_0x115f65};if(_0x41464c===_0xfa69('0x81')){_0x2bf1de[_0xfa69('0x1a')]={'penalty':_0x1ab0c0[_0xfa69('0x88')][_0xfa69('0x86')]};}return db[_0xfa69('0x89')+_0x41464c+'Queue'][_0xfa69('0x8a')](_0x2bf1de)[_0xfa69('0x29')](function(){socket['emit']('user'+_0x41464c+_0xfa69('0x8b'),{'UserId':_0x4c90d4,[_0x41464c+_0xfa69('0x87')]:_0x1ab0c0['id']});if(_0x41464c!=='Voice'){return;}return db['User'][_0xfa69('0x45')]({'where':{'id':_0x223f3e,'online':0x1},'attributes':['id','name','online','voicePause','interface'],'raw':!![]})[_0xfa69('0x29')](function(_0xc70edf){var _0x4f4560=_['map'](_0xc70edf,function(_0x1818e5){return db[_0xfa69('0x8c')][_0xfa69('0x8d')]({'membername':_0x1818e5[_0xfa69('0x2b')],'UserId':_0x1818e5['id'],'queue_name':_0x1ab0c0['name'],'VoiceQueueId':_0x1ab0c0['id'],'interface':_[_0xfa69('0x8e')](_0x1818e5[_0xfa69('0x8f')])?util[_0xfa69('0x90')](_0xfa69('0x91'),_0x1818e5[_0xfa69('0x2b')]):_0x1818e5[_0xfa69('0x8f')],'paused':_0x1818e5[_0xfa69('0x92')]||![],'penalty':_0x1ab0c0['TeamVoiceQueue'][_0xfa69('0x86')]},{'transaction':_0x115f65});});return Promise[_0xfa69('0x93')](_0x4f4560);});});});return Promise['all'](_0x90f519);});return Promise[_0xfa69('0x93')](_0x2a024f);})[_0xfa69('0x29')](function(){return db['TeamVoicePrefix'][_0xfa69('0x74')]({'where':{'teamId':_0x5b27db}})[_0xfa69('0x29')](function(_0x49d871){if(_0x49d871){var _0x33585c=_[_0xfa69('0x2e')](_0x223f3e,function(_0xa0de11){db[_0xfa69('0x70')]['upsert']({'UserId':_0xa0de11,'VoicePrefixId':_0x49d871[_0xfa69('0x71')]});});return Promise[_0xfa69('0x93')](_0x33585c);}});});});return Promise['all'](_0x42ea46)['then'](function(){return _0x1cdb80['addAgents'](_0x223f3e,{'transaction':_0x115f65})[_0xfa69('0x94')](function(_0x1c1505){return _0x1c1505;});});});}})[_0xfa69('0x29')](respondWithResult(_0x4c23d5,null))[_0xfa69('0x47')](handleError(_0x4c23d5,null));};exports[_0xfa69('0x95')]=function(_0x56a558,_0x5ca6bd){var _0x5adb2d=_['isArray'](_0x56a558[_0xfa69('0x33')][_0xfa69('0x7e')])?_0x56a558[_0xfa69('0x33')][_0xfa69('0x7e')]:[_0x56a558[_0xfa69('0x33')][_0xfa69('0x7e')]];var _0x2e86f9=_0x56a558[_0xfa69('0x49')]['id'];return db[_0xfa69('0x42')][_0xfa69('0x4b')]({'where':{'id':_0x2e86f9}})[_0xfa69('0x29')](handleEntityNotFound(_0x5ca6bd,null))['then'](function(_0x11738a){if(_0x11738a){var _0x253002=[_0xfa69('0x81'),_0xfa69('0x82'),_0xfa69('0x96'),_0xfa69('0x83'),'Fax','Openchannel','Whatsapp'];return db[_0xfa69('0x58')][_0xfa69('0x59')](function(_0x3a5f7b){var _0x47ad97=_[_0xfa69('0x2e')](_0x253002,function(_0x157fc4){var _0x4d74a9={'attributes':['id',_0xfa69('0x2b')]};return _0x11738a[_0xfa69('0x4e')+_0x157fc4+'Queues'](_0x4d74a9)[_0xfa69('0x29')](function(_0x11303d){var _0x1af683=_['map'](_0x11303d,function(_0x387e42){return _0x387e42[_0xfa69('0x95')](_0x5adb2d,{'transaction':_0x3a5f7b})[_0xfa69('0x29')](function(){var _0x55d16e=_[_0xfa69('0x2e')](_0x5adb2d,function(_0x1a909e){socket[_0xfa69('0x97')](_0xfa69('0x50')+_0x157fc4+'Queue:remove',{'UserId':Number(_0x1a909e),[_0x157fc4+'QueueId']:_0x387e42['id']});if(_0x157fc4!=='Voice'){return;}return db[_0xfa69('0x8c')][_0xfa69('0x57')]({'where':{'VoiceQueueId':_0x387e42['id'],'UserId':_0x1a909e},'transaction':_0x3a5f7b});});return Promise[_0xfa69('0x93')](_0x55d16e);});});return Promise[_0xfa69('0x93')](_0x1af683);});});return Promise[_0xfa69('0x93')](_0x47ad97)[_0xfa69('0x29')](function(){return _0x11738a['removeAgents'](_0x5adb2d,{'transaction':_0x3a5f7b});})[_0xfa69('0x29')](function(){return db[_0xfa69('0x6f')][_0xfa69('0x74')]({'where':{'teamId':_0x2e86f9}})[_0xfa69('0x29')](function(_0x5bd27a){if(_0x5bd27a){var _0xc6401d=_['map'](_0x5adb2d,function(_0xf3ad2d){db[_0xfa69('0x70')]['destroy']({'where':{'UserId':_0xf3ad2d,'VoicePrefixId':_0x5bd27a['VoicePrefixId']}});});return Promise[_0xfa69('0x93')](_0xc6401d);}});});});}})['then'](respondWithStatusCode(_0x5ca6bd,null))[_0xfa69('0x47')](handleError(_0x5ca6bd,null));};exports['getAgents']=function(_0x43bb30,_0x1fee79,_0x294a98){var _0xd9e1a6={};var _0x48b189={};var _0x238424;var _0x58fdad;return db[_0xfa69('0x42')][_0xfa69('0x74')]({'where':{'id':_0x43bb30['params']['id']}})[_0xfa69('0x29')](handleEntityNotFound(_0x1fee79,null))[_0xfa69('0x29')](function(_0x46e00e){if(_0x46e00e){_0x238424=_0x46e00e;_0x48b189['model']=_[_0xfa69('0x32')](db[_0xfa69('0x89')]['rawAttributes']);_0x48b189[_0xfa69('0x33')]=_[_0xfa69('0x32')](_0x43bb30[_0xfa69('0x33')]);_0x48b189[_0xfa69('0x34')]=_[_0xfa69('0x37')](_0x48b189[_0xfa69('0x35')],_0x48b189[_0xfa69('0x33')]);_0xd9e1a6[_0xfa69('0x36')]=_['intersection'](_0x48b189[_0xfa69('0x35')],qs['fields'](_0x43bb30[_0xfa69('0x33')][_0xfa69('0x38')]));_0xd9e1a6[_0xfa69('0x36')]=_0xd9e1a6[_0xfa69('0x36')][_0xfa69('0x39')]?_0xd9e1a6[_0xfa69('0x36')]:_0x48b189[_0xfa69('0x35')];_0xd9e1a6['order']=qs['sort'](_0x43bb30[_0xfa69('0x33')][_0xfa69('0x3c')]);_0xd9e1a6[_0xfa69('0x3d')]=qs['filters'](_[_0xfa69('0x98')](_0x43bb30[_0xfa69('0x33')],_0x48b189[_0xfa69('0x34')]));if(_0x43bb30['query']['filter']){_0xd9e1a6['where']=_[_0xfa69('0x3f')](_0xd9e1a6[_0xfa69('0x3d')],{'$or':_[_0xfa69('0x2e')](_0xd9e1a6[_0xfa69('0x36')],function(_0x17e3d0){var _0x4afada={};_0x4afada[_0x17e3d0]={'$like':'%'+_0x43bb30[_0xfa69('0x33')]['filter']+'%'};return _0x4afada;})});}_0xd9e1a6=_[_0xfa69('0x3f')]({},_0xd9e1a6,_0x43bb30[_0xfa69('0x41')]);return _0x238424[_0xfa69('0x99')](_0xd9e1a6);}})[_0xfa69('0x29')](function(_0x2083a7){if(_0x2083a7){_0x58fdad=_0x2083a7[_0xfa69('0x39')];if(!_0x43bb30[_0xfa69('0x33')][_0xfa69('0x3a')](_0xfa69('0x9a'))){_0xd9e1a6['limit']=qs[_0xfa69('0x22')](_0x43bb30[_0xfa69('0x33')][_0xfa69('0x22')]);_0xd9e1a6[_0xfa69('0x24')]=qs[_0xfa69('0x24')](_0x43bb30[_0xfa69('0x33')][_0xfa69('0x24')]);}return _0x238424['getAgents'](_0xd9e1a6);}})[_0xfa69('0x29')](function(_0x5a3b2e){if(_0x5a3b2e){return _0x5a3b2e?{'count':_0x58fdad,'rows':_0x5a3b2e}:null;}})[_0xfa69('0x29')](respondWithResult(_0x1fee79,null))[_0xfa69('0x47')](handleError(_0x1fee79,null));};