Built motion from commit 3c2ce842.|2.6.31
[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 _0x6380=['Queue','Queues','ValidationError','add','removeQueues','remove','addAgents','isArray','ids','Voice','Chat','Mail','Sms','Openchannel','Whatsapp','through','penalty','QueueId','defaults','TeamVoiceQueue','User','Queue:save','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','all','spread','removeAgents','Fax','Queue:remove','getAgents','hasOwnProperty','zip-dir','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','save','error','stack','name','send','index','Team','rawAttributes','fieldName','type','key','map','query','keys','intersection','model','attributes','fields','length','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','then','rows','params','find','catch','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','update','body','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','destroy','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','UserFaxQueue','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','getQueues','findOne','channel','isValidChannel','Unknown\x20channel','capitalize','toLowerCase'];(function(_0x44260e,_0x562865){var _0x244282=function(_0x4d5be6){while(--_0x4d5be6){_0x44260e['push'](_0x44260e['shift']());}};_0x244282(++_0x562865);}(_0x6380,0x1e4));var _0x0638=function(_0x2e9916,_0x1233c3){_0x2e9916=_0x2e9916-0x0;var _0x39af2b=_0x6380[_0x2e9916];return _0x39af2b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0638('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0638('0x1'));var Mustache=require(_0x0638('0x2'));var util=require(_0x0638('0x3'));var path=require('path');var sox=require(_0x0638('0x4'));var csv=require(_0x0638('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0638('0x6'));var squel=require(_0x0638('0x7'));var crypto=require(_0x0638('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x0638('0x9'));var toCsv=require(_0x0638('0x5'));var querystring=require(_0x0638('0xa'));var Papa=require(_0x0638('0xb'));var Redis=require(_0x0638('0xc'));var authService=require(_0x0638('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0638('0xe'));var logger=require('../../config/logger')(_0x0638('0xf'));var utils=require(_0x0638('0x10'));var config=require(_0x0638('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x0638('0x12'))['db'];config[_0x0638('0x13')]=_['defaults'](config[_0x0638('0x13')],{'host':_0x0638('0x14'),'port':0x18eb});var socket=require(_0x0638('0x15'))(new Redis(config[_0x0638('0x13')]));require(_0x0638('0x16'))[_0x0638('0x17')](socket);function respondWithStatusCode(_0x514a9f,_0x9277bf){_0x9277bf=_0x9277bf||0xcc;return function(_0x5a5aae){if(_0x5a5aae){return _0x514a9f[_0x0638('0x18')](_0x9277bf);}return _0x514a9f[_0x0638('0x19')](_0x9277bf)[_0x0638('0x1a')]();};}function respondWithResult(_0x5dd86a,_0x59e031){_0x59e031=_0x59e031||0xc8;return function(_0x2d0b6d){if(_0x2d0b6d){return _0x5dd86a['status'](_0x59e031)[_0x0638('0x1b')](_0x2d0b6d);}};}function respondWithFilteredResult(_0x3fbb5c,_0xe78f58){return function(_0x2c4523){if(_0x2c4523){var _0x35a698=typeof _0xe78f58[_0x0638('0x1c')]===_0x0638('0x1d')&&typeof _0xe78f58[_0x0638('0x1e')]==='undefined';var _0x3319d9=_0x2c4523['count'];var _0x1a62a2=_0x35a698?0x0:_0xe78f58['offset'];var _0x321ece=_0x35a698?_0x2c4523[_0x0638('0x1f')]:_0xe78f58[_0x0638('0x1c')]+_0xe78f58[_0x0638('0x1e')];var _0xa5d939;if(_0x321ece>=_0x3319d9){_0x321ece=_0x3319d9;_0xa5d939=0xc8;}else{_0xa5d939=0xce;}_0x3fbb5c['status'](_0xa5d939);return _0x3fbb5c['set']('Content-Range',_0x1a62a2+'-'+_0x321ece+'/'+_0x3319d9)[_0x0638('0x1b')](_0x2c4523);}return null;};}function patchUpdates(_0x46447e){return function(_0x2e41c4){try{jsonpatch['apply'](_0x2e41c4,_0x46447e,!![]);}catch(_0x306c8a){return BPromise['reject'](_0x306c8a);}return _0x2e41c4[_0x0638('0x20')]();};}function saveUpdates(_0x3ad81f,_0x47da71){return function(_0x5b5a1c){if(_0x5b5a1c){return _0x5b5a1c['update'](_0x3ad81f)['then'](function(_0x2b36bc){return _0x2b36bc;});}return null;};}function handleEntityNotFound(_0x4538c8,_0x507250){return function(_0x5603a1){if(!_0x5603a1){_0x4538c8[_0x0638('0x18')](0x194);}return _0x5603a1;};}function handleError(_0x4fbeeb,_0x2688d5){_0x2688d5=_0x2688d5||0x1f4;return function(_0x1618f5){logger[_0x0638('0x21')](_0x1618f5[_0x0638('0x22')]);if(_0x1618f5[_0x0638('0x23')]){delete _0x1618f5['name'];}_0x4fbeeb[_0x0638('0x19')](_0x2688d5)[_0x0638('0x24')](_0x1618f5);};}exports[_0x0638('0x25')]=function(_0x124a7d,_0x595f4a){var _0x162603={},_0x3d7a1b={},_0x4564f4={'count':0x0,'rows':[]};var _0x18b501=_['map'](db[_0x0638('0x26')][_0x0638('0x27')],function(_0x5d452f){return{'name':_0x5d452f[_0x0638('0x28')],'type':_0x5d452f[_0x0638('0x29')][_0x0638('0x2a')]};});_0x3d7a1b['model']=_[_0x0638('0x2b')](_0x18b501,'name');_0x3d7a1b[_0x0638('0x2c')]=_[_0x0638('0x2d')](_0x124a7d[_0x0638('0x2c')]);_0x3d7a1b['filters']=_[_0x0638('0x2e')](_0x3d7a1b[_0x0638('0x2f')],_0x3d7a1b[_0x0638('0x2c')]);_0x162603[_0x0638('0x30')]=_['intersection'](_0x3d7a1b[_0x0638('0x2f')],qs['fields'](_0x124a7d[_0x0638('0x2c')][_0x0638('0x31')]));_0x162603[_0x0638('0x30')]=_0x162603[_0x0638('0x30')][_0x0638('0x32')]?_0x162603[_0x0638('0x30')]:_0x3d7a1b['model'];if(!_0x124a7d['query']['hasOwnProperty']('nolimit')){_0x162603[_0x0638('0x1e')]=qs[_0x0638('0x1e')](_0x124a7d[_0x0638('0x2c')][_0x0638('0x1e')]);_0x162603['offset']=qs[_0x0638('0x1c')](_0x124a7d[_0x0638('0x2c')]['offset']);}_0x162603[_0x0638('0x33')]=qs[_0x0638('0x34')](_0x124a7d['query'][_0x0638('0x34')]);_0x162603[_0x0638('0x35')]=qs[_0x0638('0x36')](_[_0x0638('0x37')](_0x124a7d['query'],_0x3d7a1b[_0x0638('0x36')]),_0x18b501);if(_0x124a7d[_0x0638('0x2c')]['filter']){_0x162603[_0x0638('0x35')]=_[_0x0638('0x38')](_0x162603[_0x0638('0x35')],{'$or':_[_0x0638('0x2b')](_0x18b501,function(_0x4283b3){if(_0x4283b3['type']!==_0x0638('0x39')){var _0x48d9a1={};_0x48d9a1[_0x4283b3['name']]={'$like':'%'+_0x124a7d[_0x0638('0x2c')][_0x0638('0x3a')]+'%'};return _0x48d9a1;}})});}_0x162603=_[_0x0638('0x38')]({},_0x162603,_0x124a7d[_0x0638('0x3b')]);var _0x223d48={'where':_0x162603[_0x0638('0x35')]};return db[_0x0638('0x26')][_0x0638('0x1f')](_0x223d48)['then'](function(_0x261d0f){_0x4564f4['count']=_0x261d0f;if(_0x124a7d['query'][_0x0638('0x3c')]){_0x162603[_0x0638('0x3d')]=[{'all':!![]}];}return db['Team'][_0x0638('0x3e')](_0x162603);})[_0x0638('0x3f')](function(_0x21ae57){_0x4564f4[_0x0638('0x40')]=_0x21ae57;return _0x4564f4;})[_0x0638('0x3f')](respondWithFilteredResult(_0x595f4a,_0x162603))['catch'](handleError(_0x595f4a,null));};exports['show']=function(_0x12883f,_0x19ff11){var _0x566c75={'raw':![],'where':{'id':_0x12883f[_0x0638('0x41')]['id']}},_0x232105={};_0x232105[_0x0638('0x2f')]=_[_0x0638('0x2d')](db[_0x0638('0x26')][_0x0638('0x27')]);_0x232105['query']=_['keys'](_0x12883f['query']);_0x232105['filters']=_[_0x0638('0x2e')](_0x232105[_0x0638('0x2f')],_0x232105[_0x0638('0x2c')]);_0x566c75['attributes']=_[_0x0638('0x2e')](_0x232105[_0x0638('0x2f')],qs[_0x0638('0x31')](_0x12883f[_0x0638('0x2c')][_0x0638('0x31')]));_0x566c75[_0x0638('0x30')]=_0x566c75[_0x0638('0x30')]['length']?_0x566c75['attributes']:_0x232105[_0x0638('0x2f')];if(_0x12883f[_0x0638('0x2c')]['includeAll']){_0x566c75[_0x0638('0x3d')]=[{'all':!![]}];}_0x566c75=_[_0x0638('0x38')]({},_0x566c75,_0x12883f['options']);return db[_0x0638('0x26')][_0x0638('0x42')](_0x566c75)[_0x0638('0x3f')](handleEntityNotFound(_0x19ff11,null))['then'](respondWithResult(_0x19ff11,null))[_0x0638('0x43')](handleError(_0x19ff11,null));};exports[_0x0638('0x44')]=function(_0x3df8ac,_0x7ed923){return db[_0x0638('0x26')]['create'](_0x3df8ac['body'],{})[_0x0638('0x3f')](function(_0x28959d){var _0x3202a5=_0x3df8ac[_0x0638('0x45')][_0x0638('0x46')]({'plain':!![]});if(!_0x3202a5)throw new Error(_0x0638('0x47'));if(_0x3202a5[_0x0638('0x48')]===_0x0638('0x45')){var _0x504e0c=_0x28959d[_0x0638('0x46')]({'plain':!![]});var _0x5722c9='Teams';return db[_0x0638('0x49')]['find']({'where':{'name':_0x5722c9,'userProfileId':_0x3202a5[_0x0638('0x4a')]},'raw':!![]})['then'](function(_0xc20e98){if(_0xc20e98&&_0xc20e98[_0x0638('0x4b')]===0x0){return db[_0x0638('0x4c')]['create']({'name':_0x504e0c[_0x0638('0x23')],'resourceId':_0x504e0c['id'],'type':_0xc20e98[_0x0638('0x23')],'sectionId':_0xc20e98['id']},{})['then'](function(){return _0x28959d;});}else{return _0x28959d;}})[_0x0638('0x43')](function(_0x453584){logger[_0x0638('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x453584);throw _0x453584;});}return _0x28959d;})['then'](respondWithResult(_0x7ed923,0xc9))['catch'](handleError(_0x7ed923,null));};exports[_0x0638('0x4d')]=function(_0x250298,_0xa65efa){if(_0x250298[_0x0638('0x4e')]['id']){delete _0x250298[_0x0638('0x4e')]['id'];}return db[_0x0638('0x26')][_0x0638('0x42')]({'where':{'id':_0x250298['params']['id']}})[_0x0638('0x3f')](handleEntityNotFound(_0xa65efa,null))[_0x0638('0x3f')](saveUpdates(_0x250298[_0x0638('0x4e')],null))[_0x0638('0x3f')](respondWithResult(_0xa65efa,null))[_0x0638('0x43')](handleError(_0xa65efa,null));};exports['destroy']=function(_0x5c19dd,_0x222a69){var _0x21f69f=_0x5c19dd[_0x0638('0x41')]['id'];var _0x446a51=[];return db[_0x0638('0x4f')][_0x0638('0x50')](function(_0x5b8793){var _0x4a10e3=_0x0638('0x51')+_0x21f69f;return db[_0x0638('0x4f')][_0x0638('0x2c')](_0x4a10e3,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793})['then'](function(_0x4001c7){_0x446a51=_['map'](_0x4001c7,function(_0x1c5684){return Number(_0x1c5684['UserId']);});})[_0x0638('0x3f')](function(){var _0x191548=_0x0638('0x55')+_0x21f69f;return db['sequelize'][_0x0638('0x2c')](_0x191548,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x2adaf8){var _0x1d951e=_['map'](_0x2adaf8,function(_0x28ad67){return Number(_0x28ad67[_0x0638('0x56')]);});return db[_0x0638('0x57')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'VoiceQueueId':{'$in':_0x1d951e}},'transaction':_0x5b8793});})['then'](function(){var _0x32e786=_0x0638('0x59')+_0x21f69f;return db['sequelize'][_0x0638('0x2c')](_0x32e786,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x2e11c1){var _0x404a14=_['map'](_0x2e11c1,function(_0x459fbb){return Number(_0x459fbb[_0x0638('0x5a')]);});return db[_0x0638('0x5b')]['destroy']({'where':{'UserId':{'$in':_0x446a51},'MailQueueId':{'$in':_0x404a14}},'transaction':_0x5b8793});})['then'](function(){var _0x558071='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x21f69f;return db['sequelize'][_0x0638('0x2c')](_0x558071,{'type':db['Sequelize'][_0x0638('0x53')]['SELECT'],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x4032b4){var _0x15d9f7=_[_0x0638('0x2b')](_0x4032b4,function(_0x1bffe0){return Number(_0x1bffe0['SmsQueueId']);});return db[_0x0638('0x5c')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'SmsQueueId':{'$in':_0x15d9f7}},'transaction':_0x5b8793});})[_0x0638('0x3f')](function(){var _0x54ae3a=_0x0638('0x5d')+_0x21f69f;return db[_0x0638('0x4f')][_0x0638('0x2c')](_0x54ae3a,{'type':db[_0x0638('0x52')][_0x0638('0x53')]['SELECT'],'raw':!![],'transaction':_0x5b8793});})['then'](function(_0xac88aa){var _0x429c56=_['map'](_0xac88aa,function(_0x4cd70f){return Number(_0x4cd70f[_0x0638('0x5e')]);});return db[_0x0638('0x5f')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'ChatQueueId':{'$in':_0x429c56}},'transaction':_0x5b8793});})['then'](function(){var _0x113672='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x21f69f;return db['sequelize'][_0x0638('0x2c')](_0x113672,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x24fc3e){var _0x38ba95=_[_0x0638('0x2b')](_0x24fc3e,function(_0x8011e7){return Number(_0x8011e7['FaxQueueId']);});return db[_0x0638('0x60')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'FaxQueueId':{'$in':_0x38ba95}},'transaction':_0x5b8793});})[_0x0638('0x3f')](function(){var _0x114770='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x21f69f;return db[_0x0638('0x4f')]['query'](_0x114770,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x3b3a70){var _0x4a7a06=_[_0x0638('0x2b')](_0x3b3a70,function(_0x2276a4){return Number(_0x2276a4[_0x0638('0x61')]);});return db[_0x0638('0x62')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'OpenchannelQueueId':{'$in':_0x4a7a06}},'transaction':_0x5b8793});})[_0x0638('0x3f')](function(){var _0x4b654e=_0x0638('0x63')+_0x21f69f;return db['sequelize']['query'](_0x4b654e,{'type':db[_0x0638('0x52')][_0x0638('0x53')][_0x0638('0x54')],'raw':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x22bfcd){var _0x3a050f=_[_0x0638('0x2b')](_0x22bfcd,function(_0x31010a){return Number(_0x31010a[_0x0638('0x64')]);});return db[_0x0638('0x65')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'WhatsappQueueId':{'$in':_0x3a050f}},'transaction':_0x5b8793});})[_0x0638('0x3f')](function(){return db[_0x0638('0x66')][_0x0638('0x42')]({'where':{'TeamId':_0x21f69f}});})[_0x0638('0x3f')](function(_0x15b1a5){if(_0x15b1a5===null){return;}return db[_0x0638('0x67')][_0x0638('0x58')]({'where':{'UserId':{'$in':_0x446a51},'VoicePrefixId':_0x15b1a5[_0x0638('0x68')]},'transaction':_0x5b8793});})[_0x0638('0x3f')](function(){return db['Team'][_0x0638('0x58')]({'where':{'id':_0x21f69f},'cascade':!![],'transaction':_0x5b8793});})[_0x0638('0x3f')](function(_0x131636){if(_0x131636===0x0){_0x222a69['sendStatus'](0x194);}else{return db[_0x0638('0x4c')]['destroy']({'where':{'type':'Teams','resourceId':_0x21f69f},'cascade':!![],'transaction':_0x5b8793})[_0x0638('0x3f')](function(){_0x222a69[_0x0638('0x19')](0xcc)[_0x0638('0x1a')]();});}})['catch'](function(_0xb6503f){_0x222a69[_0x0638('0x19')](0x1f4)[_0x0638('0x24')](_0xb6503f);});});};exports[_0x0638('0x69')]=function(_0x3fa5d2,_0x34fce4,_0x2c4a4a){return db[_0x0638('0x26')][_0x0638('0x6a')]({'where':{'id':_0x3fa5d2[_0x0638('0x41')]['id']}})[_0x0638('0x3f')](handleEntityNotFound(_0x34fce4,null))[_0x0638('0x3f')](function(_0x3ce0e3){if(!_0x3fa5d2['query'][_0x0638('0x6b')]||!utils[_0x0638('0x6c')](_0x3fa5d2[_0x0638('0x2c')][_0x0638('0x6b')])){throw new db[(_0x0638('0x52'))]['ValidationError'](_0x0638('0x6d'));}var _0x53bd49={};var _0x5bfe64={};_0x5bfe64[_0x0638('0x2f')]=_[_0x0638('0x2d')](db[_[_0x0638('0x6e')](_0x3fa5d2['query'][_0x0638('0x6b')][_0x0638('0x6f')]())+_0x0638('0x70')][_0x0638('0x27')]);_0x5bfe64[_0x0638('0x2c')]=_[_0x0638('0x2d')](_0x3fa5d2[_0x0638('0x2c')]);_0x5bfe64['filters']=_['intersection'](_0x5bfe64['model'],_0x5bfe64[_0x0638('0x2c')]);_0x53bd49[_0x0638('0x30')]=_[_0x0638('0x2e')](_0x5bfe64[_0x0638('0x2f')],qs['fields'](_0x3fa5d2[_0x0638('0x2c')]['fields']));_0x53bd49[_0x0638('0x30')]=_0x53bd49[_0x0638('0x30')][_0x0638('0x32')]?_0x53bd49['attributes']:_0x5bfe64[_0x0638('0x2f')];_0x53bd49[_0x0638('0x1e')]=qs['limit'](_0x3fa5d2['query'][_0x0638('0x1e')]);_0x53bd49[_0x0638('0x1c')]=qs[_0x0638('0x1c')](_0x3fa5d2[_0x0638('0x2c')][_0x0638('0x1c')]);_0x53bd49[_0x0638('0x33')]=qs['sort'](_0x3fa5d2[_0x0638('0x2c')][_0x0638('0x34')]);_0x53bd49[_0x0638('0x35')]=qs[_0x0638('0x36')](_[_0x0638('0x37')](_0x3fa5d2[_0x0638('0x2c')],_0x5bfe64[_0x0638('0x36')]));_0x53bd49=_[_0x0638('0x38')]({},_0x53bd49,_0x3fa5d2[_0x0638('0x3b')]);return _0x3ce0e3[_0x0638('0x46')+_[_0x0638('0x6e')](_0x3fa5d2[_0x0638('0x2c')]['channel']['toLowerCase']())+_0x0638('0x71')](_0x53bd49);})[_0x0638('0x3f')](respondWithResult(_0x34fce4,null))[_0x0638('0x43')](handleError(_0x34fce4,null));};exports['addQueues']=function(_0x432bfa,_0x3ffab3,_0x492d5d){return db[_0x0638('0x26')]['findOne']({'where':{'id':_0x432bfa['params']['id']}})[_0x0638('0x3f')](function(_0x3385e5){if(_0x3385e5){if(!_0x432bfa[_0x0638('0x4e')][_0x0638('0x6b')]||!utils[_0x0638('0x6c')](_0x432bfa['body'][_0x0638('0x6b')])){throw new db['Sequelize'][(_0x0638('0x72'))](_0x0638('0x6d'));}return _0x3385e5[_0x0638('0x73')+_[_0x0638('0x6e')](_0x432bfa[_0x0638('0x4e')][_0x0638('0x6b')][_0x0638('0x6f')]())+_0x0638('0x71')](_0x432bfa[_0x0638('0x4e')]['ids']);}return null;})[_0x0638('0x3f')](handleEntityNotFound(_0x3ffab3,null))[_0x0638('0x3f')](respondWithStatusCode(_0x3ffab3,null))[_0x0638('0x43')](handleError(_0x3ffab3,null));};exports[_0x0638('0x74')]=function(_0x416b21,_0x50d104,_0x3027ca){return db[_0x0638('0x26')][_0x0638('0x6a')]({'where':{'id':_0x416b21[_0x0638('0x41')]['id']}})[_0x0638('0x3f')](function(_0x41f2d7){if(_0x41f2d7){if(!_0x416b21[_0x0638('0x2c')][_0x0638('0x6b')]||!utils[_0x0638('0x6c')](_0x416b21[_0x0638('0x2c')][_0x0638('0x6b')])){throw new db[(_0x0638('0x52'))]['ValidationError']('Unknown\x20channel');}return _0x41f2d7[_0x0638('0x75')+_['capitalize'](_0x416b21[_0x0638('0x2c')][_0x0638('0x6b')]['toLowerCase']())+_0x0638('0x71')](_0x416b21['query']['ids']);}return null;})[_0x0638('0x3f')](handleEntityNotFound(_0x50d104,null))['then'](respondWithStatusCode(_0x50d104,null))['catch'](handleError(_0x50d104,null));};exports[_0x0638('0x76')]=function(_0x117b35,_0x135288){var _0x297d51=_[_0x0638('0x77')](_0x117b35['body'][_0x0638('0x78')])?_0x117b35['body'][_0x0638('0x78')]:[_0x117b35['body'][_0x0638('0x78')]];var _0x8ae1f5=_0x117b35[_0x0638('0x41')]['id'];return db[_0x0638('0x26')][_0x0638('0x42')]({'where':{'id':_0x8ae1f5}})[_0x0638('0x3f')](handleEntityNotFound(_0x135288,null))['then'](function(_0x247a12){if(_0x247a12){var _0x3ef298=[_0x0638('0x79'),_0x0638('0x7a'),_0x0638('0x7b'),_0x0638('0x7c'),'Fax',_0x0638('0x7d'),_0x0638('0x7e')];return db[_0x0638('0x4f')][_0x0638('0x50')](function(_0x2ddfd2){var _0x3a0aa9=_[_0x0638('0x2b')](_0x3ef298,function(_0x175bc6){var _0xed155f={'attributes':['id',_0x0638('0x23')]};if(_0x175bc6==='Voice'){_0xed155f[_0x0638('0x7f')]={'attributes':[_0x0638('0x80')]};}return _0x247a12[_0x0638('0x46')+_0x175bc6+_0x0638('0x71')](_0xed155f)['then'](function(_0x112b20){var _0x3cf005=_[_0x0638('0x2b')](_0x112b20,function(_0x56583b){var _0x56a830=_[_0x0638('0x2b')](_0x297d51,function(_0x5c5088){var _0x7e80b8={'where':{'UserId':_0x5c5088,[_0x175bc6+_0x0638('0x81')]:_0x56583b['id']},'transaction':_0x2ddfd2};if(_0x175bc6===_0x0638('0x79')){_0x7e80b8[_0x0638('0x82')]={'penalty':_0x56583b[_0x0638('0x83')][_0x0638('0x80')]};}return db[_0x0638('0x84')+_0x175bc6+_0x0638('0x70')]['findOrCreate'](_0x7e80b8)[_0x0638('0x3f')](function(){socket['emit']('user'+_0x175bc6+_0x0638('0x85'),{'UserId':_0x5c5088,[_0x175bc6+_0x0638('0x81')]:_0x56583b['id']});if(_0x175bc6!==_0x0638('0x79')){return;}return db[_0x0638('0x84')]['findAll']({'where':{'id':_0x297d51,'online':0x1},'attributes':['id','name',_0x0638('0x86'),_0x0638('0x87'),_0x0638('0x88')],'raw':!![]})[_0x0638('0x3f')](function(_0x11a91f){var _0x1f8b39=_['map'](_0x11a91f,function(_0x2e6b07){return db[_0x0638('0x89')][_0x0638('0x8a')]({'membername':_0x2e6b07[_0x0638('0x23')],'UserId':_0x2e6b07['id'],'queue_name':_0x56583b[_0x0638('0x23')],'VoiceQueueId':_0x56583b['id'],'interface':_[_0x0638('0x8b')](_0x2e6b07[_0x0638('0x88')])?util[_0x0638('0x8c')](_0x0638('0x8d'),_0x2e6b07['name']):_0x2e6b07[_0x0638('0x88')],'paused':_0x2e6b07[_0x0638('0x87')]||![],'penalty':_0x56583b[_0x0638('0x83')][_0x0638('0x80')]},{'transaction':_0x2ddfd2});});return Promise[_0x0638('0x8e')](_0x1f8b39);});});});return Promise[_0x0638('0x8e')](_0x56a830);});return Promise[_0x0638('0x8e')](_0x3cf005);})[_0x0638('0x3f')](function(){return db[_0x0638('0x66')][_0x0638('0x6a')]({'where':{'teamId':_0x8ae1f5}})[_0x0638('0x3f')](function(_0x26cc23){if(_0x26cc23){var _0x1a0bb3=_[_0x0638('0x2b')](_0x297d51,function(_0x501e88){db[_0x0638('0x67')]['upsert']({'UserId':_0x501e88,'VoicePrefixId':_0x26cc23[_0x0638('0x68')]});});return Promise[_0x0638('0x8e')](_0x1a0bb3);}});});});return Promise[_0x0638('0x8e')](_0x3a0aa9)[_0x0638('0x3f')](function(){return _0x247a12[_0x0638('0x76')](_0x297d51,{'transaction':_0x2ddfd2})[_0x0638('0x8f')](function(_0x397ed7){return _0x397ed7;});});});}})['then'](respondWithResult(_0x135288,null))[_0x0638('0x43')](handleError(_0x135288,null));};exports[_0x0638('0x90')]=function(_0x121ce9,_0x16a38c){var _0x4c0947=_[_0x0638('0x77')](_0x121ce9['query'][_0x0638('0x78')])?_0x121ce9[_0x0638('0x2c')][_0x0638('0x78')]:[_0x121ce9[_0x0638('0x2c')][_0x0638('0x78')]];var _0x40800f=_0x121ce9[_0x0638('0x41')]['id'];return db[_0x0638('0x26')][_0x0638('0x42')]({'where':{'id':_0x40800f}})[_0x0638('0x3f')](handleEntityNotFound(_0x16a38c,null))[_0x0638('0x3f')](function(_0x547537){if(_0x547537){var _0x236244=[_0x0638('0x79'),'Chat',_0x0638('0x7b'),_0x0638('0x7c'),_0x0638('0x91'),_0x0638('0x7d'),_0x0638('0x7e')];return db[_0x0638('0x4f')][_0x0638('0x50')](function(_0x592a5){var _0x148dc7=_[_0x0638('0x2b')](_0x236244,function(_0x26408d){var _0x294e3a={'attributes':['id','name']};return _0x547537[_0x0638('0x46')+_0x26408d+_0x0638('0x71')](_0x294e3a)['then'](function(_0x4bf80){var _0x4d9123=_[_0x0638('0x2b')](_0x4bf80,function(_0x197fb5){return _0x197fb5[_0x0638('0x90')](_0x4c0947,{'transaction':_0x592a5})[_0x0638('0x3f')](function(){var _0x4d3888=_[_0x0638('0x2b')](_0x4c0947,function(_0x132517){socket['emit'](_0x0638('0x45')+_0x26408d+_0x0638('0x92'),{'UserId':Number(_0x132517),[_0x26408d+_0x0638('0x81')]:_0x197fb5['id']});if(_0x26408d!==_0x0638('0x79')){return;}return db['UserVoiceQueueRt'][_0x0638('0x58')]({'where':{'VoiceQueueId':_0x197fb5['id'],'UserId':_0x132517},'transaction':_0x592a5});});return Promise[_0x0638('0x8e')](_0x4d3888);});});return Promise['all'](_0x4d9123);});});return Promise[_0x0638('0x8e')](_0x148dc7)[_0x0638('0x3f')](function(){return _0x547537[_0x0638('0x90')](_0x4c0947,{'transaction':_0x592a5});})[_0x0638('0x3f')](function(){return db['TeamVoicePrefix'][_0x0638('0x6a')]({'where':{'teamId':_0x40800f}})[_0x0638('0x3f')](function(_0x4633bc){if(_0x4633bc){var _0x3d4cbe=_['map'](_0x4c0947,function(_0xe30c4d){db[_0x0638('0x67')][_0x0638('0x58')]({'where':{'UserId':_0xe30c4d,'VoicePrefixId':_0x4633bc[_0x0638('0x68')]}});});return Promise[_0x0638('0x8e')](_0x3d4cbe);}});});});}})[_0x0638('0x3f')](respondWithStatusCode(_0x16a38c,null))[_0x0638('0x43')](handleError(_0x16a38c,null));};exports[_0x0638('0x93')]=function(_0x384164,_0x31b756,_0x3d6cc9){var _0x65d476={};var _0x3423fa={};var _0x1fb457;var _0x5d172e;return db[_0x0638('0x26')][_0x0638('0x6a')]({'where':{'id':_0x384164[_0x0638('0x41')]['id']}})[_0x0638('0x3f')](handleEntityNotFound(_0x31b756,null))[_0x0638('0x3f')](function(_0x2b1863){if(_0x2b1863){_0x1fb457=_0x2b1863;_0x3423fa[_0x0638('0x2f')]=_[_0x0638('0x2d')](db[_0x0638('0x84')][_0x0638('0x27')]);_0x3423fa[_0x0638('0x2c')]=_[_0x0638('0x2d')](_0x384164[_0x0638('0x2c')]);_0x3423fa[_0x0638('0x36')]=_[_0x0638('0x2e')](_0x3423fa[_0x0638('0x2f')],_0x3423fa[_0x0638('0x2c')]);_0x65d476[_0x0638('0x30')]=_['intersection'](_0x3423fa[_0x0638('0x2f')],qs[_0x0638('0x31')](_0x384164[_0x0638('0x2c')][_0x0638('0x31')]));_0x65d476['attributes']=_0x65d476[_0x0638('0x30')][_0x0638('0x32')]?_0x65d476[_0x0638('0x30')]:_0x3423fa[_0x0638('0x2f')];_0x65d476[_0x0638('0x33')]=qs[_0x0638('0x34')](_0x384164['query'][_0x0638('0x34')]);_0x65d476[_0x0638('0x35')]=qs[_0x0638('0x36')](_[_0x0638('0x37')](_0x384164[_0x0638('0x2c')],_0x3423fa[_0x0638('0x36')]));if(_0x384164[_0x0638('0x2c')][_0x0638('0x3a')]){_0x65d476[_0x0638('0x35')]=_[_0x0638('0x38')](_0x65d476[_0x0638('0x35')],{'$or':_[_0x0638('0x2b')](_0x65d476[_0x0638('0x30')],function(_0x350062){var _0x1569aa={};_0x1569aa[_0x350062]={'$like':'%'+_0x384164['query'][_0x0638('0x3a')]+'%'};return _0x1569aa;})});}_0x65d476=_[_0x0638('0x38')]({},_0x65d476,_0x384164['options']);return _0x1fb457[_0x0638('0x93')](_0x65d476);}})[_0x0638('0x3f')](function(_0x49a0db){if(_0x49a0db){_0x5d172e=_0x49a0db[_0x0638('0x32')];if(!_0x384164[_0x0638('0x2c')][_0x0638('0x94')]('nolimit')){_0x65d476['limit']=qs[_0x0638('0x1e')](_0x384164[_0x0638('0x2c')]['limit']);_0x65d476[_0x0638('0x1c')]=qs[_0x0638('0x1c')](_0x384164['query'][_0x0638('0x1c')]);}return _0x1fb457['getAgents'](_0x65d476);}})[_0x0638('0x3f')](function(_0x403c53){if(_0x403c53){return _0x403c53?{'count':_0x5d172e,'rows':_0x403c53}:null;}})[_0x0638('0x3f')](respondWithResult(_0x31b756,null))['catch'](handleError(_0x31b756,null));};