Built motion from commit 14588770.|2.5.38
[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 _0x6ef4=['intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','VIRTUAL','where','includeAll','include','show','params','rawAttributes','options','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','sequelize','transaction','Sequelize','SELECT','UserId','VoiceQueueId','UserVoiceQueue','destroy','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','QueryTypes','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserProfileResource','Teams','getQueues','findOne','channel','capitalize','toLowerCase','Queues','addQueues','isValidChannel','ValidationError','Unknown\x20channel','ids','removeQueues','remove','addAgents','Voice','Chat','Mail','Fax','Openchannel','penalty','QueueId','TeamVoiceQueue','Queue','emit','User','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','interface','voicePause','all','UserVoicePrefix','VoicePrefixId','spread','removeAgents','isArray','Sms','Whatsapp','Queue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./team.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','error','stack','name','send','map','Team','fieldName','type','query','keys','filters'];(function(_0xf2b58e,_0x388716){var _0x255788=function(_0x22db5f){while(--_0x22db5f){_0xf2b58e['push'](_0xf2b58e['shift']());}};_0x255788(++_0x388716);}(_0x6ef4,0x64));var _0x46ef=function(_0x5de889,_0x115fc4){_0x5de889=_0x5de889-0x0;var _0x549a4f=_0x6ef4[_0x5de889];return _0x549a4f;};'use strict';var emlformat=require(_0x46ef('0x0'));var rimraf=require(_0x46ef('0x1'));var zipdir=require(_0x46ef('0x2'));var jsonpatch=require(_0x46ef('0x3'));var rp=require('request-promise');var moment=require(_0x46ef('0x4'));var BPromise=require(_0x46ef('0x5'));var Mustache=require('mustache');var util=require(_0x46ef('0x6'));var path=require(_0x46ef('0x7'));var sox=require(_0x46ef('0x8'));var csv=require('to-csv');var ejs=require(_0x46ef('0x9'));var fs=require('fs');var fs_extra=require(_0x46ef('0xa'));var _=require(_0x46ef('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x46ef('0xc'));var deskjs=require(_0x46ef('0xd'));var toCsv=require(_0x46ef('0xe'));var querystring=require(_0x46ef('0xf'));var Papa=require(_0x46ef('0x10'));var Redis=require(_0x46ef('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x46ef('0x12'));var as=require(_0x46ef('0x13'));var hardwareService=require(_0x46ef('0x14'));var logger=require(_0x46ef('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x46ef('0x16'));var licenseUtil=require(_0x46ef('0x17'));var db=require('../../mysqldb')['db'];config[_0x46ef('0x18')]=_[_0x46ef('0x19')](config[_0x46ef('0x18')],{'host':_0x46ef('0x1a'),'port':0x18eb});var socket=require(_0x46ef('0x1b'))(new Redis(config[_0x46ef('0x18')]));require(_0x46ef('0x1c'))[_0x46ef('0x1d')](socket);function respondWithStatusCode(_0x28deec,_0x383890){_0x383890=_0x383890||0xcc;return function(_0x29a683){if(_0x29a683){return _0x28deec[_0x46ef('0x1e')](_0x383890);}return _0x28deec['status'](_0x383890)[_0x46ef('0x1f')]();};}function respondWithResult(_0x46e369,_0x5a345b){_0x5a345b=_0x5a345b||0xc8;return function(_0x1a6167){if(_0x1a6167){return _0x46e369[_0x46ef('0x20')](_0x5a345b)[_0x46ef('0x21')](_0x1a6167);}};}function respondWithFilteredResult(_0x1d0bf1,_0x2572ae){return function(_0x3675ca){if(_0x3675ca){var _0x59ed68=typeof _0x2572ae[_0x46ef('0x22')]===_0x46ef('0x23')&&typeof _0x2572ae[_0x46ef('0x24')]==='undefined';var _0x5b8b71=_0x3675ca[_0x46ef('0x25')];var _0x18f70d=_0x59ed68?0x0:_0x2572ae[_0x46ef('0x22')];var _0x5a3620=_0x59ed68?_0x3675ca[_0x46ef('0x25')]:_0x2572ae[_0x46ef('0x22')]+_0x2572ae[_0x46ef('0x24')];var _0x22d198;if(_0x5a3620>=_0x5b8b71){_0x5a3620=_0x5b8b71;_0x22d198=0xc8;}else{_0x22d198=0xce;}_0x1d0bf1[_0x46ef('0x20')](_0x22d198);return _0x1d0bf1[_0x46ef('0x26')](_0x46ef('0x27'),_0x18f70d+'-'+_0x5a3620+'/'+_0x5b8b71)[_0x46ef('0x21')](_0x3675ca);}return null;};}function patchUpdates(_0x4bb1b3){return function(_0x259afe){try{jsonpatch[_0x46ef('0x28')](_0x259afe,_0x4bb1b3,!![]);}catch(_0x464f0c){return BPromise['reject'](_0x464f0c);}return _0x259afe[_0x46ef('0x29')]();};}function saveUpdates(_0x5d8c11,_0x477815){return function(_0x34c17b){if(_0x34c17b){return _0x34c17b[_0x46ef('0x2a')](_0x5d8c11)[_0x46ef('0x2b')](function(_0x44e91f){return _0x44e91f;});}return null;};}function handleEntityNotFound(_0x344776,_0x1fe322){return function(_0x2ec08e){if(!_0x2ec08e){_0x344776[_0x46ef('0x1e')](0x194);}return _0x2ec08e;};}function handleError(_0x8a7e93,_0x258e7a){_0x258e7a=_0x258e7a||0x1f4;return function(_0x3422e7){logger[_0x46ef('0x2c')](_0x3422e7[_0x46ef('0x2d')]);if(_0x3422e7[_0x46ef('0x2e')]){delete _0x3422e7['name'];}_0x8a7e93[_0x46ef('0x20')](_0x258e7a)[_0x46ef('0x2f')](_0x3422e7);};}exports['index']=function(_0x793a25,_0x234f7a){var _0x523240={},_0x1343b4={},_0x354018={'count':0x0,'rows':[]};var _0x6a41f9=_[_0x46ef('0x30')](db[_0x46ef('0x31')]['rawAttributes'],function(_0xa8abb7){return{'name':_0xa8abb7[_0x46ef('0x32')],'type':_0xa8abb7[_0x46ef('0x33')]['key']};});_0x1343b4['model']=_[_0x46ef('0x30')](_0x6a41f9,'name');_0x1343b4[_0x46ef('0x34')]=_[_0x46ef('0x35')](_0x793a25[_0x46ef('0x34')]);_0x1343b4[_0x46ef('0x36')]=_[_0x46ef('0x37')](_0x1343b4[_0x46ef('0x38')],_0x1343b4[_0x46ef('0x34')]);_0x523240['attributes']=_[_0x46ef('0x37')](_0x1343b4['model'],qs['fields'](_0x793a25[_0x46ef('0x34')][_0x46ef('0x39')]));_0x523240[_0x46ef('0x3a')]=_0x523240[_0x46ef('0x3a')][_0x46ef('0x3b')]?_0x523240[_0x46ef('0x3a')]:_0x1343b4[_0x46ef('0x38')];if(!_0x793a25[_0x46ef('0x34')][_0x46ef('0x3c')](_0x46ef('0x3d'))){_0x523240[_0x46ef('0x24')]=qs[_0x46ef('0x24')](_0x793a25[_0x46ef('0x34')]['limit']);_0x523240['offset']=qs[_0x46ef('0x22')](_0x793a25[_0x46ef('0x34')][_0x46ef('0x22')]);}_0x523240[_0x46ef('0x3e')]=qs[_0x46ef('0x3f')](_0x793a25['query'][_0x46ef('0x3f')]);_0x523240['where']=qs['filters'](_[_0x46ef('0x40')](_0x793a25['query'],_0x1343b4[_0x46ef('0x36')]),_0x6a41f9);if(_0x793a25['query'][_0x46ef('0x41')]){_0x523240['where']=_[_0x46ef('0x42')](_0x523240['where'],{'$or':_[_0x46ef('0x30')](_0x6a41f9,function(_0x4bd4c9){if(_0x4bd4c9[_0x46ef('0x33')]!==_0x46ef('0x43')){var _0x47648f={};_0x47648f[_0x4bd4c9[_0x46ef('0x2e')]]={'$like':'%'+_0x793a25[_0x46ef('0x34')][_0x46ef('0x41')]+'%'};return _0x47648f;}})});}_0x523240=_['merge']({},_0x523240,_0x793a25['options']);var _0xabf45a={'where':_0x523240[_0x46ef('0x44')]};return db['Team'][_0x46ef('0x25')](_0xabf45a)[_0x46ef('0x2b')](function(_0x5436b6){_0x354018[_0x46ef('0x25')]=_0x5436b6;if(_0x793a25[_0x46ef('0x34')][_0x46ef('0x45')]){_0x523240[_0x46ef('0x46')]=[{'all':!![]}];}return db[_0x46ef('0x31')]['findAll'](_0x523240);})['then'](function(_0x46c061){_0x354018['rows']=_0x46c061;return _0x354018;})[_0x46ef('0x2b')](respondWithFilteredResult(_0x234f7a,_0x523240))['catch'](handleError(_0x234f7a,null));};exports[_0x46ef('0x47')]=function(_0x3f4dc0,_0xa0a136){var _0x33f01c={'raw':![],'where':{'id':_0x3f4dc0[_0x46ef('0x48')]['id']}},_0x509a5d={};_0x509a5d[_0x46ef('0x38')]=_[_0x46ef('0x35')](db[_0x46ef('0x31')][_0x46ef('0x49')]);_0x509a5d[_0x46ef('0x34')]=_[_0x46ef('0x35')](_0x3f4dc0[_0x46ef('0x34')]);_0x509a5d[_0x46ef('0x36')]=_[_0x46ef('0x37')](_0x509a5d['model'],_0x509a5d['query']);_0x33f01c[_0x46ef('0x3a')]=_[_0x46ef('0x37')](_0x509a5d[_0x46ef('0x38')],qs[_0x46ef('0x39')](_0x3f4dc0[_0x46ef('0x34')][_0x46ef('0x39')]));_0x33f01c[_0x46ef('0x3a')]=_0x33f01c[_0x46ef('0x3a')]['length']?_0x33f01c[_0x46ef('0x3a')]:_0x509a5d[_0x46ef('0x38')];if(_0x3f4dc0[_0x46ef('0x34')][_0x46ef('0x45')]){_0x33f01c[_0x46ef('0x46')]=[{'all':!![]}];}_0x33f01c=_[_0x46ef('0x42')]({},_0x33f01c,_0x3f4dc0[_0x46ef('0x4a')]);return db['Team']['find'](_0x33f01c)['then'](handleEntityNotFound(_0xa0a136,null))['then'](respondWithResult(_0xa0a136,null))[_0x46ef('0x4b')](handleError(_0xa0a136,null));};exports[_0x46ef('0x4c')]=function(_0x5e744e,_0x4bc650){return db[_0x46ef('0x31')][_0x46ef('0x4c')](_0x5e744e[_0x46ef('0x4d')],{})[_0x46ef('0x2b')](function(_0x56b898){var _0x2cfa63=_0x5e744e[_0x46ef('0x4e')]['get']({'plain':!![]});if(!_0x2cfa63)throw new Error(_0x46ef('0x4f'));if(_0x2cfa63['role']===_0x46ef('0x4e')){var _0x48075a=_0x56b898[_0x46ef('0x50')]({'plain':!![]});var _0x4e5c50='Teams';return db['UserProfileSection']['find']({'where':{'name':_0x4e5c50,'userProfileId':_0x2cfa63[_0x46ef('0x51')]},'raw':!![]})['then'](function(_0x51092b){if(_0x51092b&&_0x51092b[_0x46ef('0x52')]===0x0){return db['UserProfileResource'][_0x46ef('0x4c')]({'name':_0x48075a['name'],'resourceId':_0x48075a['id'],'type':_0x51092b[_0x46ef('0x2e')],'sectionId':_0x51092b['id']},{})[_0x46ef('0x2b')](function(){return _0x56b898;});}else{return _0x56b898;}})['catch'](function(_0x35750d){logger['error'](_0x46ef('0x53'),_0x35750d);throw _0x35750d;});}return _0x56b898;})[_0x46ef('0x2b')](respondWithResult(_0x4bc650,0xc9))[_0x46ef('0x4b')](handleError(_0x4bc650,null));};exports[_0x46ef('0x2a')]=function(_0x3c092d,_0xbfa838){if(_0x3c092d[_0x46ef('0x4d')]['id']){delete _0x3c092d[_0x46ef('0x4d')]['id'];}return db[_0x46ef('0x31')][_0x46ef('0x54')]({'where':{'id':_0x3c092d[_0x46ef('0x48')]['id']}})[_0x46ef('0x2b')](handleEntityNotFound(_0xbfa838,null))[_0x46ef('0x2b')](saveUpdates(_0x3c092d['body'],null))[_0x46ef('0x2b')](respondWithResult(_0xbfa838,null))[_0x46ef('0x4b')](handleError(_0xbfa838,null));};exports['destroy']=function(_0x3bc974,_0x54eb77){var _0x3ea953=_0x3bc974['params']['id'];var _0x45215b=[];return db[_0x46ef('0x55')][_0x46ef('0x56')](function(_0x3bbd54){var _0x5a8232='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x3ea953;return db[_0x46ef('0x55')]['query'](_0x5a8232,{'type':db[_0x46ef('0x57')]['QueryTypes'][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54})['then'](function(_0x1b3722){_0x45215b=_[_0x46ef('0x30')](_0x1b3722,function(_0x8f8576){return Number(_0x8f8576[_0x46ef('0x59')]);});})['then'](function(){var _0x49da47='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3ea953;return db[_0x46ef('0x55')][_0x46ef('0x34')](_0x49da47,{'type':db[_0x46ef('0x57')]['QueryTypes'][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})['then'](function(_0x3d83f9){var _0x22a764=_[_0x46ef('0x30')](_0x3d83f9,function(_0x24d537){return Number(_0x24d537[_0x46ef('0x5a')]);});return db[_0x46ef('0x5b')][_0x46ef('0x5c')]({'where':{'UserId':{'$in':_0x45215b},'VoiceQueueId':{'$in':_0x22a764}},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){var _0x29f302=_0x46ef('0x5d')+_0x3ea953;return db['sequelize'][_0x46ef('0x34')](_0x29f302,{'type':db[_0x46ef('0x57')]['QueryTypes'][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0x5e1a5f){var _0x401b3f=_['map'](_0x5e1a5f,function(_0x444b70){return Number(_0x444b70[_0x46ef('0x5e')]);});return db[_0x46ef('0x5f')]['destroy']({'where':{'UserId':{'$in':_0x45215b},'MailQueueId':{'$in':_0x401b3f}},'transaction':_0x3bbd54});})['then'](function(){var _0x4191f0=_0x46ef('0x60')+_0x3ea953;return db['sequelize'][_0x46ef('0x34')](_0x4191f0,{'type':db['Sequelize'][_0x46ef('0x61')]['SELECT'],'raw':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0x129430){var _0x50bb03=_[_0x46ef('0x30')](_0x129430,function(_0x31dc10){return Number(_0x31dc10['SmsQueueId']);});return db[_0x46ef('0x62')][_0x46ef('0x5c')]({'where':{'UserId':{'$in':_0x45215b},'SmsQueueId':{'$in':_0x50bb03}},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){var _0x4bedf1=_0x46ef('0x63')+_0x3ea953;return db['sequelize']['query'](_0x4bedf1,{'type':db[_0x46ef('0x57')][_0x46ef('0x61')][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0x3b8ede){var _0x32a694=_[_0x46ef('0x30')](_0x3b8ede,function(_0x2e36c1){return Number(_0x2e36c1[_0x46ef('0x64')]);});return db[_0x46ef('0x65')][_0x46ef('0x5c')]({'where':{'UserId':{'$in':_0x45215b},'ChatQueueId':{'$in':_0x32a694}},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){var _0x685a1a=_0x46ef('0x66')+_0x3ea953;return db[_0x46ef('0x55')]['query'](_0x685a1a,{'type':db[_0x46ef('0x57')][_0x46ef('0x61')][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0x57a0d1){var _0x52cff5=_[_0x46ef('0x30')](_0x57a0d1,function(_0x3e43e3){return Number(_0x3e43e3[_0x46ef('0x67')]);});return db[_0x46ef('0x68')][_0x46ef('0x5c')]({'where':{'UserId':{'$in':_0x45215b},'FaxQueueId':{'$in':_0x52cff5}},'transaction':_0x3bbd54});})['then'](function(){var _0x25c8a3='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3ea953;return db[_0x46ef('0x55')]['query'](_0x25c8a3,{'type':db[_0x46ef('0x57')][_0x46ef('0x61')][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})['then'](function(_0x204b1a){var _0x3f5c7e=_[_0x46ef('0x30')](_0x204b1a,function(_0x2e928c){return Number(_0x2e928c[_0x46ef('0x69')]);});return db[_0x46ef('0x6a')][_0x46ef('0x5c')]({'where':{'UserId':{'$in':_0x45215b},'OpenchannelQueueId':{'$in':_0x3f5c7e}},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){var _0x1510f9=_0x46ef('0x6b')+_0x3ea953;return db[_0x46ef('0x55')][_0x46ef('0x34')](_0x1510f9,{'type':db[_0x46ef('0x57')][_0x46ef('0x61')][_0x46ef('0x58')],'raw':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0xd8aa61){var _0x324597=_[_0x46ef('0x30')](_0xd8aa61,function(_0x572f10){return Number(_0x572f10[_0x46ef('0x6c')]);});return db[_0x46ef('0x6d')]['destroy']({'where':{'UserId':{'$in':_0x45215b},'WhatsappQueueId':{'$in':_0x324597}},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){return db[_0x46ef('0x6e')][_0x46ef('0x54')]({'where':{'TeamId':_0x3ea953}});})[_0x46ef('0x2b')](function(_0x3385f3){if(_0x3385f3===null){return;}return db['UserVoicePrefix']['destroy']({'where':{'UserId':{'$in':_0x45215b},'VoicePrefixId':_0x3385f3['VoicePrefixId']},'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(){return db[_0x46ef('0x31')]['destroy']({'where':{'id':_0x3ea953},'cascade':!![],'transaction':_0x3bbd54});})[_0x46ef('0x2b')](function(_0x47c84c){if(_0x47c84c===0x0){_0x54eb77[_0x46ef('0x1e')](0x194);}else{return db[_0x46ef('0x6f')][_0x46ef('0x5c')]({'where':{'type':_0x46ef('0x70'),'resourceId':_0x3ea953},'cascade':!![],'transaction':_0x3bbd54})['then'](function(){_0x54eb77[_0x46ef('0x20')](0xcc)[_0x46ef('0x1f')]();});}})[_0x46ef('0x4b')](function(_0x478ab6){_0x54eb77[_0x46ef('0x20')](0x1f4)[_0x46ef('0x2f')](_0x478ab6);});});};exports[_0x46ef('0x71')]=function(_0x20cc30,_0xb010bc,_0x16aea8){return db[_0x46ef('0x31')][_0x46ef('0x72')]({'where':{'id':_0x20cc30[_0x46ef('0x48')]['id']}})[_0x46ef('0x2b')](handleEntityNotFound(_0xb010bc,null))[_0x46ef('0x2b')](function(_0x38053f){if(!_0x20cc30[_0x46ef('0x34')][_0x46ef('0x73')]||!utils['isValidChannel'](_0x20cc30['query'][_0x46ef('0x73')])){throw new db[(_0x46ef('0x57'))]['ValidationError']('Unknown\x20channel');}var _0x3d6a13={};var _0x1db8c5={};_0x1db8c5['model']=_['keys'](db[_[_0x46ef('0x74')](_0x20cc30[_0x46ef('0x34')]['channel'][_0x46ef('0x75')]())+'Queue'][_0x46ef('0x49')]);_0x1db8c5['query']=_[_0x46ef('0x35')](_0x20cc30[_0x46ef('0x34')]);_0x1db8c5[_0x46ef('0x36')]=_['intersection'](_0x1db8c5['model'],_0x1db8c5[_0x46ef('0x34')]);_0x3d6a13['attributes']=_[_0x46ef('0x37')](_0x1db8c5[_0x46ef('0x38')],qs[_0x46ef('0x39')](_0x20cc30[_0x46ef('0x34')][_0x46ef('0x39')]));_0x3d6a13[_0x46ef('0x3a')]=_0x3d6a13['attributes'][_0x46ef('0x3b')]?_0x3d6a13[_0x46ef('0x3a')]:_0x1db8c5[_0x46ef('0x38')];_0x3d6a13['limit']=qs['limit'](_0x20cc30[_0x46ef('0x34')][_0x46ef('0x24')]);_0x3d6a13[_0x46ef('0x22')]=qs[_0x46ef('0x22')](_0x20cc30[_0x46ef('0x34')][_0x46ef('0x22')]);_0x3d6a13[_0x46ef('0x3e')]=qs[_0x46ef('0x3f')](_0x20cc30[_0x46ef('0x34')][_0x46ef('0x3f')]);_0x3d6a13[_0x46ef('0x44')]=qs[_0x46ef('0x36')](_[_0x46ef('0x40')](_0x20cc30[_0x46ef('0x34')],_0x1db8c5[_0x46ef('0x36')]));_0x3d6a13=_[_0x46ef('0x42')]({},_0x3d6a13,_0x20cc30[_0x46ef('0x4a')]);return _0x38053f[_0x46ef('0x50')+_[_0x46ef('0x74')](_0x20cc30[_0x46ef('0x34')][_0x46ef('0x73')][_0x46ef('0x75')]())+_0x46ef('0x76')](_0x3d6a13);})['then'](respondWithResult(_0xb010bc,null))[_0x46ef('0x4b')](handleError(_0xb010bc,null));};exports[_0x46ef('0x77')]=function(_0x427ea4,_0x4f4b4c,_0x44d00f){return db[_0x46ef('0x31')]['findOne']({'where':{'id':_0x427ea4['params']['id']}})[_0x46ef('0x2b')](function(_0x51fb6b){if(_0x51fb6b){if(!_0x427ea4['body'][_0x46ef('0x73')]||!utils[_0x46ef('0x78')](_0x427ea4[_0x46ef('0x4d')][_0x46ef('0x73')])){throw new db[(_0x46ef('0x57'))][(_0x46ef('0x79'))](_0x46ef('0x7a'));}return _0x51fb6b['add'+_['capitalize'](_0x427ea4[_0x46ef('0x4d')][_0x46ef('0x73')]['toLowerCase']())+_0x46ef('0x76')](_0x427ea4[_0x46ef('0x4d')][_0x46ef('0x7b')]);}return null;})[_0x46ef('0x2b')](handleEntityNotFound(_0x4f4b4c,null))[_0x46ef('0x2b')](respondWithStatusCode(_0x4f4b4c,null))['catch'](handleError(_0x4f4b4c,null));};exports[_0x46ef('0x7c')]=function(_0x1840ef,_0x5b9a81,_0x449786){return db[_0x46ef('0x31')][_0x46ef('0x72')]({'where':{'id':_0x1840ef[_0x46ef('0x48')]['id']}})[_0x46ef('0x2b')](function(_0x2e1aea){if(_0x2e1aea){if(!_0x1840ef['query'][_0x46ef('0x73')]||!utils[_0x46ef('0x78')](_0x1840ef['query']['channel'])){throw new db[(_0x46ef('0x57'))]['ValidationError']('Unknown\x20channel');}return _0x2e1aea[_0x46ef('0x7d')+_[_0x46ef('0x74')](_0x1840ef[_0x46ef('0x34')]['channel']['toLowerCase']())+_0x46ef('0x76')](_0x1840ef['query']['ids']);}return null;})[_0x46ef('0x2b')](handleEntityNotFound(_0x5b9a81,null))['then'](respondWithStatusCode(_0x5b9a81,null))[_0x46ef('0x4b')](handleError(_0x5b9a81,null));};exports[_0x46ef('0x7e')]=function(_0x223c71,_0x4f6c6c){var _0x479deb=_['isArray'](_0x223c71['body'][_0x46ef('0x7b')])?_0x223c71[_0x46ef('0x4d')][_0x46ef('0x7b')]:[_0x223c71[_0x46ef('0x4d')][_0x46ef('0x7b')]];var _0x5e6578=_0x223c71[_0x46ef('0x48')]['id'];return db[_0x46ef('0x31')]['find']({'where':{'id':_0x5e6578}})[_0x46ef('0x2b')](handleEntityNotFound(_0x4f6c6c,null))[_0x46ef('0x2b')](function(_0x595f3f){if(_0x595f3f){var _0x105079=[_0x46ef('0x7f'),_0x46ef('0x80'),_0x46ef('0x81'),'Sms',_0x46ef('0x82'),_0x46ef('0x83'),'Whatsapp'];return db[_0x46ef('0x55')]['transaction'](function(_0xa5b190){var _0x29b13d=_[_0x46ef('0x30')](_0x105079,function(_0x46e82f){var _0x3eee75={'attributes':['id',_0x46ef('0x2e')]};if(_0x46e82f===_0x46ef('0x7f')){_0x3eee75['through']={'attributes':[_0x46ef('0x84')]};}return _0x595f3f[_0x46ef('0x50')+_0x46e82f+_0x46ef('0x76')](_0x3eee75)[_0x46ef('0x2b')](function(_0x52df8d){var _0x19132c=_[_0x46ef('0x30')](_0x52df8d,function(_0x3a7806){var _0x43f4c0=_['map'](_0x479deb,function(_0x55b760){var _0x598b45={'where':{'UserId':_0x55b760,[_0x46e82f+_0x46ef('0x85')]:_0x3a7806['id']},'transaction':_0xa5b190};if(_0x46e82f===_0x46ef('0x7f')){_0x598b45[_0x46ef('0x19')]={'penalty':_0x3a7806[_0x46ef('0x86')][_0x46ef('0x84')]};}return db['User'+_0x46e82f+_0x46ef('0x87')]['findOrCreate'](_0x598b45)[_0x46ef('0x2b')](function(){socket[_0x46ef('0x88')](_0x46ef('0x4e')+_0x46e82f+'Queue:save',{'UserId':_0x55b760,[_0x46e82f+'QueueId']:_0x3a7806['id']});if(_0x46e82f!==_0x46ef('0x7f')){return;}return db[_0x46ef('0x89')]['findAll']({'where':{'id':_0x479deb,'online':0x1},'attributes':['id',_0x46ef('0x2e'),'online','voicePause','interface'],'raw':!![]})[_0x46ef('0x2b')](function(_0x53b2cc){var _0x38c1f2=_['map'](_0x53b2cc,function(_0x5b9ba1){return db[_0x46ef('0x8a')][_0x46ef('0x8b')]({'membername':_0x5b9ba1[_0x46ef('0x2e')],'UserId':_0x5b9ba1['id'],'queue_name':_0x3a7806[_0x46ef('0x2e')],'VoiceQueueId':_0x3a7806['id'],'interface':_[_0x46ef('0x8c')](_0x5b9ba1['interface'])?util[_0x46ef('0x8d')](_0x46ef('0x8e'),_0x5b9ba1['name']):_0x5b9ba1[_0x46ef('0x8f')],'paused':_0x5b9ba1[_0x46ef('0x90')]||![],'penalty':_0x3a7806['TeamVoiceQueue']['penalty']},{'transaction':_0xa5b190});});return Promise['all'](_0x38c1f2);});});});return Promise[_0x46ef('0x91')](_0x43f4c0);});return Promise['all'](_0x19132c);})[_0x46ef('0x2b')](function(){return db[_0x46ef('0x6e')][_0x46ef('0x72')]({'where':{'teamId':_0x5e6578}})[_0x46ef('0x2b')](function(_0x58fb40){if(_0x58fb40){var _0x30ff2f=_['map'](_0x479deb,function(_0x58208a){db[_0x46ef('0x92')]['upsert']({'UserId':_0x58208a,'VoicePrefixId':_0x58fb40[_0x46ef('0x93')]});});return Promise[_0x46ef('0x91')](_0x30ff2f);}});});});return Promise[_0x46ef('0x91')](_0x29b13d)['then'](function(){return _0x595f3f[_0x46ef('0x7e')](_0x479deb,{'transaction':_0xa5b190})[_0x46ef('0x94')](function(_0x2686e7){return _0x2686e7;});});});}})['then'](respondWithResult(_0x4f6c6c,null))[_0x46ef('0x4b')](handleError(_0x4f6c6c,null));};exports[_0x46ef('0x95')]=function(_0x2b33fa,_0x48dd80){var _0x374ba7=_[_0x46ef('0x96')](_0x2b33fa[_0x46ef('0x34')][_0x46ef('0x7b')])?_0x2b33fa['query'][_0x46ef('0x7b')]:[_0x2b33fa[_0x46ef('0x34')]['ids']];var _0x4ad31b=_0x2b33fa['params']['id'];return db[_0x46ef('0x31')][_0x46ef('0x54')]({'where':{'id':_0x4ad31b}})[_0x46ef('0x2b')](handleEntityNotFound(_0x48dd80,null))[_0x46ef('0x2b')](function(_0x1aff12){if(_0x1aff12){var _0x38c9aa=[_0x46ef('0x7f'),'Chat',_0x46ef('0x81'),_0x46ef('0x97'),_0x46ef('0x82'),'Openchannel',_0x46ef('0x98')];return db['sequelize'][_0x46ef('0x56')](function(_0x27db79){var _0x553a16=_[_0x46ef('0x30')](_0x38c9aa,function(_0x4835e9){var _0x1c3135={'attributes':['id',_0x46ef('0x2e')]};return _0x1aff12[_0x46ef('0x50')+_0x4835e9+_0x46ef('0x76')](_0x1c3135)['then'](function(_0x55c026){var _0x10fd2a=_[_0x46ef('0x30')](_0x55c026,function(_0x51e352){return _0x51e352[_0x46ef('0x95')](_0x374ba7,{'transaction':_0x27db79})[_0x46ef('0x2b')](function(){var _0x5d3a61=_['map'](_0x374ba7,function(_0x959ec){socket[_0x46ef('0x88')](_0x46ef('0x4e')+_0x4835e9+_0x46ef('0x99'),{'UserId':Number(_0x959ec),[_0x4835e9+_0x46ef('0x85')]:_0x51e352['id']});if(_0x4835e9!==_0x46ef('0x7f')){return;}return db[_0x46ef('0x8a')]['destroy']({'where':{'VoiceQueueId':_0x51e352['id'],'UserId':_0x959ec},'transaction':_0x27db79});});return Promise[_0x46ef('0x91')](_0x5d3a61);});});return Promise[_0x46ef('0x91')](_0x10fd2a);});});return Promise[_0x46ef('0x91')](_0x553a16)[_0x46ef('0x2b')](function(){return _0x1aff12['removeAgents'](_0x374ba7,{'transaction':_0x27db79});})[_0x46ef('0x2b')](function(){return db['TeamVoicePrefix'][_0x46ef('0x72')]({'where':{'teamId':_0x4ad31b}})[_0x46ef('0x2b')](function(_0x39e1c8){if(_0x39e1c8){var _0x4006a5=_[_0x46ef('0x30')](_0x374ba7,function(_0xbffe4a){db[_0x46ef('0x92')][_0x46ef('0x5c')]({'where':{'UserId':_0xbffe4a,'VoicePrefixId':_0x39e1c8[_0x46ef('0x93')]}});});return Promise['all'](_0x4006a5);}});});});}})[_0x46ef('0x2b')](respondWithStatusCode(_0x48dd80,null))[_0x46ef('0x4b')](handleError(_0x48dd80,null));};exports['getAgents']=function(_0xcf1fda,_0x32de8b,_0x451a93){var _0x3e40bd={};var _0x4481cf={};var _0x526ee7;var _0x1c7c8b;return db[_0x46ef('0x31')][_0x46ef('0x72')]({'where':{'id':_0xcf1fda[_0x46ef('0x48')]['id']}})[_0x46ef('0x2b')](handleEntityNotFound(_0x32de8b,null))[_0x46ef('0x2b')](function(_0x1863ce){if(_0x1863ce){_0x526ee7=_0x1863ce;_0x4481cf[_0x46ef('0x38')]=_[_0x46ef('0x35')](db[_0x46ef('0x89')]['rawAttributes']);_0x4481cf['query']=_['keys'](_0xcf1fda[_0x46ef('0x34')]);_0x4481cf[_0x46ef('0x36')]=_['intersection'](_0x4481cf[_0x46ef('0x38')],_0x4481cf['query']);_0x3e40bd[_0x46ef('0x3a')]=_[_0x46ef('0x37')](_0x4481cf[_0x46ef('0x38')],qs[_0x46ef('0x39')](_0xcf1fda[_0x46ef('0x34')][_0x46ef('0x39')]));_0x3e40bd['attributes']=_0x3e40bd[_0x46ef('0x3a')][_0x46ef('0x3b')]?_0x3e40bd[_0x46ef('0x3a')]:_0x4481cf[_0x46ef('0x38')];_0x3e40bd['order']=qs[_0x46ef('0x3f')](_0xcf1fda[_0x46ef('0x34')]['sort']);_0x3e40bd[_0x46ef('0x44')]=qs[_0x46ef('0x36')](_[_0x46ef('0x40')](_0xcf1fda[_0x46ef('0x34')],_0x4481cf['filters']));if(_0xcf1fda['query']['filter']){_0x3e40bd['where']=_['merge'](_0x3e40bd[_0x46ef('0x44')],{'$or':_[_0x46ef('0x30')](_0x3e40bd[_0x46ef('0x3a')],function(_0x65c290){var _0x43b91e={};_0x43b91e[_0x65c290]={'$like':'%'+_0xcf1fda[_0x46ef('0x34')][_0x46ef('0x41')]+'%'};return _0x43b91e;})});}_0x3e40bd=_[_0x46ef('0x42')]({},_0x3e40bd,_0xcf1fda['options']);return _0x526ee7['getAgents'](_0x3e40bd);}})[_0x46ef('0x2b')](function(_0x291cf5){if(_0x291cf5){_0x1c7c8b=_0x291cf5[_0x46ef('0x3b')];if(!_0xcf1fda[_0x46ef('0x34')]['hasOwnProperty'](_0x46ef('0x3d'))){_0x3e40bd[_0x46ef('0x24')]=qs[_0x46ef('0x24')](_0xcf1fda[_0x46ef('0x34')][_0x46ef('0x24')]);_0x3e40bd[_0x46ef('0x22')]=qs[_0x46ef('0x22')](_0xcf1fda[_0x46ef('0x34')][_0x46ef('0x22')]);}return _0x526ee7[_0x46ef('0x9a')](_0x3e40bd);}})[_0x46ef('0x2b')](function(_0xd1392b){if(_0xd1392b){return _0xd1392b?{'count':_0x1c7c8b,'rows':_0xd1392b}:null;}})[_0x46ef('0x2b')](respondWithResult(_0x32de8b,null))[_0x46ef('0x4b')](handleError(_0x32de8b,null));};