Built motion from commit c116dc8b.|2.6.30
[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 _0xb3a4=['Mail','Sms','Fax','through','penalty','QueueId','User','findOrCreate','emit','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','TeamVoiceQueue','all','addAgents','spread','removeAgents','Chat','Whatsapp','Queue:remove','getAgents','filter','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','undefined','count','offset','set','Content-Range','json','apply','reject','update','then','error','name','index','map','Team','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','where','merge','includeAll','include','findAll','show','params','options','find','catch','create','body','user','get','Teams','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','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','SELECT','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','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','WhatsappQueueId','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','send','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','Queue','toLowerCase','addQueues','Queues','removeQueues','remove','ids','isArray','Voice'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xb3a4,0x14e));var _0x4b3a=function(_0x308d51,_0x14794c){_0x308d51=_0x308d51-0x0;var _0x32b927=_0xb3a4[_0x308d51];return _0x32b927;};'use strict';var emlformat=require(_0x4b3a('0x0'));var rimraf=require(_0x4b3a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4b3a('0x2'));var rp=require(_0x4b3a('0x3'));var moment=require(_0x4b3a('0x4'));var BPromise=require(_0x4b3a('0x5'));var Mustache=require(_0x4b3a('0x6'));var util=require(_0x4b3a('0x7'));var path=require(_0x4b3a('0x8'));var sox=require(_0x4b3a('0x9'));var csv=require(_0x4b3a('0xa'));var ejs=require(_0x4b3a('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4b3a('0xc'));var squel=require(_0x4b3a('0xd'));var crypto=require(_0x4b3a('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x4b3a('0xf'));var toCsv=require(_0x4b3a('0xa'));var querystring=require(_0x4b3a('0x10'));var Papa=require(_0x4b3a('0x11'));var Redis=require('ioredis');var authService=require(_0x4b3a('0x12'));var qs=require(_0x4b3a('0x13'));var as=require(_0x4b3a('0x14'));var hardwareService=require(_0x4b3a('0x15'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x4b3a('0x16'));var licenseUtil=require(_0x4b3a('0x17'));var db=require('../../mysqldb')['db'];config[_0x4b3a('0x18')]=_[_0x4b3a('0x19')](config['redis'],{'host':_0x4b3a('0x1a'),'port':0x18eb});var socket=require(_0x4b3a('0x1b'))(new Redis(config[_0x4b3a('0x18')]));require('./team.socket')[_0x4b3a('0x1c')](socket);function respondWithStatusCode(_0x391d56,_0x786341){_0x786341=_0x786341||0xcc;return function(_0x184ac9){if(_0x184ac9){return _0x391d56[_0x4b3a('0x1d')](_0x786341);}return _0x391d56[_0x4b3a('0x1e')](_0x786341)['end']();};}function respondWithResult(_0x51a2a1,_0x14cc78){_0x14cc78=_0x14cc78||0xc8;return function(_0x2d6b8a){if(_0x2d6b8a){return _0x51a2a1[_0x4b3a('0x1e')](_0x14cc78)['json'](_0x2d6b8a);}};}function respondWithFilteredResult(_0x497f3c,_0x6ef937){return function(_0x2d8286){if(_0x2d8286){var _0x46840f=typeof _0x6ef937['offset']===_0x4b3a('0x1f')&&typeof _0x6ef937['limit']===_0x4b3a('0x1f');var _0x4e9927=_0x2d8286[_0x4b3a('0x20')];var _0x4e1e64=_0x46840f?0x0:_0x6ef937[_0x4b3a('0x21')];var _0x3a751a=_0x46840f?_0x2d8286['count']:_0x6ef937[_0x4b3a('0x21')]+_0x6ef937['limit'];var _0x5db175;if(_0x3a751a>=_0x4e9927){_0x3a751a=_0x4e9927;_0x5db175=0xc8;}else{_0x5db175=0xce;}_0x497f3c['status'](_0x5db175);return _0x497f3c[_0x4b3a('0x22')](_0x4b3a('0x23'),_0x4e1e64+'-'+_0x3a751a+'/'+_0x4e9927)[_0x4b3a('0x24')](_0x2d8286);}return null;};}function patchUpdates(_0x33dc9f){return function(_0x38bf2b){try{jsonpatch[_0x4b3a('0x25')](_0x38bf2b,_0x33dc9f,!![]);}catch(_0x68dcbf){return BPromise[_0x4b3a('0x26')](_0x68dcbf);}return _0x38bf2b['save']();};}function saveUpdates(_0x347de9,_0x4423ab){return function(_0x3cd1d3){if(_0x3cd1d3){return _0x3cd1d3[_0x4b3a('0x27')](_0x347de9)[_0x4b3a('0x28')](function(_0x57c985){return _0x57c985;});}return null;};}function handleEntityNotFound(_0x968fbc,_0xf9d4ba){return function(_0x15ac2c){if(!_0x15ac2c){_0x968fbc[_0x4b3a('0x1d')](0x194);}return _0x15ac2c;};}function handleError(_0x426347,_0x140a09){_0x140a09=_0x140a09||0x1f4;return function(_0x57ebad){logger[_0x4b3a('0x29')](_0x57ebad['stack']);if(_0x57ebad[_0x4b3a('0x2a')]){delete _0x57ebad[_0x4b3a('0x2a')];}_0x426347[_0x4b3a('0x1e')](_0x140a09)['send'](_0x57ebad);};}exports[_0x4b3a('0x2b')]=function(_0x69ea9b,_0x53e31e){var _0x2a6570={},_0x4e91ba={},_0x405aa1={'count':0x0,'rows':[]};var _0xf76f83=_[_0x4b3a('0x2c')](db[_0x4b3a('0x2d')][_0x4b3a('0x2e')],function(_0x1ec52d){return{'name':_0x1ec52d[_0x4b3a('0x2f')],'type':_0x1ec52d[_0x4b3a('0x30')]['key']};});_0x4e91ba['model']=_[_0x4b3a('0x2c')](_0xf76f83,'name');_0x4e91ba[_0x4b3a('0x31')]=_[_0x4b3a('0x32')](_0x69ea9b['query']);_0x4e91ba[_0x4b3a('0x33')]=_[_0x4b3a('0x34')](_0x4e91ba[_0x4b3a('0x35')],_0x4e91ba['query']);_0x2a6570[_0x4b3a('0x36')]=_[_0x4b3a('0x34')](_0x4e91ba[_0x4b3a('0x35')],qs[_0x4b3a('0x37')](_0x69ea9b[_0x4b3a('0x31')]['fields']));_0x2a6570[_0x4b3a('0x36')]=_0x2a6570[_0x4b3a('0x36')][_0x4b3a('0x38')]?_0x2a6570[_0x4b3a('0x36')]:_0x4e91ba['model'];if(!_0x69ea9b[_0x4b3a('0x31')][_0x4b3a('0x39')](_0x4b3a('0x3a'))){_0x2a6570[_0x4b3a('0x3b')]=qs[_0x4b3a('0x3b')](_0x69ea9b['query'][_0x4b3a('0x3b')]);_0x2a6570['offset']=qs['offset'](_0x69ea9b['query']['offset']);}_0x2a6570[_0x4b3a('0x3c')]=qs['sort'](_0x69ea9b['query'][_0x4b3a('0x3d')]);_0x2a6570['where']=qs[_0x4b3a('0x33')](_[_0x4b3a('0x3e')](_0x69ea9b[_0x4b3a('0x31')],_0x4e91ba[_0x4b3a('0x33')]),_0xf76f83);if(_0x69ea9b[_0x4b3a('0x31')]['filter']){_0x2a6570[_0x4b3a('0x3f')]=_[_0x4b3a('0x40')](_0x2a6570[_0x4b3a('0x3f')],{'$or':_['map'](_0xf76f83,function(_0x550a41){if(_0x550a41[_0x4b3a('0x30')]!=='VIRTUAL'){var _0x384a4a={};_0x384a4a[_0x550a41[_0x4b3a('0x2a')]]={'$like':'%'+_0x69ea9b[_0x4b3a('0x31')]['filter']+'%'};return _0x384a4a;}})});}_0x2a6570=_[_0x4b3a('0x40')]({},_0x2a6570,_0x69ea9b['options']);var _0x2e74db={'where':_0x2a6570[_0x4b3a('0x3f')]};return db[_0x4b3a('0x2d')]['count'](_0x2e74db)[_0x4b3a('0x28')](function(_0x3b330d){_0x405aa1[_0x4b3a('0x20')]=_0x3b330d;if(_0x69ea9b['query'][_0x4b3a('0x41')]){_0x2a6570[_0x4b3a('0x42')]=[{'all':!![]}];}return db[_0x4b3a('0x2d')][_0x4b3a('0x43')](_0x2a6570);})['then'](function(_0x234a6b){_0x405aa1['rows']=_0x234a6b;return _0x405aa1;})[_0x4b3a('0x28')](respondWithFilteredResult(_0x53e31e,_0x2a6570))['catch'](handleError(_0x53e31e,null));};exports[_0x4b3a('0x44')]=function(_0x440d69,_0x11dba6){var _0x5204fc={'raw':![],'where':{'id':_0x440d69[_0x4b3a('0x45')]['id']}},_0xb6388d={};_0xb6388d[_0x4b3a('0x35')]=_['keys'](db[_0x4b3a('0x2d')]['rawAttributes']);_0xb6388d[_0x4b3a('0x31')]=_['keys'](_0x440d69[_0x4b3a('0x31')]);_0xb6388d[_0x4b3a('0x33')]=_[_0x4b3a('0x34')](_0xb6388d['model'],_0xb6388d['query']);_0x5204fc['attributes']=_[_0x4b3a('0x34')](_0xb6388d[_0x4b3a('0x35')],qs['fields'](_0x440d69[_0x4b3a('0x31')]['fields']));_0x5204fc[_0x4b3a('0x36')]=_0x5204fc[_0x4b3a('0x36')]['length']?_0x5204fc[_0x4b3a('0x36')]:_0xb6388d[_0x4b3a('0x35')];if(_0x440d69[_0x4b3a('0x31')][_0x4b3a('0x41')]){_0x5204fc[_0x4b3a('0x42')]=[{'all':!![]}];}_0x5204fc=_[_0x4b3a('0x40')]({},_0x5204fc,_0x440d69[_0x4b3a('0x46')]);return db['Team'][_0x4b3a('0x47')](_0x5204fc)[_0x4b3a('0x28')](handleEntityNotFound(_0x11dba6,null))[_0x4b3a('0x28')](respondWithResult(_0x11dba6,null))[_0x4b3a('0x48')](handleError(_0x11dba6,null));};exports[_0x4b3a('0x49')]=function(_0x31c0a2,_0x5c722e){return db[_0x4b3a('0x2d')][_0x4b3a('0x49')](_0x31c0a2[_0x4b3a('0x4a')],{})[_0x4b3a('0x28')](function(_0x43cddf){var _0x3e1c5c=_0x31c0a2[_0x4b3a('0x4b')][_0x4b3a('0x4c')]({'plain':!![]});if(!_0x3e1c5c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3e1c5c['role']==='user'){var _0x3d609d=_0x43cddf[_0x4b3a('0x4c')]({'plain':!![]});var _0x1a3311=_0x4b3a('0x4d');return db[_0x4b3a('0x4e')][_0x4b3a('0x47')]({'where':{'name':_0x1a3311,'userProfileId':_0x3e1c5c[_0x4b3a('0x4f')]},'raw':!![]})['then'](function(_0x335845){if(_0x335845&&_0x335845['autoAssociation']===0x0){return db[_0x4b3a('0x50')][_0x4b3a('0x49')]({'name':_0x3d609d[_0x4b3a('0x2a')],'resourceId':_0x3d609d['id'],'type':_0x335845[_0x4b3a('0x2a')],'sectionId':_0x335845['id']},{})['then'](function(){return _0x43cddf;});}else{return _0x43cddf;}})['catch'](function(_0x1b2b3e){logger[_0x4b3a('0x29')](_0x4b3a('0x51'),_0x1b2b3e);throw _0x1b2b3e;});}return _0x43cddf;})[_0x4b3a('0x28')](respondWithResult(_0x5c722e,0xc9))['catch'](handleError(_0x5c722e,null));};exports[_0x4b3a('0x27')]=function(_0xb70a82,_0x3041d7){if(_0xb70a82[_0x4b3a('0x4a')]['id']){delete _0xb70a82[_0x4b3a('0x4a')]['id'];}return db[_0x4b3a('0x2d')][_0x4b3a('0x47')]({'where':{'id':_0xb70a82[_0x4b3a('0x45')]['id']}})[_0x4b3a('0x28')](handleEntityNotFound(_0x3041d7,null))[_0x4b3a('0x28')](saveUpdates(_0xb70a82[_0x4b3a('0x4a')],null))[_0x4b3a('0x28')](respondWithResult(_0x3041d7,null))[_0x4b3a('0x48')](handleError(_0x3041d7,null));};exports[_0x4b3a('0x52')]=function(_0x47e5fc,_0x4e61bf){var _0x3b8fee=_0x47e5fc['params']['id'];var _0x27b2c8=[];return db['sequelize'][_0x4b3a('0x53')](function(_0x11dac4){var _0x2fa303=_0x4b3a('0x54')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x2fa303,{'type':db[_0x4b3a('0x56')][_0x4b3a('0x57')]['SELECT'],'raw':!![],'transaction':_0x11dac4})[_0x4b3a('0x28')](function(_0x265f1e){_0x27b2c8=_[_0x4b3a('0x2c')](_0x265f1e,function(_0xd3ebfe){return Number(_0xd3ebfe['UserId']);});})['then'](function(){var _0x14cf2c=_0x4b3a('0x58')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x14cf2c,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x11dac4});})['then'](function(_0x39ce8e){var _0x482d5c=_['map'](_0x39ce8e,function(_0x3c5f27){return Number(_0x3c5f27[_0x4b3a('0x59')]);});return db[_0x4b3a('0x5a')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'VoiceQueueId':{'$in':_0x482d5c}},'transaction':_0x11dac4});})['then'](function(){var _0x599630=_0x4b3a('0x5b')+_0x3b8fee;return db['sequelize']['query'](_0x599630,{'type':db['Sequelize'][_0x4b3a('0x57')]['SELECT'],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x14819a){var _0x283a22=_[_0x4b3a('0x2c')](_0x14819a,function(_0x5d28a6){return Number(_0x5d28a6[_0x4b3a('0x5c')]);});return db[_0x4b3a('0x5d')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'MailQueueId':{'$in':_0x283a22}},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){var _0x6e4b8c=_0x4b3a('0x5e')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x6e4b8c,{'type':db['Sequelize'][_0x4b3a('0x57')][_0x4b3a('0x5f')],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x4b0f5d){var _0x291769=_[_0x4b3a('0x2c')](_0x4b0f5d,function(_0x189eab){return Number(_0x189eab[_0x4b3a('0x60')]);});return db[_0x4b3a('0x61')]['destroy']({'where':{'UserId':{'$in':_0x27b2c8},'SmsQueueId':{'$in':_0x291769}},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){var _0x4bd758=_0x4b3a('0x62')+_0x3b8fee;return db['sequelize']['query'](_0x4bd758,{'type':db[_0x4b3a('0x56')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x804f57){var _0x2cc64f=_[_0x4b3a('0x2c')](_0x804f57,function(_0x491a1e){return Number(_0x491a1e['ChatQueueId']);});return db[_0x4b3a('0x63')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'ChatQueueId':{'$in':_0x2cc64f}},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){var _0x49723d=_0x4b3a('0x64')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x49723d,{'type':db[_0x4b3a('0x56')][_0x4b3a('0x57')]['SELECT'],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x1b2aaa){var _0x244ead=_['map'](_0x1b2aaa,function(_0xab5226){return Number(_0xab5226[_0x4b3a('0x65')]);});return db[_0x4b3a('0x66')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'FaxQueueId':{'$in':_0x244ead}},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){var _0x444725=_0x4b3a('0x67')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x444725,{'type':db[_0x4b3a('0x56')][_0x4b3a('0x57')][_0x4b3a('0x5f')],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0xe32466){var _0x3da166=_[_0x4b3a('0x2c')](_0xe32466,function(_0x1a696e){return Number(_0x1a696e[_0x4b3a('0x68')]);});return db[_0x4b3a('0x69')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'OpenchannelQueueId':{'$in':_0x3da166}},'transaction':_0x11dac4});})['then'](function(){var _0x529be5=_0x4b3a('0x6a')+_0x3b8fee;return db[_0x4b3a('0x55')][_0x4b3a('0x31')](_0x529be5,{'type':db[_0x4b3a('0x56')]['QueryTypes'][_0x4b3a('0x5f')],'raw':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x411616){var _0x507a57=_[_0x4b3a('0x2c')](_0x411616,function(_0x454169){return Number(_0x454169[_0x4b3a('0x6b')]);});return db['UserWhatsappQueue'][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'WhatsappQueueId':{'$in':_0x507a57}},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){return db[_0x4b3a('0x6c')][_0x4b3a('0x47')]({'where':{'TeamId':_0x3b8fee}});})[_0x4b3a('0x28')](function(_0x5c997e){if(_0x5c997e===null){return;}return db[_0x4b3a('0x6d')][_0x4b3a('0x52')]({'where':{'UserId':{'$in':_0x27b2c8},'VoicePrefixId':_0x5c997e[_0x4b3a('0x6e')]},'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(){return db[_0x4b3a('0x2d')][_0x4b3a('0x52')]({'where':{'id':_0x3b8fee},'cascade':!![],'transaction':_0x11dac4});})[_0x4b3a('0x28')](function(_0x851e4f){if(_0x851e4f===0x0){_0x4e61bf[_0x4b3a('0x1d')](0x194);}else{return db['UserProfileResource'][_0x4b3a('0x52')]({'where':{'type':_0x4b3a('0x4d'),'resourceId':_0x3b8fee},'cascade':!![],'transaction':_0x11dac4})[_0x4b3a('0x28')](function(){_0x4e61bf[_0x4b3a('0x1e')](0xcc)['end']();});}})['catch'](function(_0x3deb4b){_0x4e61bf[_0x4b3a('0x1e')](0x1f4)[_0x4b3a('0x6f')](_0x3deb4b);});});};exports[_0x4b3a('0x70')]=function(_0x5ab338,_0x23b4ad,_0x49fa3f){return db[_0x4b3a('0x2d')][_0x4b3a('0x71')]({'where':{'id':_0x5ab338[_0x4b3a('0x45')]['id']}})[_0x4b3a('0x28')](handleEntityNotFound(_0x23b4ad,null))['then'](function(_0x17cf60){if(!_0x5ab338[_0x4b3a('0x31')][_0x4b3a('0x72')]||!utils[_0x4b3a('0x73')](_0x5ab338['query']['channel'])){throw new db[(_0x4b3a('0x56'))][(_0x4b3a('0x74'))](_0x4b3a('0x75'));}var _0xd027={};var _0x87d4b0={};_0x87d4b0[_0x4b3a('0x35')]=_['keys'](db[_[_0x4b3a('0x76')](_0x5ab338['query'][_0x4b3a('0x72')]['toLowerCase']())+_0x4b3a('0x77')][_0x4b3a('0x2e')]);_0x87d4b0[_0x4b3a('0x31')]=_[_0x4b3a('0x32')](_0x5ab338[_0x4b3a('0x31')]);_0x87d4b0[_0x4b3a('0x33')]=_[_0x4b3a('0x34')](_0x87d4b0[_0x4b3a('0x35')],_0x87d4b0[_0x4b3a('0x31')]);_0xd027[_0x4b3a('0x36')]=_[_0x4b3a('0x34')](_0x87d4b0[_0x4b3a('0x35')],qs[_0x4b3a('0x37')](_0x5ab338[_0x4b3a('0x31')][_0x4b3a('0x37')]));_0xd027[_0x4b3a('0x36')]=_0xd027['attributes']['length']?_0xd027[_0x4b3a('0x36')]:_0x87d4b0[_0x4b3a('0x35')];_0xd027['limit']=qs[_0x4b3a('0x3b')](_0x5ab338[_0x4b3a('0x31')][_0x4b3a('0x3b')]);_0xd027[_0x4b3a('0x21')]=qs['offset'](_0x5ab338[_0x4b3a('0x31')]['offset']);_0xd027[_0x4b3a('0x3c')]=qs['sort'](_0x5ab338['query'][_0x4b3a('0x3d')]);_0xd027[_0x4b3a('0x3f')]=qs['filters'](_['pick'](_0x5ab338[_0x4b3a('0x31')],_0x87d4b0[_0x4b3a('0x33')]));_0xd027=_['merge']({},_0xd027,_0x5ab338[_0x4b3a('0x46')]);return _0x17cf60[_0x4b3a('0x4c')+_[_0x4b3a('0x76')](_0x5ab338['query'][_0x4b3a('0x72')][_0x4b3a('0x78')]())+'Queues'](_0xd027);})['then'](respondWithResult(_0x23b4ad,null))[_0x4b3a('0x48')](handleError(_0x23b4ad,null));};exports[_0x4b3a('0x79')]=function(_0x10f585,_0x5d713a,_0x2b744b){return db[_0x4b3a('0x2d')][_0x4b3a('0x71')]({'where':{'id':_0x10f585[_0x4b3a('0x45')]['id']}})[_0x4b3a('0x28')](function(_0x38d9c9){if(_0x38d9c9){if(!_0x10f585['body'][_0x4b3a('0x72')]||!utils['isValidChannel'](_0x10f585[_0x4b3a('0x4a')][_0x4b3a('0x72')])){throw new db[(_0x4b3a('0x56'))][(_0x4b3a('0x74'))](_0x4b3a('0x75'));}return _0x38d9c9['add'+_[_0x4b3a('0x76')](_0x10f585[_0x4b3a('0x4a')][_0x4b3a('0x72')]['toLowerCase']())+_0x4b3a('0x7a')](_0x10f585['body']['ids']);}return null;})['then'](handleEntityNotFound(_0x5d713a,null))[_0x4b3a('0x28')](respondWithStatusCode(_0x5d713a,null))[_0x4b3a('0x48')](handleError(_0x5d713a,null));};exports[_0x4b3a('0x7b')]=function(_0x463ac4,_0xfabeef,_0x530d89){return db[_0x4b3a('0x2d')][_0x4b3a('0x71')]({'where':{'id':_0x463ac4['params']['id']}})[_0x4b3a('0x28')](function(_0x1c2635){if(_0x1c2635){if(!_0x463ac4['query'][_0x4b3a('0x72')]||!utils['isValidChannel'](_0x463ac4[_0x4b3a('0x31')][_0x4b3a('0x72')])){throw new db['Sequelize'][(_0x4b3a('0x74'))]('Unknown\x20channel');}return _0x1c2635[_0x4b3a('0x7c')+_[_0x4b3a('0x76')](_0x463ac4[_0x4b3a('0x31')][_0x4b3a('0x72')][_0x4b3a('0x78')]())+_0x4b3a('0x7a')](_0x463ac4['query'][_0x4b3a('0x7d')]);}return null;})['then'](handleEntityNotFound(_0xfabeef,null))['then'](respondWithStatusCode(_0xfabeef,null))[_0x4b3a('0x48')](handleError(_0xfabeef,null));};exports['addAgents']=function(_0x59fffe,_0x5d46f2){var _0x58051d=_[_0x4b3a('0x7e')](_0x59fffe[_0x4b3a('0x4a')][_0x4b3a('0x7d')])?_0x59fffe[_0x4b3a('0x4a')]['ids']:[_0x59fffe[_0x4b3a('0x4a')][_0x4b3a('0x7d')]];var _0x2bad34=_0x59fffe[_0x4b3a('0x45')]['id'];return db[_0x4b3a('0x2d')]['find']({'where':{'id':_0x2bad34}})['then'](handleEntityNotFound(_0x5d46f2,null))[_0x4b3a('0x28')](function(_0x3822ea){if(_0x3822ea){var _0xca051e=[_0x4b3a('0x7f'),'Chat',_0x4b3a('0x80'),_0x4b3a('0x81'),_0x4b3a('0x82'),'Openchannel','Whatsapp'];return db[_0x4b3a('0x55')]['transaction'](function(_0x39b66e){var _0x314eb9=_['map'](_0xca051e,function(_0x472f61){var _0x5d9e5f={'attributes':['id',_0x4b3a('0x2a')]};if(_0x472f61===_0x4b3a('0x7f')){_0x5d9e5f[_0x4b3a('0x83')]={'attributes':[_0x4b3a('0x84')]};}return _0x3822ea[_0x4b3a('0x4c')+_0x472f61+_0x4b3a('0x7a')](_0x5d9e5f)[_0x4b3a('0x28')](function(_0x7ac71a){var _0xe472bf=_[_0x4b3a('0x2c')](_0x7ac71a,function(_0xb5a8c4){var _0x256c97=_[_0x4b3a('0x2c')](_0x58051d,function(_0x1db797){var _0x1839ca={'where':{'UserId':_0x1db797,[_0x472f61+_0x4b3a('0x85')]:_0xb5a8c4['id']},'transaction':_0x39b66e};if(_0x472f61===_0x4b3a('0x7f')){_0x1839ca['defaults']={'penalty':_0xb5a8c4['TeamVoiceQueue']['penalty']};}return db[_0x4b3a('0x86')+_0x472f61+_0x4b3a('0x77')][_0x4b3a('0x87')](_0x1839ca)[_0x4b3a('0x28')](function(){socket[_0x4b3a('0x88')](_0x4b3a('0x4b')+_0x472f61+'Queue:save',{'UserId':_0x1db797,[_0x472f61+_0x4b3a('0x85')]:_0xb5a8c4['id']});if(_0x472f61!==_0x4b3a('0x7f')){return;}return db[_0x4b3a('0x86')]['findAll']({'where':{'id':_0x58051d,'online':0x1},'attributes':['id',_0x4b3a('0x2a'),_0x4b3a('0x89'),_0x4b3a('0x8a'),_0x4b3a('0x8b')],'raw':!![]})['then'](function(_0x189b5a){var _0x145fbb=_['map'](_0x189b5a,function(_0x295738){return db[_0x4b3a('0x8c')][_0x4b3a('0x8d')]({'membername':_0x295738['name'],'UserId':_0x295738['id'],'queue_name':_0xb5a8c4[_0x4b3a('0x2a')],'VoiceQueueId':_0xb5a8c4['id'],'interface':_[_0x4b3a('0x8e')](_0x295738[_0x4b3a('0x8b')])?util[_0x4b3a('0x8f')]('SIP/%s',_0x295738[_0x4b3a('0x2a')]):_0x295738[_0x4b3a('0x8b')],'paused':_0x295738[_0x4b3a('0x8a')]||![],'penalty':_0xb5a8c4[_0x4b3a('0x90')][_0x4b3a('0x84')]},{'transaction':_0x39b66e});});return Promise[_0x4b3a('0x91')](_0x145fbb);});});});return Promise[_0x4b3a('0x91')](_0x256c97);});return Promise[_0x4b3a('0x91')](_0xe472bf);})[_0x4b3a('0x28')](function(){return db[_0x4b3a('0x6c')][_0x4b3a('0x71')]({'where':{'teamId':_0x2bad34}})[_0x4b3a('0x28')](function(_0x3e9c9b){if(_0x3e9c9b){var _0x1babf6=_['map'](_0x58051d,function(_0x56d447){db[_0x4b3a('0x6d')][_0x4b3a('0x8d')]({'UserId':_0x56d447,'VoicePrefixId':_0x3e9c9b[_0x4b3a('0x6e')]});});return Promise[_0x4b3a('0x91')](_0x1babf6);}});});});return Promise[_0x4b3a('0x91')](_0x314eb9)[_0x4b3a('0x28')](function(){return _0x3822ea[_0x4b3a('0x92')](_0x58051d,{'transaction':_0x39b66e})[_0x4b3a('0x93')](function(_0x10ae7b){return _0x10ae7b;});});});}})[_0x4b3a('0x28')](respondWithResult(_0x5d46f2,null))[_0x4b3a('0x48')](handleError(_0x5d46f2,null));};exports[_0x4b3a('0x94')]=function(_0x36fc12,_0x53a1ff){var _0x1d8195=_[_0x4b3a('0x7e')](_0x36fc12[_0x4b3a('0x31')]['ids'])?_0x36fc12[_0x4b3a('0x31')][_0x4b3a('0x7d')]:[_0x36fc12[_0x4b3a('0x31')][_0x4b3a('0x7d')]];var _0x5b8132=_0x36fc12[_0x4b3a('0x45')]['id'];return db[_0x4b3a('0x2d')][_0x4b3a('0x47')]({'where':{'id':_0x5b8132}})[_0x4b3a('0x28')](handleEntityNotFound(_0x53a1ff,null))['then'](function(_0x52fd6f){if(_0x52fd6f){var _0x34a2bf=[_0x4b3a('0x7f'),_0x4b3a('0x95'),_0x4b3a('0x80'),_0x4b3a('0x81'),'Fax','Openchannel',_0x4b3a('0x96')];return db['sequelize'][_0x4b3a('0x53')](function(_0x5d36bc){var _0x25e86f=_[_0x4b3a('0x2c')](_0x34a2bf,function(_0x166685){var _0x58d1ca={'attributes':['id',_0x4b3a('0x2a')]};return _0x52fd6f['get'+_0x166685+_0x4b3a('0x7a')](_0x58d1ca)[_0x4b3a('0x28')](function(_0x12e0bb){var _0x1176e7=_['map'](_0x12e0bb,function(_0x41f444){return _0x41f444[_0x4b3a('0x94')](_0x1d8195,{'transaction':_0x5d36bc})[_0x4b3a('0x28')](function(){var _0x105200=_[_0x4b3a('0x2c')](_0x1d8195,function(_0x50a106){socket[_0x4b3a('0x88')](_0x4b3a('0x4b')+_0x166685+_0x4b3a('0x97'),{'UserId':Number(_0x50a106),[_0x166685+'QueueId']:_0x41f444['id']});if(_0x166685!==_0x4b3a('0x7f')){return;}return db[_0x4b3a('0x8c')]['destroy']({'where':{'VoiceQueueId':_0x41f444['id'],'UserId':_0x50a106},'transaction':_0x5d36bc});});return Promise[_0x4b3a('0x91')](_0x105200);});});return Promise[_0x4b3a('0x91')](_0x1176e7);});});return Promise[_0x4b3a('0x91')](_0x25e86f)[_0x4b3a('0x28')](function(){return _0x52fd6f['removeAgents'](_0x1d8195,{'transaction':_0x5d36bc});})[_0x4b3a('0x28')](function(){return db[_0x4b3a('0x6c')][_0x4b3a('0x71')]({'where':{'teamId':_0x5b8132}})[_0x4b3a('0x28')](function(_0x495647){if(_0x495647){var _0x569ae7=_['map'](_0x1d8195,function(_0x24baac){db['UserVoicePrefix'][_0x4b3a('0x52')]({'where':{'UserId':_0x24baac,'VoicePrefixId':_0x495647[_0x4b3a('0x6e')]}});});return Promise[_0x4b3a('0x91')](_0x569ae7);}});});});}})['then'](respondWithStatusCode(_0x53a1ff,null))[_0x4b3a('0x48')](handleError(_0x53a1ff,null));};exports[_0x4b3a('0x98')]=function(_0xdd0248,_0x49f659,_0x5c84d3){var _0x27ad45={};var _0x312f23={};var _0x4721e6;var _0x22dfe5;return db['Team']['findOne']({'where':{'id':_0xdd0248['params']['id']}})['then'](handleEntityNotFound(_0x49f659,null))[_0x4b3a('0x28')](function(_0x426a2e){if(_0x426a2e){_0x4721e6=_0x426a2e;_0x312f23[_0x4b3a('0x35')]=_[_0x4b3a('0x32')](db['User'][_0x4b3a('0x2e')]);_0x312f23[_0x4b3a('0x31')]=_[_0x4b3a('0x32')](_0xdd0248[_0x4b3a('0x31')]);_0x312f23[_0x4b3a('0x33')]=_[_0x4b3a('0x34')](_0x312f23['model'],_0x312f23['query']);_0x27ad45['attributes']=_[_0x4b3a('0x34')](_0x312f23[_0x4b3a('0x35')],qs[_0x4b3a('0x37')](_0xdd0248['query'][_0x4b3a('0x37')]));_0x27ad45[_0x4b3a('0x36')]=_0x27ad45['attributes'][_0x4b3a('0x38')]?_0x27ad45[_0x4b3a('0x36')]:_0x312f23['model'];_0x27ad45['order']=qs[_0x4b3a('0x3d')](_0xdd0248[_0x4b3a('0x31')][_0x4b3a('0x3d')]);_0x27ad45[_0x4b3a('0x3f')]=qs[_0x4b3a('0x33')](_[_0x4b3a('0x3e')](_0xdd0248[_0x4b3a('0x31')],_0x312f23[_0x4b3a('0x33')]));if(_0xdd0248[_0x4b3a('0x31')]['filter']){_0x27ad45[_0x4b3a('0x3f')]=_['merge'](_0x27ad45[_0x4b3a('0x3f')],{'$or':_[_0x4b3a('0x2c')](_0x27ad45[_0x4b3a('0x36')],function(_0x154d5a){var _0x5e02da={};_0x5e02da[_0x154d5a]={'$like':'%'+_0xdd0248[_0x4b3a('0x31')][_0x4b3a('0x99')]+'%'};return _0x5e02da;})});}_0x27ad45=_[_0x4b3a('0x40')]({},_0x27ad45,_0xdd0248[_0x4b3a('0x46')]);return _0x4721e6[_0x4b3a('0x98')](_0x27ad45);}})['then'](function(_0x290a1a){if(_0x290a1a){_0x22dfe5=_0x290a1a[_0x4b3a('0x38')];if(!_0xdd0248[_0x4b3a('0x31')]['hasOwnProperty'](_0x4b3a('0x3a'))){_0x27ad45['limit']=qs['limit'](_0xdd0248[_0x4b3a('0x31')][_0x4b3a('0x3b')]);_0x27ad45['offset']=qs[_0x4b3a('0x21')](_0xdd0248['query'][_0x4b3a('0x21')]);}return _0x4721e6['getAgents'](_0x27ad45);}})[_0x4b3a('0x28')](function(_0x55ba2a){if(_0x55ba2a){return _0x55ba2a?{'count':_0x22dfe5,'rows':_0x55ba2a}:null;}})[_0x4b3a('0x28')](respondWithResult(_0x49f659,null))['catch'](handleError(_0x49f659,null));};