934771c514205b1411f3ce801a3c343357c085e9
[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 _0xa8f7=['addAgents','removeAgents','Chat','Sms','Queue:remove','getAgents','hasOwnProperty','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','error','stack','name','index','map','Team','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','then','includeAll','include','findAll','catch','show','params','find','create','body','get','role','user','Teams','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','sequelize','Sequelize','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','QueryTypes','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','SmsQueueId','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','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','UserWhatsappQueue','VoicePrefixId','UserProfileResource','send','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','addQueues','Queues','ids','removeQueues','remove','isArray','Voice','Mail','Fax','Openchannel','Whatsapp','transaction','through','defaults','TeamVoiceQueue','penalty','findOrCreate','emit','Queue:save','QueueId','User','online','voicePause','UserVoiceQueueRt','isNil','interface','format','SIP/%s','all','TeamVoicePrefix','UserVoicePrefix','upsert'];(function(_0x274638,_0x578968){var _0x5755df=function(_0x3227d5){while(--_0x3227d5){_0x274638['push'](_0x274638['shift']());}};_0x5755df(++_0x578968);}(_0xa8f7,0xac));var _0x7a8f=function(_0x3660db,_0x218d3f){_0x3660db=_0x3660db-0x0;var _0x3b394e=_0xa8f7[_0x3660db];return _0x3b394e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7a8f('0x0'));var zipdir=require(_0x7a8f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7a8f('0x2'));var BPromise=require(_0x7a8f('0x3'));var Mustache=require(_0x7a8f('0x4'));var util=require(_0x7a8f('0x5'));var path=require(_0x7a8f('0x6'));var sox=require(_0x7a8f('0x7'));var csv=require('to-csv');var ejs=require(_0x7a8f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7a8f('0x9'));var squel=require(_0x7a8f('0xa'));var crypto=require(_0x7a8f('0xb'));var jsforce=require(_0x7a8f('0xc'));var deskjs=require(_0x7a8f('0xd'));var toCsv=require(_0x7a8f('0xe'));var querystring=require(_0x7a8f('0xf'));var Papa=require(_0x7a8f('0x10'));var Redis=require(_0x7a8f('0x11'));var authService=require(_0x7a8f('0x12'));var qs=require(_0x7a8f('0x13'));var as=require(_0x7a8f('0x14'));var hardwareService=require(_0x7a8f('0x15'));var logger=require(_0x7a8f('0x16'))(_0x7a8f('0x17'));var utils=require('../../config/utils');var config=require(_0x7a8f('0x18'));var licenseUtil=require(_0x7a8f('0x19'));var db=require(_0x7a8f('0x1a'))['db'];config[_0x7a8f('0x1b')]=_['defaults'](config[_0x7a8f('0x1b')],{'host':_0x7a8f('0x1c'),'port':0x18eb});var socket=require(_0x7a8f('0x1d'))(new Redis(config[_0x7a8f('0x1b')]));require('./team.socket')[_0x7a8f('0x1e')](socket);function respondWithStatusCode(_0x39098d,_0x1fedbc){_0x1fedbc=_0x1fedbc||0xcc;return function(_0x59592f){if(_0x59592f){return _0x39098d[_0x7a8f('0x1f')](_0x1fedbc);}return _0x39098d[_0x7a8f('0x20')](_0x1fedbc)[_0x7a8f('0x21')]();};}function respondWithResult(_0x58c66f,_0xcb856c){_0xcb856c=_0xcb856c||0xc8;return function(_0x5c1e2f){if(_0x5c1e2f){return _0x58c66f[_0x7a8f('0x20')](_0xcb856c)[_0x7a8f('0x22')](_0x5c1e2f);}};}function respondWithFilteredResult(_0x22c28d,_0x418e81){return function(_0x41065f){if(_0x41065f){var _0x21b79c=typeof _0x418e81[_0x7a8f('0x23')]==='undefined'&&typeof _0x418e81[_0x7a8f('0x24')]==='undefined';var _0x5e1cc2=_0x41065f[_0x7a8f('0x25')];var _0x14560b=_0x21b79c?0x0:_0x418e81['offset'];var _0x13b22b=_0x21b79c?_0x41065f[_0x7a8f('0x25')]:_0x418e81[_0x7a8f('0x23')]+_0x418e81['limit'];var _0x2edd34;if(_0x13b22b>=_0x5e1cc2){_0x13b22b=_0x5e1cc2;_0x2edd34=0xc8;}else{_0x2edd34=0xce;}_0x22c28d[_0x7a8f('0x20')](_0x2edd34);return _0x22c28d[_0x7a8f('0x26')](_0x7a8f('0x27'),_0x14560b+'-'+_0x13b22b+'/'+_0x5e1cc2)[_0x7a8f('0x22')](_0x41065f);}return null;};}function patchUpdates(_0x1cb497){return function(_0x35fd68){try{jsonpatch[_0x7a8f('0x28')](_0x35fd68,_0x1cb497,!![]);}catch(_0x349820){return BPromise[_0x7a8f('0x29')](_0x349820);}return _0x35fd68[_0x7a8f('0x2a')]();};}function saveUpdates(_0x38a630,_0x21fe33){return function(_0x70b0be){if(_0x70b0be){return _0x70b0be[_0x7a8f('0x2b')](_0x38a630)['then'](function(_0x342a62){return _0x342a62;});}return null;};}function handleEntityNotFound(_0x59d687,_0x85e982){return function(_0x1ce638){if(!_0x1ce638){_0x59d687['sendStatus'](0x194);}return _0x1ce638;};}function handleError(_0x647dcb,_0x3d034d){_0x3d034d=_0x3d034d||0x1f4;return function(_0x2e71f7){logger[_0x7a8f('0x2c')](_0x2e71f7[_0x7a8f('0x2d')]);if(_0x2e71f7[_0x7a8f('0x2e')]){delete _0x2e71f7['name'];}_0x647dcb[_0x7a8f('0x20')](_0x3d034d)['send'](_0x2e71f7);};}exports[_0x7a8f('0x2f')]=function(_0x20031b,_0x40b569){var _0x4f0fbd={},_0x46f638={},_0x5e9ac9={'count':0x0,'rows':[]};var _0x22bd33=_[_0x7a8f('0x30')](db[_0x7a8f('0x31')][_0x7a8f('0x32')],function(_0x1654ac){return{'name':_0x1654ac[_0x7a8f('0x33')],'type':_0x1654ac[_0x7a8f('0x34')][_0x7a8f('0x35')]};});_0x46f638[_0x7a8f('0x36')]=_['map'](_0x22bd33,_0x7a8f('0x2e'));_0x46f638[_0x7a8f('0x37')]=_[_0x7a8f('0x38')](_0x20031b[_0x7a8f('0x37')]);_0x46f638[_0x7a8f('0x39')]=_['intersection'](_0x46f638[_0x7a8f('0x36')],_0x46f638[_0x7a8f('0x37')]);_0x4f0fbd[_0x7a8f('0x3a')]=_[_0x7a8f('0x3b')](_0x46f638['model'],qs['fields'](_0x20031b['query'][_0x7a8f('0x3c')]));_0x4f0fbd[_0x7a8f('0x3a')]=_0x4f0fbd['attributes'][_0x7a8f('0x3d')]?_0x4f0fbd['attributes']:_0x46f638[_0x7a8f('0x36')];if(!_0x20031b[_0x7a8f('0x37')]['hasOwnProperty'](_0x7a8f('0x3e'))){_0x4f0fbd[_0x7a8f('0x24')]=qs['limit'](_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x24')]);_0x4f0fbd['offset']=qs[_0x7a8f('0x23')](_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x23')]);}_0x4f0fbd[_0x7a8f('0x3f')]=qs[_0x7a8f('0x40')](_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x40')]);_0x4f0fbd[_0x7a8f('0x41')]=qs[_0x7a8f('0x39')](_[_0x7a8f('0x42')](_0x20031b[_0x7a8f('0x37')],_0x46f638[_0x7a8f('0x39')]),_0x22bd33);if(_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x43')]){_0x4f0fbd[_0x7a8f('0x41')]=_[_0x7a8f('0x44')](_0x4f0fbd[_0x7a8f('0x41')],{'$or':_[_0x7a8f('0x30')](_0x22bd33,function(_0x328073){if(_0x328073[_0x7a8f('0x34')]!==_0x7a8f('0x45')){var _0x4c6498={};_0x4c6498[_0x328073[_0x7a8f('0x2e')]]={'$like':'%'+_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x43')]+'%'};return _0x4c6498;}})});}_0x4f0fbd=_['merge']({},_0x4f0fbd,_0x20031b[_0x7a8f('0x46')]);var _0xa55d71={'where':_0x4f0fbd[_0x7a8f('0x41')]};return db[_0x7a8f('0x31')][_0x7a8f('0x25')](_0xa55d71)[_0x7a8f('0x47')](function(_0x55b25b){_0x5e9ac9[_0x7a8f('0x25')]=_0x55b25b;if(_0x20031b[_0x7a8f('0x37')][_0x7a8f('0x48')]){_0x4f0fbd[_0x7a8f('0x49')]=[{'all':!![]}];}return db['Team'][_0x7a8f('0x4a')](_0x4f0fbd);})[_0x7a8f('0x47')](function(_0x1a2859){_0x5e9ac9['rows']=_0x1a2859;return _0x5e9ac9;})[_0x7a8f('0x47')](respondWithFilteredResult(_0x40b569,_0x4f0fbd))[_0x7a8f('0x4b')](handleError(_0x40b569,null));};exports[_0x7a8f('0x4c')]=function(_0x4e3eb9,_0x2d6965){var _0x1afa3e={'raw':![],'where':{'id':_0x4e3eb9[_0x7a8f('0x4d')]['id']}},_0x328402={};_0x328402[_0x7a8f('0x36')]=_[_0x7a8f('0x38')](db[_0x7a8f('0x31')]['rawAttributes']);_0x328402[_0x7a8f('0x37')]=_['keys'](_0x4e3eb9[_0x7a8f('0x37')]);_0x328402['filters']=_[_0x7a8f('0x3b')](_0x328402[_0x7a8f('0x36')],_0x328402[_0x7a8f('0x37')]);_0x1afa3e[_0x7a8f('0x3a')]=_[_0x7a8f('0x3b')](_0x328402['model'],qs[_0x7a8f('0x3c')](_0x4e3eb9[_0x7a8f('0x37')][_0x7a8f('0x3c')]));_0x1afa3e[_0x7a8f('0x3a')]=_0x1afa3e[_0x7a8f('0x3a')][_0x7a8f('0x3d')]?_0x1afa3e[_0x7a8f('0x3a')]:_0x328402[_0x7a8f('0x36')];if(_0x4e3eb9[_0x7a8f('0x37')][_0x7a8f('0x48')]){_0x1afa3e[_0x7a8f('0x49')]=[{'all':!![]}];}_0x1afa3e=_[_0x7a8f('0x44')]({},_0x1afa3e,_0x4e3eb9['options']);return db['Team'][_0x7a8f('0x4e')](_0x1afa3e)[_0x7a8f('0x47')](handleEntityNotFound(_0x2d6965,null))[_0x7a8f('0x47')](respondWithResult(_0x2d6965,null))[_0x7a8f('0x4b')](handleError(_0x2d6965,null));};exports[_0x7a8f('0x4f')]=function(_0x5d8b59,_0x226c5e){return db[_0x7a8f('0x31')][_0x7a8f('0x4f')](_0x5d8b59[_0x7a8f('0x50')],{})['then'](function(_0x5b16ef){var _0x57f7b4=_0x5d8b59['user'][_0x7a8f('0x51')]({'plain':!![]});if(!_0x57f7b4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x57f7b4[_0x7a8f('0x52')]===_0x7a8f('0x53')){var _0x4cf6a7=_0x5b16ef[_0x7a8f('0x51')]({'plain':!![]});var _0x332e46=_0x7a8f('0x54');return db[_0x7a8f('0x55')][_0x7a8f('0x4e')]({'where':{'name':_0x332e46,'userProfileId':_0x57f7b4[_0x7a8f('0x56')]},'raw':!![]})[_0x7a8f('0x47')](function(_0x212d30){if(_0x212d30&&_0x212d30[_0x7a8f('0x57')]===0x0){return db['UserProfileResource']['create']({'name':_0x4cf6a7[_0x7a8f('0x2e')],'resourceId':_0x4cf6a7['id'],'type':_0x212d30[_0x7a8f('0x2e')],'sectionId':_0x212d30['id']},{})[_0x7a8f('0x47')](function(){return _0x5b16ef;});}else{return _0x5b16ef;}})[_0x7a8f('0x4b')](function(_0x47f52e){logger[_0x7a8f('0x2c')](_0x7a8f('0x58'),_0x47f52e);throw _0x47f52e;});}return _0x5b16ef;})[_0x7a8f('0x47')](respondWithResult(_0x226c5e,0xc9))[_0x7a8f('0x4b')](handleError(_0x226c5e,null));};exports[_0x7a8f('0x2b')]=function(_0x13d8ff,_0x50817b){if(_0x13d8ff[_0x7a8f('0x50')]['id']){delete _0x13d8ff[_0x7a8f('0x50')]['id'];}return db['Team']['find']({'where':{'id':_0x13d8ff[_0x7a8f('0x4d')]['id']}})[_0x7a8f('0x47')](handleEntityNotFound(_0x50817b,null))[_0x7a8f('0x47')](saveUpdates(_0x13d8ff['body'],null))['then'](respondWithResult(_0x50817b,null))[_0x7a8f('0x4b')](handleError(_0x50817b,null));};exports[_0x7a8f('0x59')]=function(_0x50312f,_0x4000ee){var _0x537236=_0x50312f[_0x7a8f('0x4d')]['id'];var _0x511591=[];return db[_0x7a8f('0x5a')]['transaction'](function(_0x1382d4){var _0x336a47='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x537236;return db['sequelize']['query'](_0x336a47,{'type':db[_0x7a8f('0x5b')]['QueryTypes'][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4})['then'](function(_0x4c7444){_0x511591=_['map'](_0x4c7444,function(_0x51a33d){return Number(_0x51a33d[_0x7a8f('0x5d')]);});})[_0x7a8f('0x47')](function(){var _0x20bcf6=_0x7a8f('0x5e')+_0x537236;return db[_0x7a8f('0x5a')][_0x7a8f('0x37')](_0x20bcf6,{'type':db[_0x7a8f('0x5b')][_0x7a8f('0x5f')][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x4caac5){var _0xf407a3=_[_0x7a8f('0x30')](_0x4caac5,function(_0x270271){return Number(_0x270271[_0x7a8f('0x60')]);});return db['UserVoiceQueue'][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'VoiceQueueId':{'$in':_0xf407a3}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){var _0x171ab4=_0x7a8f('0x61')+_0x537236;return db[_0x7a8f('0x5a')][_0x7a8f('0x37')](_0x171ab4,{'type':db[_0x7a8f('0x5b')]['QueryTypes'][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})['then'](function(_0xdfcb10){var _0x28b52c=_['map'](_0xdfcb10,function(_0x5d1e85){return Number(_0x5d1e85[_0x7a8f('0x62')]);});return db[_0x7a8f('0x63')]['destroy']({'where':{'UserId':{'$in':_0x511591},'MailQueueId':{'$in':_0x28b52c}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){var _0xe3da26=_0x7a8f('0x64')+_0x537236;return db[_0x7a8f('0x5a')]['query'](_0xe3da26,{'type':db[_0x7a8f('0x5b')]['QueryTypes'][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x5da3bb){var _0x1b65c8=_[_0x7a8f('0x30')](_0x5da3bb,function(_0x3675ef){return Number(_0x3675ef[_0x7a8f('0x65')]);});return db[_0x7a8f('0x66')]['destroy']({'where':{'UserId':{'$in':_0x511591},'SmsQueueId':{'$in':_0x1b65c8}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){var _0xf5830=_0x7a8f('0x67')+_0x537236;return db['sequelize']['query'](_0xf5830,{'type':db[_0x7a8f('0x5b')][_0x7a8f('0x5f')][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x1bfdf0){var _0x3af696=_['map'](_0x1bfdf0,function(_0x158e5a){return Number(_0x158e5a[_0x7a8f('0x68')]);});return db[_0x7a8f('0x69')][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'ChatQueueId':{'$in':_0x3af696}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){var _0x437ab2=_0x7a8f('0x6a')+_0x537236;return db[_0x7a8f('0x5a')][_0x7a8f('0x37')](_0x437ab2,{'type':db['Sequelize']['QueryTypes'][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x285e3a){var _0x64e808=_[_0x7a8f('0x30')](_0x285e3a,function(_0x4ea673){return Number(_0x4ea673[_0x7a8f('0x6b')]);});return db[_0x7a8f('0x6c')][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'FaxQueueId':{'$in':_0x64e808}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){var _0x5d12b1=_0x7a8f('0x6d')+_0x537236;return db[_0x7a8f('0x5a')][_0x7a8f('0x37')](_0x5d12b1,{'type':db['Sequelize'][_0x7a8f('0x5f')][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x3d37bf){var _0x4926e2=_[_0x7a8f('0x30')](_0x3d37bf,function(_0x24b5d3){return Number(_0x24b5d3[_0x7a8f('0x6e')]);});return db[_0x7a8f('0x6f')][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'OpenchannelQueueId':{'$in':_0x4926e2}},'transaction':_0x1382d4});})['then'](function(){var _0x27d11d=_0x7a8f('0x70')+_0x537236;return db[_0x7a8f('0x5a')][_0x7a8f('0x37')](_0x27d11d,{'type':db[_0x7a8f('0x5b')][_0x7a8f('0x5f')][_0x7a8f('0x5c')],'raw':!![],'transaction':_0x1382d4});})['then'](function(_0x20e4da){var _0x3b4526=_[_0x7a8f('0x30')](_0x20e4da,function(_0x4dde2e){return Number(_0x4dde2e['WhatsappQueueId']);});return db[_0x7a8f('0x71')][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'WhatsappQueueId':{'$in':_0x3b4526}},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){return db['TeamVoicePrefix']['find']({'where':{'TeamId':_0x537236}});})[_0x7a8f('0x47')](function(_0x111efe){if(_0x111efe===null){return;}return db['UserVoicePrefix'][_0x7a8f('0x59')]({'where':{'UserId':{'$in':_0x511591},'VoicePrefixId':_0x111efe[_0x7a8f('0x72')]},'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(){return db['Team'][_0x7a8f('0x59')]({'where':{'id':_0x537236},'cascade':!![],'transaction':_0x1382d4});})[_0x7a8f('0x47')](function(_0x261935){if(_0x261935===0x0){_0x4000ee[_0x7a8f('0x1f')](0x194);}else{return db[_0x7a8f('0x73')]['destroy']({'where':{'type':'Teams','resourceId':_0x537236},'cascade':!![],'transaction':_0x1382d4})['then'](function(){_0x4000ee['status'](0xcc)['end']();});}})[_0x7a8f('0x4b')](function(_0x5b9f0f){_0x4000ee['status'](0x1f4)[_0x7a8f('0x74')](_0x5b9f0f);});});};exports[_0x7a8f('0x75')]=function(_0x5c2608,_0x216603,_0x121fa2){return db[_0x7a8f('0x31')][_0x7a8f('0x76')]({'where':{'id':_0x5c2608[_0x7a8f('0x4d')]['id']}})['then'](handleEntityNotFound(_0x216603,null))[_0x7a8f('0x47')](function(_0x5177a4){if(!_0x5c2608[_0x7a8f('0x37')][_0x7a8f('0x77')]||!utils[_0x7a8f('0x78')](_0x5c2608['query'][_0x7a8f('0x77')])){throw new db[(_0x7a8f('0x5b'))][(_0x7a8f('0x79'))](_0x7a8f('0x7a'));}var _0x2e662c={};var _0x2a7d8b={};_0x2a7d8b[_0x7a8f('0x36')]=_['keys'](db[_[_0x7a8f('0x7b')](_0x5c2608[_0x7a8f('0x37')][_0x7a8f('0x77')][_0x7a8f('0x7c')]())+_0x7a8f('0x7d')][_0x7a8f('0x32')]);_0x2a7d8b['query']=_[_0x7a8f('0x38')](_0x5c2608['query']);_0x2a7d8b[_0x7a8f('0x39')]=_[_0x7a8f('0x3b')](_0x2a7d8b[_0x7a8f('0x36')],_0x2a7d8b['query']);_0x2e662c[_0x7a8f('0x3a')]=_['intersection'](_0x2a7d8b[_0x7a8f('0x36')],qs[_0x7a8f('0x3c')](_0x5c2608[_0x7a8f('0x37')]['fields']));_0x2e662c[_0x7a8f('0x3a')]=_0x2e662c[_0x7a8f('0x3a')][_0x7a8f('0x3d')]?_0x2e662c[_0x7a8f('0x3a')]:_0x2a7d8b['model'];_0x2e662c[_0x7a8f('0x24')]=qs[_0x7a8f('0x24')](_0x5c2608['query'][_0x7a8f('0x24')]);_0x2e662c[_0x7a8f('0x23')]=qs[_0x7a8f('0x23')](_0x5c2608[_0x7a8f('0x37')][_0x7a8f('0x23')]);_0x2e662c[_0x7a8f('0x3f')]=qs[_0x7a8f('0x40')](_0x5c2608[_0x7a8f('0x37')]['sort']);_0x2e662c[_0x7a8f('0x41')]=qs['filters'](_[_0x7a8f('0x42')](_0x5c2608[_0x7a8f('0x37')],_0x2a7d8b['filters']));_0x2e662c=_[_0x7a8f('0x44')]({},_0x2e662c,_0x5c2608['options']);return _0x5177a4[_0x7a8f('0x51')+_[_0x7a8f('0x7b')](_0x5c2608['query'][_0x7a8f('0x77')][_0x7a8f('0x7c')]())+'Queues'](_0x2e662c);})[_0x7a8f('0x47')](respondWithResult(_0x216603,null))[_0x7a8f('0x4b')](handleError(_0x216603,null));};exports[_0x7a8f('0x7e')]=function(_0x2f9f2a,_0x7aead1,_0x18bae6){return db[_0x7a8f('0x31')]['findOne']({'where':{'id':_0x2f9f2a[_0x7a8f('0x4d')]['id']}})['then'](function(_0x3537d5){if(_0x3537d5){if(!_0x2f9f2a[_0x7a8f('0x50')][_0x7a8f('0x77')]||!utils[_0x7a8f('0x78')](_0x2f9f2a[_0x7a8f('0x50')][_0x7a8f('0x77')])){throw new db[(_0x7a8f('0x5b'))]['ValidationError'](_0x7a8f('0x7a'));}return _0x3537d5['add'+_[_0x7a8f('0x7b')](_0x2f9f2a[_0x7a8f('0x50')][_0x7a8f('0x77')][_0x7a8f('0x7c')]())+_0x7a8f('0x7f')](_0x2f9f2a[_0x7a8f('0x50')][_0x7a8f('0x80')]);}return null;})['then'](handleEntityNotFound(_0x7aead1,null))['then'](respondWithStatusCode(_0x7aead1,null))[_0x7a8f('0x4b')](handleError(_0x7aead1,null));};exports[_0x7a8f('0x81')]=function(_0x37e4a0,_0x3d7099,_0x444634){return db['Team'][_0x7a8f('0x76')]({'where':{'id':_0x37e4a0['params']['id']}})['then'](function(_0x4c14dc){if(_0x4c14dc){if(!_0x37e4a0[_0x7a8f('0x37')][_0x7a8f('0x77')]||!utils[_0x7a8f('0x78')](_0x37e4a0[_0x7a8f('0x37')]['channel'])){throw new db[(_0x7a8f('0x5b'))][(_0x7a8f('0x79'))](_0x7a8f('0x7a'));}return _0x4c14dc[_0x7a8f('0x82')+_[_0x7a8f('0x7b')](_0x37e4a0[_0x7a8f('0x37')][_0x7a8f('0x77')][_0x7a8f('0x7c')]())+'Queues'](_0x37e4a0[_0x7a8f('0x37')][_0x7a8f('0x80')]);}return null;})[_0x7a8f('0x47')](handleEntityNotFound(_0x3d7099,null))[_0x7a8f('0x47')](respondWithStatusCode(_0x3d7099,null))[_0x7a8f('0x4b')](handleError(_0x3d7099,null));};exports['addAgents']=function(_0x21444e,_0x2af480){var _0xda60e3=_[_0x7a8f('0x83')](_0x21444e[_0x7a8f('0x50')][_0x7a8f('0x80')])?_0x21444e[_0x7a8f('0x50')][_0x7a8f('0x80')]:[_0x21444e['body'][_0x7a8f('0x80')]];var _0x27693b=_0x21444e[_0x7a8f('0x4d')]['id'];return db[_0x7a8f('0x31')][_0x7a8f('0x4e')]({'where':{'id':_0x27693b}})[_0x7a8f('0x47')](handleEntityNotFound(_0x2af480,null))[_0x7a8f('0x47')](function(_0x564196){if(_0x564196){var _0x4c2643=[_0x7a8f('0x84'),'Chat',_0x7a8f('0x85'),'Sms',_0x7a8f('0x86'),_0x7a8f('0x87'),_0x7a8f('0x88')];return db[_0x7a8f('0x5a')][_0x7a8f('0x89')](function(_0x5d75ad){var _0x336554=_[_0x7a8f('0x30')](_0x4c2643,function(_0x36bb8b){var _0x2e04d3={'attributes':['id',_0x7a8f('0x2e')]};if(_0x36bb8b==='Voice'){_0x2e04d3[_0x7a8f('0x8a')]={'attributes':['penalty']};}return _0x564196[_0x7a8f('0x51')+_0x36bb8b+_0x7a8f('0x7f')](_0x2e04d3)[_0x7a8f('0x47')](function(_0x35e297){var _0x22c208=_[_0x7a8f('0x30')](_0x35e297,function(_0x4ab0d3){var _0x347d4a=_[_0x7a8f('0x30')](_0xda60e3,function(_0x9d3919){var _0x3b2a03={'where':{'UserId':_0x9d3919,[_0x36bb8b+'QueueId']:_0x4ab0d3['id']},'transaction':_0x5d75ad};if(_0x36bb8b===_0x7a8f('0x84')){_0x3b2a03[_0x7a8f('0x8b')]={'penalty':_0x4ab0d3[_0x7a8f('0x8c')][_0x7a8f('0x8d')]};}return db['User'+_0x36bb8b+'Queue'][_0x7a8f('0x8e')](_0x3b2a03)['then'](function(){socket[_0x7a8f('0x8f')](_0x7a8f('0x53')+_0x36bb8b+_0x7a8f('0x90'),{'UserId':_0x9d3919,[_0x36bb8b+_0x7a8f('0x91')]:_0x4ab0d3['id']});if(_0x36bb8b!==_0x7a8f('0x84')){return;}return db[_0x7a8f('0x92')][_0x7a8f('0x4a')]({'where':{'id':_0xda60e3,'online':0x1},'attributes':['id',_0x7a8f('0x2e'),_0x7a8f('0x93'),_0x7a8f('0x94'),'interface'],'raw':!![]})[_0x7a8f('0x47')](function(_0xa4420c){var _0x4d92c1=_['map'](_0xa4420c,function(_0x48f88f){return db[_0x7a8f('0x95')]['upsert']({'membername':_0x48f88f['name'],'UserId':_0x48f88f['id'],'queue_name':_0x4ab0d3[_0x7a8f('0x2e')],'VoiceQueueId':_0x4ab0d3['id'],'interface':_[_0x7a8f('0x96')](_0x48f88f[_0x7a8f('0x97')])?util[_0x7a8f('0x98')](_0x7a8f('0x99'),_0x48f88f[_0x7a8f('0x2e')]):_0x48f88f['interface'],'paused':_0x48f88f['voicePause']||![],'penalty':_0x4ab0d3[_0x7a8f('0x8c')][_0x7a8f('0x8d')]},{'transaction':_0x5d75ad});});return Promise['all'](_0x4d92c1);});});});return Promise[_0x7a8f('0x9a')](_0x347d4a);});return Promise[_0x7a8f('0x9a')](_0x22c208);})['then'](function(){return db[_0x7a8f('0x9b')][_0x7a8f('0x76')]({'where':{'teamId':_0x27693b}})[_0x7a8f('0x47')](function(_0x46d49c){if(_0x46d49c){var _0x39c09b=_[_0x7a8f('0x30')](_0xda60e3,function(_0x41d8b6){db[_0x7a8f('0x9c')][_0x7a8f('0x9d')]({'UserId':_0x41d8b6,'VoicePrefixId':_0x46d49c['VoicePrefixId']});});return Promise[_0x7a8f('0x9a')](_0x39c09b);}});});});return Promise[_0x7a8f('0x9a')](_0x336554)['then'](function(){return _0x564196[_0x7a8f('0x9e')](_0xda60e3,{'transaction':_0x5d75ad})['spread'](function(_0x132e7e){return _0x132e7e;});});});}})[_0x7a8f('0x47')](respondWithResult(_0x2af480,null))[_0x7a8f('0x4b')](handleError(_0x2af480,null));};exports[_0x7a8f('0x9f')]=function(_0x3763fe,_0x1992b5){var _0x57542a=_[_0x7a8f('0x83')](_0x3763fe[_0x7a8f('0x37')][_0x7a8f('0x80')])?_0x3763fe[_0x7a8f('0x37')][_0x7a8f('0x80')]:[_0x3763fe['query']['ids']];var _0x5a310b=_0x3763fe['params']['id'];return db[_0x7a8f('0x31')]['find']({'where':{'id':_0x5a310b}})[_0x7a8f('0x47')](handleEntityNotFound(_0x1992b5,null))[_0x7a8f('0x47')](function(_0x5ed0b2){if(_0x5ed0b2){var _0x41aea2=[_0x7a8f('0x84'),_0x7a8f('0xa0'),_0x7a8f('0x85'),_0x7a8f('0xa1'),'Fax',_0x7a8f('0x87'),_0x7a8f('0x88')];return db[_0x7a8f('0x5a')][_0x7a8f('0x89')](function(_0x2fa54b){var _0x2d8f73=_[_0x7a8f('0x30')](_0x41aea2,function(_0x416279){var _0x50137b={'attributes':['id',_0x7a8f('0x2e')]};return _0x5ed0b2[_0x7a8f('0x51')+_0x416279+_0x7a8f('0x7f')](_0x50137b)[_0x7a8f('0x47')](function(_0x4af53a){var _0x322bdb=_[_0x7a8f('0x30')](_0x4af53a,function(_0x1dea56){return _0x1dea56[_0x7a8f('0x9f')](_0x57542a,{'transaction':_0x2fa54b})[_0x7a8f('0x47')](function(){var _0x288b47=_[_0x7a8f('0x30')](_0x57542a,function(_0x8df7df){socket[_0x7a8f('0x8f')]('user'+_0x416279+_0x7a8f('0xa2'),{'UserId':Number(_0x8df7df),[_0x416279+'QueueId']:_0x1dea56['id']});if(_0x416279!==_0x7a8f('0x84')){return;}return db[_0x7a8f('0x95')][_0x7a8f('0x59')]({'where':{'VoiceQueueId':_0x1dea56['id'],'UserId':_0x8df7df},'transaction':_0x2fa54b});});return Promise[_0x7a8f('0x9a')](_0x288b47);});});return Promise[_0x7a8f('0x9a')](_0x322bdb);});});return Promise[_0x7a8f('0x9a')](_0x2d8f73)[_0x7a8f('0x47')](function(){return _0x5ed0b2[_0x7a8f('0x9f')](_0x57542a,{'transaction':_0x2fa54b});})[_0x7a8f('0x47')](function(){return db[_0x7a8f('0x9b')][_0x7a8f('0x76')]({'where':{'teamId':_0x5a310b}})[_0x7a8f('0x47')](function(_0x406ae4){if(_0x406ae4){var _0x490ae3=_[_0x7a8f('0x30')](_0x57542a,function(_0x4d9e09){db['UserVoicePrefix'][_0x7a8f('0x59')]({'where':{'UserId':_0x4d9e09,'VoicePrefixId':_0x406ae4[_0x7a8f('0x72')]}});});return Promise['all'](_0x490ae3);}});});});}})[_0x7a8f('0x47')](respondWithStatusCode(_0x1992b5,null))[_0x7a8f('0x4b')](handleError(_0x1992b5,null));};exports[_0x7a8f('0xa3')]=function(_0x10c0a0,_0x507043,_0xda122b){var _0x1e503d={};var _0x963f1={};var _0xc18c31;var _0x2fda0e;return db['Team'][_0x7a8f('0x76')]({'where':{'id':_0x10c0a0[_0x7a8f('0x4d')]['id']}})['then'](handleEntityNotFound(_0x507043,null))[_0x7a8f('0x47')](function(_0x5de3a0){if(_0x5de3a0){_0xc18c31=_0x5de3a0;_0x963f1['model']=_[_0x7a8f('0x38')](db['User'][_0x7a8f('0x32')]);_0x963f1[_0x7a8f('0x37')]=_['keys'](_0x10c0a0[_0x7a8f('0x37')]);_0x963f1['filters']=_['intersection'](_0x963f1[_0x7a8f('0x36')],_0x963f1['query']);_0x1e503d['attributes']=_[_0x7a8f('0x3b')](_0x963f1[_0x7a8f('0x36')],qs[_0x7a8f('0x3c')](_0x10c0a0['query']['fields']));_0x1e503d[_0x7a8f('0x3a')]=_0x1e503d[_0x7a8f('0x3a')]['length']?_0x1e503d[_0x7a8f('0x3a')]:_0x963f1['model'];_0x1e503d[_0x7a8f('0x3f')]=qs['sort'](_0x10c0a0[_0x7a8f('0x37')]['sort']);_0x1e503d[_0x7a8f('0x41')]=qs[_0x7a8f('0x39')](_[_0x7a8f('0x42')](_0x10c0a0[_0x7a8f('0x37')],_0x963f1['filters']));if(_0x10c0a0[_0x7a8f('0x37')][_0x7a8f('0x43')]){_0x1e503d['where']=_[_0x7a8f('0x44')](_0x1e503d[_0x7a8f('0x41')],{'$or':_[_0x7a8f('0x30')](_0x1e503d[_0x7a8f('0x3a')],function(_0x3077ff){var _0x62d017={};_0x62d017[_0x3077ff]={'$like':'%'+_0x10c0a0[_0x7a8f('0x37')][_0x7a8f('0x43')]+'%'};return _0x62d017;})});}_0x1e503d=_[_0x7a8f('0x44')]({},_0x1e503d,_0x10c0a0[_0x7a8f('0x46')]);return _0xc18c31[_0x7a8f('0xa3')](_0x1e503d);}})[_0x7a8f('0x47')](function(_0x2bea3b){if(_0x2bea3b){_0x2fda0e=_0x2bea3b[_0x7a8f('0x3d')];if(!_0x10c0a0['query'][_0x7a8f('0xa4')](_0x7a8f('0x3e'))){_0x1e503d[_0x7a8f('0x24')]=qs[_0x7a8f('0x24')](_0x10c0a0[_0x7a8f('0x37')][_0x7a8f('0x24')]);_0x1e503d[_0x7a8f('0x23')]=qs['offset'](_0x10c0a0[_0x7a8f('0x37')][_0x7a8f('0x23')]);}return _0xc18c31[_0x7a8f('0xa3')](_0x1e503d);}})[_0x7a8f('0x47')](function(_0x21ed10){if(_0x21ed10){return _0x21ed10?{'count':_0x2fda0e,'rows':_0x21ed10}:null;}})[_0x7a8f('0x47')](respondWithResult(_0x507043,null))[_0x7a8f('0x4b')](handleError(_0x507043,null));};