Built motion from commit 87cd5f02.|2.5.48
[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 _0x459c=['QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','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','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','Queue','toLowerCase','Queues','addQueues','add','ids','removeQueues','remove','addAgents','isArray','Chat','Mail','Sms','Fax','Openchannel','Whatsapp','Voice','through','QueueId','TeamVoiceQueue','penalty','User','emit','findAll','online','interface','UserVoiceQueueRt','format','SIP/%s','voicePause','all','upsert','spread','removeAgents','Queue:remove','getAgents','nolimit','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','error','stack','name','send','index','map','Team','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','then','includeAll','include','rows','show','length','options','find','catch','create','body','user','get','Teams','UserProfileSection','autoAssociation','UserProfileResource','params','destroy','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize'];(function(_0x5e8439,_0x1b4117){var _0x3f0615=function(_0x5e9fd2){while(--_0x5e9fd2){_0x5e8439['push'](_0x5e8439['shift']());}};_0x3f0615(++_0x1b4117);}(_0x459c,0xe3));var _0xc459=function(_0x5e4699,_0x56ffe4){_0x5e4699=_0x5e4699-0x0;var _0x5458d2=_0x459c[_0x5e4699];return _0x5458d2;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc459('0x0'));var jsonpatch=require(_0xc459('0x1'));var rp=require(_0xc459('0x2'));var moment=require('moment');var BPromise=require(_0xc459('0x3'));var Mustache=require(_0xc459('0x4'));var util=require('util');var path=require(_0xc459('0x5'));var sox=require(_0xc459('0x6'));var csv=require(_0xc459('0x7'));var ejs=require(_0xc459('0x8'));var fs=require('fs');var fs_extra=require(_0xc459('0x9'));var _=require(_0xc459('0xa'));var squel=require(_0xc459('0xb'));var crypto=require('crypto');var jsforce=require(_0xc459('0xc'));var deskjs=require(_0xc459('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc459('0xe'));var Papa=require(_0xc459('0xf'));var Redis=require(_0xc459('0x10'));var authService=require(_0xc459('0x11'));var qs=require(_0xc459('0x12'));var as=require(_0xc459('0x13'));var hardwareService=require(_0xc459('0x14'));var logger=require(_0xc459('0x15'))(_0xc459('0x16'));var utils=require(_0xc459('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xc459('0x18'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xc459('0x19')](config[_0xc459('0x1a')],{'host':_0xc459('0x1b'),'port':0x18eb});var socket=require(_0xc459('0x1c'))(new Redis(config[_0xc459('0x1a')]));require(_0xc459('0x1d'))[_0xc459('0x1e')](socket);function respondWithStatusCode(_0x12b6ca,_0x3c4f75){_0x3c4f75=_0x3c4f75||0xcc;return function(_0x49cc18){if(_0x49cc18){return _0x12b6ca[_0xc459('0x1f')](_0x3c4f75);}return _0x12b6ca[_0xc459('0x20')](_0x3c4f75)[_0xc459('0x21')]();};}function respondWithResult(_0x5e3c0c,_0x421f00){_0x421f00=_0x421f00||0xc8;return function(_0x532787){if(_0x532787){return _0x5e3c0c['status'](_0x421f00)[_0xc459('0x22')](_0x532787);}};}function respondWithFilteredResult(_0x448de8,_0x3f6654){return function(_0x5c5f01){if(_0x5c5f01){var _0x1e6762=typeof _0x3f6654[_0xc459('0x23')]===_0xc459('0x24')&&typeof _0x3f6654[_0xc459('0x25')]===_0xc459('0x24');var _0x25a1e9=_0x5c5f01['count'];var _0x5597e6=_0x1e6762?0x0:_0x3f6654['offset'];var _0x34ca9b=_0x1e6762?_0x5c5f01[_0xc459('0x26')]:_0x3f6654[_0xc459('0x23')]+_0x3f6654['limit'];var _0x170f1e;if(_0x34ca9b>=_0x25a1e9){_0x34ca9b=_0x25a1e9;_0x170f1e=0xc8;}else{_0x170f1e=0xce;}_0x448de8[_0xc459('0x20')](_0x170f1e);return _0x448de8[_0xc459('0x27')](_0xc459('0x28'),_0x5597e6+'-'+_0x34ca9b+'/'+_0x25a1e9)['json'](_0x5c5f01);}return null;};}function patchUpdates(_0x43cd50){return function(_0x43b5e8){try{jsonpatch[_0xc459('0x29')](_0x43b5e8,_0x43cd50,!![]);}catch(_0x5e92ee){return BPromise[_0xc459('0x2a')](_0x5e92ee);}return _0x43b5e8['save']();};}function saveUpdates(_0x26f007,_0xbd26d5){return function(_0x3025cd){if(_0x3025cd){return _0x3025cd[_0xc459('0x2b')](_0x26f007)['then'](function(_0x2783a3){return _0x2783a3;});}return null;};}function handleEntityNotFound(_0x427fc4,_0xe3bdb6){return function(_0x11f270){if(!_0x11f270){_0x427fc4[_0xc459('0x1f')](0x194);}return _0x11f270;};}function handleError(_0x1a84c2,_0x2cf689){_0x2cf689=_0x2cf689||0x1f4;return function(_0x195827){logger[_0xc459('0x2c')](_0x195827[_0xc459('0x2d')]);if(_0x195827[_0xc459('0x2e')]){delete _0x195827[_0xc459('0x2e')];}_0x1a84c2['status'](_0x2cf689)[_0xc459('0x2f')](_0x195827);};}exports[_0xc459('0x30')]=function(_0x4803c7,_0x1ea918){var _0x334fea={},_0x5d4e2e={},_0x42a526={'count':0x0,'rows':[]};var _0x286e3f=_[_0xc459('0x31')](db[_0xc459('0x32')][_0xc459('0x33')],function(_0x2fdde6){return{'name':_0x2fdde6[_0xc459('0x34')],'type':_0x2fdde6[_0xc459('0x35')][_0xc459('0x36')]};});_0x5d4e2e['model']=_[_0xc459('0x31')](_0x286e3f,_0xc459('0x2e'));_0x5d4e2e[_0xc459('0x37')]=_[_0xc459('0x38')](_0x4803c7['query']);_0x5d4e2e[_0xc459('0x39')]=_[_0xc459('0x3a')](_0x5d4e2e[_0xc459('0x3b')],_0x5d4e2e['query']);_0x334fea[_0xc459('0x3c')]=_[_0xc459('0x3a')](_0x5d4e2e[_0xc459('0x3b')],qs['fields'](_0x4803c7[_0xc459('0x37')][_0xc459('0x3d')]));_0x334fea[_0xc459('0x3c')]=_0x334fea[_0xc459('0x3c')]['length']?_0x334fea[_0xc459('0x3c')]:_0x5d4e2e['model'];if(!_0x4803c7[_0xc459('0x37')][_0xc459('0x3e')]('nolimit')){_0x334fea[_0xc459('0x25')]=qs[_0xc459('0x25')](_0x4803c7[_0xc459('0x37')][_0xc459('0x25')]);_0x334fea[_0xc459('0x23')]=qs[_0xc459('0x23')](_0x4803c7[_0xc459('0x37')]['offset']);}_0x334fea[_0xc459('0x3f')]=qs[_0xc459('0x40')](_0x4803c7[_0xc459('0x37')][_0xc459('0x40')]);_0x334fea[_0xc459('0x41')]=qs[_0xc459('0x39')](_[_0xc459('0x42')](_0x4803c7[_0xc459('0x37')],_0x5d4e2e[_0xc459('0x39')]),_0x286e3f);if(_0x4803c7[_0xc459('0x37')][_0xc459('0x43')]){_0x334fea['where']=_['merge'](_0x334fea['where'],{'$or':_[_0xc459('0x31')](_0x286e3f,function(_0x3c3f49){if(_0x3c3f49[_0xc459('0x35')]!==_0xc459('0x44')){var _0x532a9e={};_0x532a9e[_0x3c3f49[_0xc459('0x2e')]]={'$like':'%'+_0x4803c7[_0xc459('0x37')][_0xc459('0x43')]+'%'};return _0x532a9e;}})});}_0x334fea=_[_0xc459('0x45')]({},_0x334fea,_0x4803c7['options']);var _0x533c8f={'where':_0x334fea[_0xc459('0x41')]};return db[_0xc459('0x32')][_0xc459('0x26')](_0x533c8f)[_0xc459('0x46')](function(_0x199571){_0x42a526[_0xc459('0x26')]=_0x199571;if(_0x4803c7[_0xc459('0x37')][_0xc459('0x47')]){_0x334fea[_0xc459('0x48')]=[{'all':!![]}];}return db['Team']['findAll'](_0x334fea);})[_0xc459('0x46')](function(_0x2ea192){_0x42a526[_0xc459('0x49')]=_0x2ea192;return _0x42a526;})['then'](respondWithFilteredResult(_0x1ea918,_0x334fea))['catch'](handleError(_0x1ea918,null));};exports[_0xc459('0x4a')]=function(_0x3950b3,_0x4d90f2){var _0x28601b={'raw':![],'where':{'id':_0x3950b3['params']['id']}},_0x53c827={};_0x53c827[_0xc459('0x3b')]=_[_0xc459('0x38')](db[_0xc459('0x32')][_0xc459('0x33')]);_0x53c827[_0xc459('0x37')]=_[_0xc459('0x38')](_0x3950b3[_0xc459('0x37')]);_0x53c827[_0xc459('0x39')]=_[_0xc459('0x3a')](_0x53c827[_0xc459('0x3b')],_0x53c827[_0xc459('0x37')]);_0x28601b[_0xc459('0x3c')]=_[_0xc459('0x3a')](_0x53c827[_0xc459('0x3b')],qs[_0xc459('0x3d')](_0x3950b3[_0xc459('0x37')][_0xc459('0x3d')]));_0x28601b[_0xc459('0x3c')]=_0x28601b['attributes'][_0xc459('0x4b')]?_0x28601b['attributes']:_0x53c827[_0xc459('0x3b')];if(_0x3950b3[_0xc459('0x37')][_0xc459('0x47')]){_0x28601b[_0xc459('0x48')]=[{'all':!![]}];}_0x28601b=_[_0xc459('0x45')]({},_0x28601b,_0x3950b3[_0xc459('0x4c')]);return db[_0xc459('0x32')][_0xc459('0x4d')](_0x28601b)[_0xc459('0x46')](handleEntityNotFound(_0x4d90f2,null))[_0xc459('0x46')](respondWithResult(_0x4d90f2,null))[_0xc459('0x4e')](handleError(_0x4d90f2,null));};exports[_0xc459('0x4f')]=function(_0x2849f6,_0x2fbf51){return db[_0xc459('0x32')][_0xc459('0x4f')](_0x2849f6[_0xc459('0x50')],{})[_0xc459('0x46')](function(_0x669883){var _0x3cc5e0=_0x2849f6[_0xc459('0x51')][_0xc459('0x52')]({'plain':!![]});if(!_0x3cc5e0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3cc5e0['role']===_0xc459('0x51')){var _0x2ee22a=_0x669883['get']({'plain':!![]});var _0x54a3b7=_0xc459('0x53');return db[_0xc459('0x54')][_0xc459('0x4d')]({'where':{'name':_0x54a3b7,'userProfileId':_0x3cc5e0['userProfileId']},'raw':!![]})[_0xc459('0x46')](function(_0x31c6d0){if(_0x31c6d0&&_0x31c6d0[_0xc459('0x55')]===0x0){return db[_0xc459('0x56')][_0xc459('0x4f')]({'name':_0x2ee22a[_0xc459('0x2e')],'resourceId':_0x2ee22a['id'],'type':_0x31c6d0['name'],'sectionId':_0x31c6d0['id']},{})['then'](function(){return _0x669883;});}else{return _0x669883;}})[_0xc459('0x4e')](function(_0x20882c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x20882c);throw _0x20882c;});}return _0x669883;})[_0xc459('0x46')](respondWithResult(_0x2fbf51,0xc9))[_0xc459('0x4e')](handleError(_0x2fbf51,null));};exports['update']=function(_0x2ac27b,_0x8996b3){if(_0x2ac27b[_0xc459('0x50')]['id']){delete _0x2ac27b[_0xc459('0x50')]['id'];}return db[_0xc459('0x32')][_0xc459('0x4d')]({'where':{'id':_0x2ac27b[_0xc459('0x57')]['id']}})[_0xc459('0x46')](handleEntityNotFound(_0x8996b3,null))[_0xc459('0x46')](saveUpdates(_0x2ac27b[_0xc459('0x50')],null))['then'](respondWithResult(_0x8996b3,null))[_0xc459('0x4e')](handleError(_0x8996b3,null));};exports[_0xc459('0x58')]=function(_0x281711,_0x3747a4){var _0x478727=_0x281711[_0xc459('0x57')]['id'];var _0x92b082=[];return db[_0xc459('0x59')][_0xc459('0x5a')](function(_0x184730){var _0x4b0395=_0xc459('0x5b')+_0x478727;return db[_0xc459('0x59')]['query'](_0x4b0395,{'type':db[_0xc459('0x5c')][_0xc459('0x5d')][_0xc459('0x5e')],'raw':!![],'transaction':_0x184730})[_0xc459('0x46')](function(_0x1db13c){_0x92b082=_['map'](_0x1db13c,function(_0x494ae8){return Number(_0x494ae8[_0xc459('0x5f')]);});})[_0xc459('0x46')](function(){var _0x6c3694=_0xc459('0x60')+_0x478727;return db['sequelize'][_0xc459('0x37')](_0x6c3694,{'type':db[_0xc459('0x5c')][_0xc459('0x5d')][_0xc459('0x5e')],'raw':!![],'transaction':_0x184730});})['then'](function(_0xc7a5e5){var _0x4edc0e=_[_0xc459('0x31')](_0xc7a5e5,function(_0x10f89f){return Number(_0x10f89f[_0xc459('0x61')]);});return db['UserVoiceQueue']['destroy']({'where':{'UserId':{'$in':_0x92b082},'VoiceQueueId':{'$in':_0x4edc0e}},'transaction':_0x184730});})['then'](function(){var _0x2123b6=_0xc459('0x62')+_0x478727;return db['sequelize'][_0xc459('0x37')](_0x2123b6,{'type':db[_0xc459('0x5c')][_0xc459('0x5d')][_0xc459('0x5e')],'raw':!![],'transaction':_0x184730});})[_0xc459('0x46')](function(_0x289916){var _0x33c17a=_[_0xc459('0x31')](_0x289916,function(_0x407b1e){return Number(_0x407b1e[_0xc459('0x63')]);});return db[_0xc459('0x64')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'MailQueueId':{'$in':_0x33c17a}},'transaction':_0x184730});})[_0xc459('0x46')](function(){var _0x245abb=_0xc459('0x65')+_0x478727;return db['sequelize'][_0xc459('0x37')](_0x245abb,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x184730});})['then'](function(_0x2a5fd2){var _0x36576a=_[_0xc459('0x31')](_0x2a5fd2,function(_0x17247e){return Number(_0x17247e['SmsQueueId']);});return db[_0xc459('0x66')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'SmsQueueId':{'$in':_0x36576a}},'transaction':_0x184730});})[_0xc459('0x46')](function(){var _0x339271='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x478727;return db['sequelize'][_0xc459('0x37')](_0x339271,{'type':db[_0xc459('0x5c')][_0xc459('0x5d')][_0xc459('0x5e')],'raw':!![],'transaction':_0x184730});})[_0xc459('0x46')](function(_0x1c7632){var _0x17a860=_[_0xc459('0x31')](_0x1c7632,function(_0x287220){return Number(_0x287220[_0xc459('0x67')]);});return db[_0xc459('0x68')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'ChatQueueId':{'$in':_0x17a860}},'transaction':_0x184730});})['then'](function(){var _0xd3773e=_0xc459('0x69')+_0x478727;return db[_0xc459('0x59')][_0xc459('0x37')](_0xd3773e,{'type':db[_0xc459('0x5c')]['QueryTypes'][_0xc459('0x5e')],'raw':!![],'transaction':_0x184730});})['then'](function(_0xa3f7ef){var _0x328bc7=_[_0xc459('0x31')](_0xa3f7ef,function(_0x49abb8){return Number(_0x49abb8[_0xc459('0x6a')]);});return db[_0xc459('0x6b')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'FaxQueueId':{'$in':_0x328bc7}},'transaction':_0x184730});})[_0xc459('0x46')](function(){var _0x306ac7=_0xc459('0x6c')+_0x478727;return db[_0xc459('0x59')][_0xc459('0x37')](_0x306ac7,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x184730});})[_0xc459('0x46')](function(_0x435b8c){var _0x49b362=_[_0xc459('0x31')](_0x435b8c,function(_0x41fafd){return Number(_0x41fafd['OpenchannelQueueId']);});return db[_0xc459('0x6d')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'OpenchannelQueueId':{'$in':_0x49b362}},'transaction':_0x184730});})[_0xc459('0x46')](function(){var _0x3082a0=_0xc459('0x6e')+_0x478727;return db[_0xc459('0x59')][_0xc459('0x37')](_0x3082a0,{'type':db[_0xc459('0x5c')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x184730});})[_0xc459('0x46')](function(_0x2a9b43){var _0x54d85a=_[_0xc459('0x31')](_0x2a9b43,function(_0x1ef65c){return Number(_0x1ef65c[_0xc459('0x6f')]);});return db[_0xc459('0x70')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'WhatsappQueueId':{'$in':_0x54d85a}},'transaction':_0x184730});})[_0xc459('0x46')](function(){return db[_0xc459('0x71')][_0xc459('0x4d')]({'where':{'TeamId':_0x478727}});})[_0xc459('0x46')](function(_0x5ee301){if(_0x5ee301===null){return;}return db[_0xc459('0x72')][_0xc459('0x58')]({'where':{'UserId':{'$in':_0x92b082},'VoicePrefixId':_0x5ee301[_0xc459('0x73')]},'transaction':_0x184730});})[_0xc459('0x46')](function(){return db[_0xc459('0x32')][_0xc459('0x58')]({'where':{'id':_0x478727},'cascade':!![],'transaction':_0x184730});})['then'](function(_0x36d6aa){if(_0x36d6aa===0x0){_0x3747a4['sendStatus'](0x194);}else{return db['UserProfileResource']['destroy']({'where':{'type':_0xc459('0x53'),'resourceId':_0x478727},'cascade':!![],'transaction':_0x184730})[_0xc459('0x46')](function(){_0x3747a4[_0xc459('0x20')](0xcc)[_0xc459('0x21')]();});}})[_0xc459('0x4e')](function(_0x1846ec){_0x3747a4[_0xc459('0x20')](0x1f4)[_0xc459('0x2f')](_0x1846ec);});});};exports[_0xc459('0x74')]=function(_0x5d2601,_0x337bde,_0x5bf3c3){return db[_0xc459('0x32')][_0xc459('0x75')]({'where':{'id':_0x5d2601['params']['id']}})[_0xc459('0x46')](handleEntityNotFound(_0x337bde,null))['then'](function(_0x5a4412){if(!_0x5d2601[_0xc459('0x37')][_0xc459('0x76')]||!utils[_0xc459('0x77')](_0x5d2601['query'][_0xc459('0x76')])){throw new db[(_0xc459('0x5c'))][(_0xc459('0x78'))](_0xc459('0x79'));}var _0x46c78d={};var _0x6f87e={};_0x6f87e[_0xc459('0x3b')]=_[_0xc459('0x38')](db[_[_0xc459('0x7a')](_0x5d2601[_0xc459('0x37')][_0xc459('0x76')]['toLowerCase']())+_0xc459('0x7b')]['rawAttributes']);_0x6f87e['query']=_['keys'](_0x5d2601[_0xc459('0x37')]);_0x6f87e[_0xc459('0x39')]=_[_0xc459('0x3a')](_0x6f87e[_0xc459('0x3b')],_0x6f87e[_0xc459('0x37')]);_0x46c78d[_0xc459('0x3c')]=_['intersection'](_0x6f87e['model'],qs['fields'](_0x5d2601[_0xc459('0x37')][_0xc459('0x3d')]));_0x46c78d[_0xc459('0x3c')]=_0x46c78d['attributes'][_0xc459('0x4b')]?_0x46c78d[_0xc459('0x3c')]:_0x6f87e[_0xc459('0x3b')];_0x46c78d[_0xc459('0x25')]=qs[_0xc459('0x25')](_0x5d2601[_0xc459('0x37')][_0xc459('0x25')]);_0x46c78d[_0xc459('0x23')]=qs[_0xc459('0x23')](_0x5d2601[_0xc459('0x37')]['offset']);_0x46c78d[_0xc459('0x3f')]=qs[_0xc459('0x40')](_0x5d2601[_0xc459('0x37')][_0xc459('0x40')]);_0x46c78d[_0xc459('0x41')]=qs[_0xc459('0x39')](_[_0xc459('0x42')](_0x5d2601[_0xc459('0x37')],_0x6f87e[_0xc459('0x39')]));_0x46c78d=_[_0xc459('0x45')]({},_0x46c78d,_0x5d2601[_0xc459('0x4c')]);return _0x5a4412[_0xc459('0x52')+_['capitalize'](_0x5d2601[_0xc459('0x37')][_0xc459('0x76')][_0xc459('0x7c')]())+_0xc459('0x7d')](_0x46c78d);})['then'](respondWithResult(_0x337bde,null))[_0xc459('0x4e')](handleError(_0x337bde,null));};exports[_0xc459('0x7e')]=function(_0x4874fe,_0x31dfb7,_0x563633){return db[_0xc459('0x32')]['findOne']({'where':{'id':_0x4874fe['params']['id']}})[_0xc459('0x46')](function(_0x4e195e){if(_0x4e195e){if(!_0x4874fe[_0xc459('0x50')][_0xc459('0x76')]||!utils[_0xc459('0x77')](_0x4874fe['body'][_0xc459('0x76')])){throw new db[(_0xc459('0x5c'))]['ValidationError'](_0xc459('0x79'));}return _0x4e195e[_0xc459('0x7f')+_[_0xc459('0x7a')](_0x4874fe[_0xc459('0x50')][_0xc459('0x76')]['toLowerCase']())+_0xc459('0x7d')](_0x4874fe[_0xc459('0x50')][_0xc459('0x80')]);}return null;})['then'](handleEntityNotFound(_0x31dfb7,null))[_0xc459('0x46')](respondWithStatusCode(_0x31dfb7,null))['catch'](handleError(_0x31dfb7,null));};exports[_0xc459('0x81')]=function(_0x390dab,_0x541dd7,_0x461c36){return db[_0xc459('0x32')][_0xc459('0x75')]({'where':{'id':_0x390dab[_0xc459('0x57')]['id']}})[_0xc459('0x46')](function(_0x327977){if(_0x327977){if(!_0x390dab['query'][_0xc459('0x76')]||!utils[_0xc459('0x77')](_0x390dab[_0xc459('0x37')]['channel'])){throw new db[(_0xc459('0x5c'))][(_0xc459('0x78'))](_0xc459('0x79'));}return _0x327977[_0xc459('0x82')+_['capitalize'](_0x390dab[_0xc459('0x37')]['channel'][_0xc459('0x7c')]())+_0xc459('0x7d')](_0x390dab[_0xc459('0x37')][_0xc459('0x80')]);}return null;})['then'](handleEntityNotFound(_0x541dd7,null))[_0xc459('0x46')](respondWithStatusCode(_0x541dd7,null))['catch'](handleError(_0x541dd7,null));};exports[_0xc459('0x83')]=function(_0x5a999e,_0x46a9fb){var _0x1c6b4d=_[_0xc459('0x84')](_0x5a999e[_0xc459('0x50')]['ids'])?_0x5a999e[_0xc459('0x50')][_0xc459('0x80')]:[_0x5a999e[_0xc459('0x50')][_0xc459('0x80')]];var _0x1bc369=_0x5a999e[_0xc459('0x57')]['id'];return db['Team'][_0xc459('0x4d')]({'where':{'id':_0x1bc369}})[_0xc459('0x46')](handleEntityNotFound(_0x46a9fb,null))[_0xc459('0x46')](function(_0x1af91b){if(_0x1af91b){var _0x4687aa=['Voice',_0xc459('0x85'),_0xc459('0x86'),_0xc459('0x87'),_0xc459('0x88'),_0xc459('0x89'),_0xc459('0x8a')];return db[_0xc459('0x59')][_0xc459('0x5a')](function(_0x58dcbe){var _0x1b7bd7=_['map'](_0x4687aa,function(_0x37d7c5){var _0x124740={'attributes':['id',_0xc459('0x2e')]};if(_0x37d7c5===_0xc459('0x8b')){_0x124740[_0xc459('0x8c')]={'attributes':['penalty']};}return _0x1af91b[_0xc459('0x52')+_0x37d7c5+'Queues'](_0x124740)[_0xc459('0x46')](function(_0x18f06a){var _0x50dd39=_[_0xc459('0x31')](_0x18f06a,function(_0x475148){var _0x5729a1=_[_0xc459('0x31')](_0x1c6b4d,function(_0x27c668){var _0x4e306a={'where':{'UserId':_0x27c668,[_0x37d7c5+_0xc459('0x8d')]:_0x475148['id']},'transaction':_0x58dcbe};if(_0x37d7c5==='Voice'){_0x4e306a[_0xc459('0x19')]={'penalty':_0x475148[_0xc459('0x8e')][_0xc459('0x8f')]};}return db[_0xc459('0x90')+_0x37d7c5+_0xc459('0x7b')]['findOrCreate'](_0x4e306a)['then'](function(){socket[_0xc459('0x91')](_0xc459('0x51')+_0x37d7c5+'Queue:save',{'UserId':_0x27c668,[_0x37d7c5+_0xc459('0x8d')]:_0x475148['id']});if(_0x37d7c5!=='Voice'){return;}return db['User'][_0xc459('0x92')]({'where':{'id':_0x1c6b4d,'online':0x1},'attributes':['id',_0xc459('0x2e'),_0xc459('0x93'),'voicePause',_0xc459('0x94')],'raw':!![]})[_0xc459('0x46')](function(_0x354020){var _0x3cd922=_['map'](_0x354020,function(_0x3d84c8){return db[_0xc459('0x95')]['upsert']({'membername':_0x3d84c8['name'],'UserId':_0x3d84c8['id'],'queue_name':_0x475148[_0xc459('0x2e')],'VoiceQueueId':_0x475148['id'],'interface':_['isNil'](_0x3d84c8[_0xc459('0x94')])?util[_0xc459('0x96')](_0xc459('0x97'),_0x3d84c8[_0xc459('0x2e')]):_0x3d84c8[_0xc459('0x94')],'paused':_0x3d84c8[_0xc459('0x98')]||![],'penalty':_0x475148[_0xc459('0x8e')]['penalty']},{'transaction':_0x58dcbe});});return Promise['all'](_0x3cd922);});});});return Promise[_0xc459('0x99')](_0x5729a1);});return Promise[_0xc459('0x99')](_0x50dd39);})['then'](function(){return db[_0xc459('0x71')]['findOne']({'where':{'teamId':_0x1bc369}})[_0xc459('0x46')](function(_0x18ff2d){if(_0x18ff2d){var _0x45539f=_['map'](_0x1c6b4d,function(_0x10ce56){db['UserVoicePrefix'][_0xc459('0x9a')]({'UserId':_0x10ce56,'VoicePrefixId':_0x18ff2d[_0xc459('0x73')]});});return Promise['all'](_0x45539f);}});});});return Promise[_0xc459('0x99')](_0x1b7bd7)[_0xc459('0x46')](function(){return _0x1af91b[_0xc459('0x83')](_0x1c6b4d,{'transaction':_0x58dcbe})[_0xc459('0x9b')](function(_0x386c5c){return _0x386c5c;});});});}})['then'](respondWithResult(_0x46a9fb,null))['catch'](handleError(_0x46a9fb,null));};exports[_0xc459('0x9c')]=function(_0x2d2bc3,_0x9376e6){var _0x17d6e2=_[_0xc459('0x84')](_0x2d2bc3[_0xc459('0x37')][_0xc459('0x80')])?_0x2d2bc3[_0xc459('0x37')][_0xc459('0x80')]:[_0x2d2bc3[_0xc459('0x37')][_0xc459('0x80')]];var _0x2bd575=_0x2d2bc3[_0xc459('0x57')]['id'];return db[_0xc459('0x32')][_0xc459('0x4d')]({'where':{'id':_0x2bd575}})[_0xc459('0x46')](handleEntityNotFound(_0x9376e6,null))['then'](function(_0x5b6089){if(_0x5b6089){var _0x5e3344=['Voice',_0xc459('0x85'),_0xc459('0x86'),_0xc459('0x87'),_0xc459('0x88'),_0xc459('0x89'),'Whatsapp'];return db[_0xc459('0x59')]['transaction'](function(_0x28c379){var _0x29ee84=_['map'](_0x5e3344,function(_0x1a4ef7){var _0x4fefc5={'attributes':['id',_0xc459('0x2e')]};return _0x5b6089[_0xc459('0x52')+_0x1a4ef7+_0xc459('0x7d')](_0x4fefc5)[_0xc459('0x46')](function(_0x3d7015){var _0x31c3e5=_[_0xc459('0x31')](_0x3d7015,function(_0x1484cc){return _0x1484cc[_0xc459('0x9c')](_0x17d6e2,{'transaction':_0x28c379})[_0xc459('0x46')](function(){var _0x594745=_[_0xc459('0x31')](_0x17d6e2,function(_0x5b1ed4){socket[_0xc459('0x91')](_0xc459('0x51')+_0x1a4ef7+_0xc459('0x9d'),{'UserId':Number(_0x5b1ed4),[_0x1a4ef7+_0xc459('0x8d')]:_0x1484cc['id']});if(_0x1a4ef7!==_0xc459('0x8b')){return;}return db[_0xc459('0x95')][_0xc459('0x58')]({'where':{'VoiceQueueId':_0x1484cc['id'],'UserId':_0x5b1ed4},'transaction':_0x28c379});});return Promise[_0xc459('0x99')](_0x594745);});});return Promise['all'](_0x31c3e5);});});return Promise[_0xc459('0x99')](_0x29ee84)['then'](function(){return _0x5b6089['removeAgents'](_0x17d6e2,{'transaction':_0x28c379});})[_0xc459('0x46')](function(){return db['TeamVoicePrefix'][_0xc459('0x75')]({'where':{'teamId':_0x2bd575}})['then'](function(_0x4bca7c){if(_0x4bca7c){var _0x4cb012=_['map'](_0x17d6e2,function(_0x5f284e){db['UserVoicePrefix'][_0xc459('0x58')]({'where':{'UserId':_0x5f284e,'VoicePrefixId':_0x4bca7c[_0xc459('0x73')]}});});return Promise[_0xc459('0x99')](_0x4cb012);}});});});}})['then'](respondWithStatusCode(_0x9376e6,null))['catch'](handleError(_0x9376e6,null));};exports[_0xc459('0x9e')]=function(_0x6d8dd,_0x3dc9a5,_0x423c22){var _0x2195e1={};var _0x59a56b={};var _0xb8b937;var _0x962307;return db[_0xc459('0x32')][_0xc459('0x75')]({'where':{'id':_0x6d8dd[_0xc459('0x57')]['id']}})[_0xc459('0x46')](handleEntityNotFound(_0x3dc9a5,null))[_0xc459('0x46')](function(_0x249f13){if(_0x249f13){_0xb8b937=_0x249f13;_0x59a56b[_0xc459('0x3b')]=_['keys'](db[_0xc459('0x90')][_0xc459('0x33')]);_0x59a56b[_0xc459('0x37')]=_['keys'](_0x6d8dd[_0xc459('0x37')]);_0x59a56b[_0xc459('0x39')]=_[_0xc459('0x3a')](_0x59a56b[_0xc459('0x3b')],_0x59a56b[_0xc459('0x37')]);_0x2195e1[_0xc459('0x3c')]=_[_0xc459('0x3a')](_0x59a56b[_0xc459('0x3b')],qs[_0xc459('0x3d')](_0x6d8dd[_0xc459('0x37')][_0xc459('0x3d')]));_0x2195e1[_0xc459('0x3c')]=_0x2195e1[_0xc459('0x3c')]['length']?_0x2195e1[_0xc459('0x3c')]:_0x59a56b[_0xc459('0x3b')];_0x2195e1[_0xc459('0x3f')]=qs[_0xc459('0x40')](_0x6d8dd[_0xc459('0x37')][_0xc459('0x40')]);_0x2195e1['where']=qs[_0xc459('0x39')](_[_0xc459('0x42')](_0x6d8dd[_0xc459('0x37')],_0x59a56b[_0xc459('0x39')]));if(_0x6d8dd[_0xc459('0x37')]['filter']){_0x2195e1[_0xc459('0x41')]=_[_0xc459('0x45')](_0x2195e1[_0xc459('0x41')],{'$or':_[_0xc459('0x31')](_0x2195e1[_0xc459('0x3c')],function(_0x33664d){var _0x1efc5b={};_0x1efc5b[_0x33664d]={'$like':'%'+_0x6d8dd[_0xc459('0x37')]['filter']+'%'};return _0x1efc5b;})});}_0x2195e1=_['merge']({},_0x2195e1,_0x6d8dd['options']);return _0xb8b937[_0xc459('0x9e')](_0x2195e1);}})['then'](function(_0x2616cc){if(_0x2616cc){_0x962307=_0x2616cc[_0xc459('0x4b')];if(!_0x6d8dd[_0xc459('0x37')]['hasOwnProperty'](_0xc459('0x9f'))){_0x2195e1[_0xc459('0x25')]=qs['limit'](_0x6d8dd['query'][_0xc459('0x25')]);_0x2195e1[_0xc459('0x23')]=qs['offset'](_0x6d8dd['query'][_0xc459('0x23')]);}return _0xb8b937[_0xc459('0x9e')](_0x2195e1);}})[_0xc459('0x46')](function(_0x4ea1be){if(_0x4ea1be){return _0x4ea1be?{'count':_0x962307,'rows':_0x4ea1be}:null;}})[_0xc459('0x46')](respondWithResult(_0x3dc9a5,null))[_0xc459('0x4e')](handleError(_0x3dc9a5,null));};