706309508d60d56e2c899f5c7d78db88e0a93ddf
[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 _0x4e9b=['Queue:save','online','interface','UserVoiceQueueRt','upsert','isNil','format','voicePause','all','removeAgents','isArray','Queue:remove','getAgents','length','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./team.socket','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','update','then','sendStatus','error','stack','name','send','index','Team','fieldName','type','key','map','query','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','include','rows','catch','params','keys','rawAttributes','includeAll','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','sequelize','transaction','Sequelize','QueryTypes','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','SmsQueueId','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','findOne','isValidChannel','ValidationError','Unknown\x20channel','capitalize','channel','toLowerCase','pick','Queues','ids','removeQueues','remove','addAgents','Voice','Chat','Mail','Fax','Openchannel','Whatsapp','through','penalty','QueueId','TeamVoiceQueue','User','Queue','findOrCreate','emit'];(function(_0x44f8d6,_0x4c6739){var _0x9fe276=function(_0x5ca8d4){while(--_0x5ca8d4){_0x44f8d6['push'](_0x44f8d6['shift']());}};_0x9fe276(++_0x4c6739);}(_0x4e9b,0xa4));var _0xb4e9=function(_0x47fd36,_0x41535d){_0x47fd36=_0x47fd36-0x0;var _0x21a0fc=_0x4e9b[_0x47fd36];return _0x21a0fc;};'use strict';var emlformat=require(_0xb4e9('0x0'));var rimraf=require(_0xb4e9('0x1'));var zipdir=require(_0xb4e9('0x2'));var jsonpatch=require(_0xb4e9('0x3'));var rp=require(_0xb4e9('0x4'));var moment=require('moment');var BPromise=require(_0xb4e9('0x5'));var Mustache=require(_0xb4e9('0x6'));var util=require('util');var path=require(_0xb4e9('0x7'));var sox=require(_0xb4e9('0x8'));var csv=require(_0xb4e9('0x9'));var ejs=require(_0xb4e9('0xa'));var fs=require('fs');var fs_extra=require(_0xb4e9('0xb'));var _=require('lodash');var squel=require(_0xb4e9('0xc'));var crypto=require(_0xb4e9('0xd'));var jsforce=require(_0xb4e9('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb4e9('0x9'));var querystring=require('querystring');var Papa=require(_0xb4e9('0xf'));var Redis=require(_0xb4e9('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xb4e9('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb4e9('0x12'));var logger=require(_0xb4e9('0x13'))('api');var utils=require(_0xb4e9('0x14'));var config=require(_0xb4e9('0x15'));var licenseUtil=require(_0xb4e9('0x16'));var db=require(_0xb4e9('0x17'))['db'];config[_0xb4e9('0x18')]=_[_0xb4e9('0x19')](config[_0xb4e9('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0xb4e9('0x1a'))(new Redis(config[_0xb4e9('0x18')]));require(_0xb4e9('0x1b'))['register'](socket);function respondWithStatusCode(_0x50fcc2,_0x380dc9){_0x380dc9=_0x380dc9||0xcc;return function(_0x26a60a){if(_0x26a60a){return _0x50fcc2['sendStatus'](_0x380dc9);}return _0x50fcc2['status'](_0x380dc9)[_0xb4e9('0x1c')]();};}function respondWithResult(_0x4cca71,_0x3edd6c){_0x3edd6c=_0x3edd6c||0xc8;return function(_0x47e755){if(_0x47e755){return _0x4cca71[_0xb4e9('0x1d')](_0x3edd6c)['json'](_0x47e755);}};}function respondWithFilteredResult(_0x126fbb,_0x52a021){return function(_0x205541){if(_0x205541){var _0x2ea6e1=typeof _0x52a021[_0xb4e9('0x1e')]===_0xb4e9('0x1f')&&typeof _0x52a021[_0xb4e9('0x20')]==='undefined';var _0x1dd961=_0x205541[_0xb4e9('0x21')];var _0x4b9676=_0x2ea6e1?0x0:_0x52a021[_0xb4e9('0x1e')];var _0x2e6453=_0x2ea6e1?_0x205541['count']:_0x52a021['offset']+_0x52a021['limit'];var _0xdc499c;if(_0x2e6453>=_0x1dd961){_0x2e6453=_0x1dd961;_0xdc499c=0xc8;}else{_0xdc499c=0xce;}_0x126fbb[_0xb4e9('0x1d')](_0xdc499c);return _0x126fbb[_0xb4e9('0x22')](_0xb4e9('0x23'),_0x4b9676+'-'+_0x2e6453+'/'+_0x1dd961)[_0xb4e9('0x24')](_0x205541);}return null;};}function patchUpdates(_0x16a17f){return function(_0x207cca){try{jsonpatch[_0xb4e9('0x25')](_0x207cca,_0x16a17f,!![]);}catch(_0x2c4bef){return BPromise['reject'](_0x2c4bef);}return _0x207cca[_0xb4e9('0x26')]();};}function saveUpdates(_0x1c6dc7,_0x4459ce){return function(_0x355bd9){if(_0x355bd9){return _0x355bd9[_0xb4e9('0x27')](_0x1c6dc7)[_0xb4e9('0x28')](function(_0x32529f){return _0x32529f;});}return null;};}function handleEntityNotFound(_0x511dc3,_0x31d3ac){return function(_0x553e6d){if(!_0x553e6d){_0x511dc3[_0xb4e9('0x29')](0x194);}return _0x553e6d;};}function handleError(_0x1eeb36,_0x388248){_0x388248=_0x388248||0x1f4;return function(_0x5c5d42){logger[_0xb4e9('0x2a')](_0x5c5d42[_0xb4e9('0x2b')]);if(_0x5c5d42['name']){delete _0x5c5d42[_0xb4e9('0x2c')];}_0x1eeb36['status'](_0x388248)[_0xb4e9('0x2d')](_0x5c5d42);};}exports[_0xb4e9('0x2e')]=function(_0x454b3f,_0x53fed7){var _0x4ea7ee={},_0x29369e={},_0x9fee01={'count':0x0,'rows':[]};var _0x3c7591=_['map'](db[_0xb4e9('0x2f')]['rawAttributes'],function(_0xd6bc98){return{'name':_0xd6bc98[_0xb4e9('0x30')],'type':_0xd6bc98[_0xb4e9('0x31')][_0xb4e9('0x32')]};});_0x29369e['model']=_[_0xb4e9('0x33')](_0x3c7591,_0xb4e9('0x2c'));_0x29369e['query']=_['keys'](_0x454b3f[_0xb4e9('0x34')]);_0x29369e[_0xb4e9('0x35')]=_[_0xb4e9('0x36')](_0x29369e[_0xb4e9('0x37')],_0x29369e['query']);_0x4ea7ee['attributes']=_[_0xb4e9('0x36')](_0x29369e[_0xb4e9('0x37')],qs[_0xb4e9('0x38')](_0x454b3f[_0xb4e9('0x34')]['fields']));_0x4ea7ee[_0xb4e9('0x39')]=_0x4ea7ee[_0xb4e9('0x39')]['length']?_0x4ea7ee[_0xb4e9('0x39')]:_0x29369e[_0xb4e9('0x37')];if(!_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x3a')](_0xb4e9('0x3b'))){_0x4ea7ee['limit']=qs['limit'](_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x20')]);_0x4ea7ee[_0xb4e9('0x1e')]=qs[_0xb4e9('0x1e')](_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x1e')]);}_0x4ea7ee[_0xb4e9('0x3c')]=qs[_0xb4e9('0x3d')](_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x3d')]);_0x4ea7ee[_0xb4e9('0x3e')]=qs[_0xb4e9('0x35')](_['pick'](_0x454b3f['query'],_0x29369e['filters']),_0x3c7591);if(_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x3f')]){_0x4ea7ee[_0xb4e9('0x3e')]=_[_0xb4e9('0x40')](_0x4ea7ee['where'],{'$or':_['map'](_0x3c7591,function(_0x11f044){if(_0x11f044[_0xb4e9('0x31')]!==_0xb4e9('0x41')){var _0x3fbe34={};_0x3fbe34[_0x11f044['name']]={'$like':'%'+_0x454b3f[_0xb4e9('0x34')][_0xb4e9('0x3f')]+'%'};return _0x3fbe34;}})});}_0x4ea7ee=_['merge']({},_0x4ea7ee,_0x454b3f[_0xb4e9('0x42')]);var _0x23dfaa={'where':_0x4ea7ee[_0xb4e9('0x3e')]};return db['Team']['count'](_0x23dfaa)['then'](function(_0x395d99){_0x9fee01[_0xb4e9('0x21')]=_0x395d99;if(_0x454b3f[_0xb4e9('0x34')]['includeAll']){_0x4ea7ee[_0xb4e9('0x43')]=[{'all':!![]}];}return db[_0xb4e9('0x2f')]['findAll'](_0x4ea7ee);})['then'](function(_0x1866c2){_0x9fee01[_0xb4e9('0x44')]=_0x1866c2;return _0x9fee01;})[_0xb4e9('0x28')](respondWithFilteredResult(_0x53fed7,_0x4ea7ee))[_0xb4e9('0x45')](handleError(_0x53fed7,null));};exports['show']=function(_0x2baa69,_0x46d5fd){var _0x3e1464={'raw':![],'where':{'id':_0x2baa69[_0xb4e9('0x46')]['id']}},_0xe3b10e={};_0xe3b10e[_0xb4e9('0x37')]=_[_0xb4e9('0x47')](db[_0xb4e9('0x2f')][_0xb4e9('0x48')]);_0xe3b10e['query']=_['keys'](_0x2baa69[_0xb4e9('0x34')]);_0xe3b10e['filters']=_[_0xb4e9('0x36')](_0xe3b10e['model'],_0xe3b10e[_0xb4e9('0x34')]);_0x3e1464['attributes']=_[_0xb4e9('0x36')](_0xe3b10e[_0xb4e9('0x37')],qs[_0xb4e9('0x38')](_0x2baa69[_0xb4e9('0x34')][_0xb4e9('0x38')]));_0x3e1464[_0xb4e9('0x39')]=_0x3e1464[_0xb4e9('0x39')]['length']?_0x3e1464['attributes']:_0xe3b10e[_0xb4e9('0x37')];if(_0x2baa69[_0xb4e9('0x34')][_0xb4e9('0x49')]){_0x3e1464[_0xb4e9('0x43')]=[{'all':!![]}];}_0x3e1464=_[_0xb4e9('0x40')]({},_0x3e1464,_0x2baa69[_0xb4e9('0x42')]);return db[_0xb4e9('0x2f')]['find'](_0x3e1464)[_0xb4e9('0x28')](handleEntityNotFound(_0x46d5fd,null))[_0xb4e9('0x28')](respondWithResult(_0x46d5fd,null))[_0xb4e9('0x45')](handleError(_0x46d5fd,null));};exports[_0xb4e9('0x4a')]=function(_0x8372df,_0x44fdaa){return db[_0xb4e9('0x2f')]['create'](_0x8372df['body'],{})[_0xb4e9('0x28')](function(_0x35aa5a){var _0x29d1ba=_0x8372df[_0xb4e9('0x4b')][_0xb4e9('0x4c')]({'plain':!![]});if(!_0x29d1ba)throw new Error(_0xb4e9('0x4d'));if(_0x29d1ba[_0xb4e9('0x4e')]==='user'){var _0x12197c=_0x35aa5a[_0xb4e9('0x4c')]({'plain':!![]});var _0x248e5f=_0xb4e9('0x4f');return db[_0xb4e9('0x50')][_0xb4e9('0x51')]({'where':{'name':_0x248e5f,'userProfileId':_0x29d1ba[_0xb4e9('0x52')]},'raw':!![]})['then'](function(_0x938ede){if(_0x938ede&&_0x938ede[_0xb4e9('0x53')]===0x0){return db[_0xb4e9('0x54')][_0xb4e9('0x4a')]({'name':_0x12197c[_0xb4e9('0x2c')],'resourceId':_0x12197c['id'],'type':_0x938ede['name'],'sectionId':_0x938ede['id']},{})[_0xb4e9('0x28')](function(){return _0x35aa5a;});}else{return _0x35aa5a;}})[_0xb4e9('0x45')](function(_0x136724){logger[_0xb4e9('0x2a')](_0xb4e9('0x55'),_0x136724);throw _0x136724;});}return _0x35aa5a;})['then'](respondWithResult(_0x44fdaa,0xc9))[_0xb4e9('0x45')](handleError(_0x44fdaa,null));};exports[_0xb4e9('0x27')]=function(_0x4a3fd0,_0x48962c){if(_0x4a3fd0['body']['id']){delete _0x4a3fd0['body']['id'];}return db[_0xb4e9('0x2f')][_0xb4e9('0x51')]({'where':{'id':_0x4a3fd0[_0xb4e9('0x46')]['id']}})['then'](handleEntityNotFound(_0x48962c,null))[_0xb4e9('0x28')](saveUpdates(_0x4a3fd0[_0xb4e9('0x56')],null))[_0xb4e9('0x28')](respondWithResult(_0x48962c,null))['catch'](handleError(_0x48962c,null));};exports[_0xb4e9('0x57')]=function(_0x2559c5,_0x36ded6){var _0x105d3f=_0x2559c5[_0xb4e9('0x46')]['id'];var _0x111a79=[];return db[_0xb4e9('0x58')][_0xb4e9('0x59')](function(_0x56037e){var _0x1d0e11='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x105d3f;return db['sequelize'][_0xb4e9('0x34')](_0x1d0e11,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e})[_0xb4e9('0x28')](function(_0x1968ee){_0x111a79=_['map'](_0x1968ee,function(_0x46817f){return Number(_0x46817f['UserId']);});})[_0xb4e9('0x28')](function(){var _0x2cec8f=_0xb4e9('0x5d')+_0x105d3f;return db['sequelize'][_0xb4e9('0x34')](_0x2cec8f,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')]['SELECT'],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0x58552b){var _0x26d75d=_['map'](_0x58552b,function(_0x1d5eb6){return Number(_0x1d5eb6['VoiceQueueId']);});return db[_0xb4e9('0x5e')][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'VoiceQueueId':{'$in':_0x26d75d}},'transaction':_0x56037e});})[_0xb4e9('0x28')](function(){var _0x4e7d64=_0xb4e9('0x5f')+_0x105d3f;return db[_0xb4e9('0x58')][_0xb4e9('0x34')](_0x4e7d64,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e});})['then'](function(_0x41aa37){var _0x22f899=_[_0xb4e9('0x33')](_0x41aa37,function(_0x4d004c){return Number(_0x4d004c[_0xb4e9('0x60')]);});return db['UserMailQueue'][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'MailQueueId':{'$in':_0x22f899}},'transaction':_0x56037e});})[_0xb4e9('0x28')](function(){var _0x5c14df='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x105d3f;return db[_0xb4e9('0x58')]['query'](_0x5c14df,{'type':db[_0xb4e9('0x5a')]['QueryTypes'][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0x34e610){var _0xbeb687=_[_0xb4e9('0x33')](_0x34e610,function(_0x466475){return Number(_0x466475[_0xb4e9('0x61')]);});return db['UserSmsQueue']['destroy']({'where':{'UserId':{'$in':_0x111a79},'SmsQueueId':{'$in':_0xbeb687}},'transaction':_0x56037e});})['then'](function(){var _0x422fee=_0xb4e9('0x62')+_0x105d3f;return db[_0xb4e9('0x58')][_0xb4e9('0x34')](_0x422fee,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0x28899a){var _0x559d16=_['map'](_0x28899a,function(_0x644e80){return Number(_0x644e80[_0xb4e9('0x63')]);});return db[_0xb4e9('0x64')][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'ChatQueueId':{'$in':_0x559d16}},'transaction':_0x56037e});})['then'](function(){var _0x4065e0='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x105d3f;return db[_0xb4e9('0x58')][_0xb4e9('0x34')](_0x4065e0,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0x3bbf24){var _0x182c88=_['map'](_0x3bbf24,function(_0x32eea9){return Number(_0x32eea9[_0xb4e9('0x65')]);});return db[_0xb4e9('0x66')]['destroy']({'where':{'UserId':{'$in':_0x111a79},'FaxQueueId':{'$in':_0x182c88}},'transaction':_0x56037e});})[_0xb4e9('0x28')](function(){var _0x2cb3cb=_0xb4e9('0x67')+_0x105d3f;return db[_0xb4e9('0x58')][_0xb4e9('0x34')](_0x2cb3cb,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')]['SELECT'],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0x225350){var _0x401836=_[_0xb4e9('0x33')](_0x225350,function(_0x52870f){return Number(_0x52870f['OpenchannelQueueId']);});return db[_0xb4e9('0x68')][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'OpenchannelQueueId':{'$in':_0x401836}},'transaction':_0x56037e});})['then'](function(){var _0x3c19d4=_0xb4e9('0x69')+_0x105d3f;return db['sequelize'][_0xb4e9('0x34')](_0x3c19d4,{'type':db[_0xb4e9('0x5a')][_0xb4e9('0x5b')][_0xb4e9('0x5c')],'raw':!![],'transaction':_0x56037e});})[_0xb4e9('0x28')](function(_0xdb230){var _0x126a2e=_['map'](_0xdb230,function(_0x5c01f8){return Number(_0x5c01f8['WhatsappQueueId']);});return db['UserWhatsappQueue'][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'WhatsappQueueId':{'$in':_0x126a2e}},'transaction':_0x56037e});})[_0xb4e9('0x28')](function(){return db[_0xb4e9('0x6a')][_0xb4e9('0x51')]({'where':{'TeamId':_0x105d3f}});})['then'](function(_0x4d243b){if(_0x4d243b===null){return;}return db[_0xb4e9('0x6b')][_0xb4e9('0x57')]({'where':{'UserId':{'$in':_0x111a79},'VoicePrefixId':_0x4d243b[_0xb4e9('0x6c')]},'transaction':_0x56037e});})[_0xb4e9('0x28')](function(){return db[_0xb4e9('0x2f')]['destroy']({'where':{'id':_0x105d3f},'cascade':!![],'transaction':_0x56037e});})['then'](function(_0x4c22ff){if(_0x4c22ff===0x0){_0x36ded6[_0xb4e9('0x29')](0x194);}else{return db[_0xb4e9('0x54')][_0xb4e9('0x57')]({'where':{'type':_0xb4e9('0x4f'),'resourceId':_0x105d3f},'cascade':!![],'transaction':_0x56037e})['then'](function(){_0x36ded6[_0xb4e9('0x1d')](0xcc)[_0xb4e9('0x1c')]();});}})[_0xb4e9('0x45')](function(_0x102df6){_0x36ded6[_0xb4e9('0x1d')](0x1f4)[_0xb4e9('0x2d')](_0x102df6);});});};exports['getQueues']=function(_0x46e1ef,_0x2fa681,_0x39a456){return db[_0xb4e9('0x2f')][_0xb4e9('0x6d')]({'where':{'id':_0x46e1ef[_0xb4e9('0x46')]['id']}})[_0xb4e9('0x28')](handleEntityNotFound(_0x2fa681,null))['then'](function(_0x31234b){if(!_0x46e1ef[_0xb4e9('0x34')]['channel']||!utils[_0xb4e9('0x6e')](_0x46e1ef[_0xb4e9('0x34')]['channel'])){throw new db[(_0xb4e9('0x5a'))][(_0xb4e9('0x6f'))](_0xb4e9('0x70'));}var _0x107191={};var _0x1c130e={};_0x1c130e[_0xb4e9('0x37')]=_[_0xb4e9('0x47')](db[_[_0xb4e9('0x71')](_0x46e1ef[_0xb4e9('0x34')][_0xb4e9('0x72')][_0xb4e9('0x73')]())+'Queue'][_0xb4e9('0x48')]);_0x1c130e[_0xb4e9('0x34')]=_[_0xb4e9('0x47')](_0x46e1ef[_0xb4e9('0x34')]);_0x1c130e[_0xb4e9('0x35')]=_[_0xb4e9('0x36')](_0x1c130e[_0xb4e9('0x37')],_0x1c130e[_0xb4e9('0x34')]);_0x107191[_0xb4e9('0x39')]=_[_0xb4e9('0x36')](_0x1c130e[_0xb4e9('0x37')],qs[_0xb4e9('0x38')](_0x46e1ef[_0xb4e9('0x34')]['fields']));_0x107191[_0xb4e9('0x39')]=_0x107191[_0xb4e9('0x39')]['length']?_0x107191['attributes']:_0x1c130e['model'];_0x107191[_0xb4e9('0x20')]=qs['limit'](_0x46e1ef['query'][_0xb4e9('0x20')]);_0x107191['offset']=qs['offset'](_0x46e1ef[_0xb4e9('0x34')][_0xb4e9('0x1e')]);_0x107191[_0xb4e9('0x3c')]=qs[_0xb4e9('0x3d')](_0x46e1ef[_0xb4e9('0x34')]['sort']);_0x107191[_0xb4e9('0x3e')]=qs[_0xb4e9('0x35')](_[_0xb4e9('0x74')](_0x46e1ef[_0xb4e9('0x34')],_0x1c130e['filters']));_0x107191=_[_0xb4e9('0x40')]({},_0x107191,_0x46e1ef[_0xb4e9('0x42')]);return _0x31234b[_0xb4e9('0x4c')+_[_0xb4e9('0x71')](_0x46e1ef[_0xb4e9('0x34')][_0xb4e9('0x72')][_0xb4e9('0x73')]())+_0xb4e9('0x75')](_0x107191);})['then'](respondWithResult(_0x2fa681,null))[_0xb4e9('0x45')](handleError(_0x2fa681,null));};exports['addQueues']=function(_0x55728c,_0xc0de23,_0xd6fc71){return db[_0xb4e9('0x2f')]['findOne']({'where':{'id':_0x55728c[_0xb4e9('0x46')]['id']}})['then'](function(_0x22fdd3){if(_0x22fdd3){if(!_0x55728c[_0xb4e9('0x56')][_0xb4e9('0x72')]||!utils[_0xb4e9('0x6e')](_0x55728c['body'][_0xb4e9('0x72')])){throw new db['Sequelize'][(_0xb4e9('0x6f'))]('Unknown\x20channel');}return _0x22fdd3['add'+_[_0xb4e9('0x71')](_0x55728c[_0xb4e9('0x56')][_0xb4e9('0x72')][_0xb4e9('0x73')]())+_0xb4e9('0x75')](_0x55728c[_0xb4e9('0x56')][_0xb4e9('0x76')]);}return null;})['then'](handleEntityNotFound(_0xc0de23,null))['then'](respondWithStatusCode(_0xc0de23,null))[_0xb4e9('0x45')](handleError(_0xc0de23,null));};exports[_0xb4e9('0x77')]=function(_0x39a002,_0x5a0a68,_0xe57409){return db[_0xb4e9('0x2f')]['findOne']({'where':{'id':_0x39a002[_0xb4e9('0x46')]['id']}})[_0xb4e9('0x28')](function(_0x47608c){if(_0x47608c){if(!_0x39a002[_0xb4e9('0x34')][_0xb4e9('0x72')]||!utils['isValidChannel'](_0x39a002[_0xb4e9('0x34')][_0xb4e9('0x72')])){throw new db[(_0xb4e9('0x5a'))]['ValidationError'](_0xb4e9('0x70'));}return _0x47608c[_0xb4e9('0x78')+_[_0xb4e9('0x71')](_0x39a002[_0xb4e9('0x34')][_0xb4e9('0x72')]['toLowerCase']())+_0xb4e9('0x75')](_0x39a002[_0xb4e9('0x34')][_0xb4e9('0x76')]);}return null;})[_0xb4e9('0x28')](handleEntityNotFound(_0x5a0a68,null))[_0xb4e9('0x28')](respondWithStatusCode(_0x5a0a68,null))[_0xb4e9('0x45')](handleError(_0x5a0a68,null));};exports[_0xb4e9('0x79')]=function(_0x291ea1,_0x155498){var _0x53f55f=_['isArray'](_0x291ea1[_0xb4e9('0x56')][_0xb4e9('0x76')])?_0x291ea1['body'][_0xb4e9('0x76')]:[_0x291ea1[_0xb4e9('0x56')][_0xb4e9('0x76')]];var _0x1982fc=_0x291ea1[_0xb4e9('0x46')]['id'];return db['Team'][_0xb4e9('0x51')]({'where':{'id':_0x1982fc}})[_0xb4e9('0x28')](handleEntityNotFound(_0x155498,null))[_0xb4e9('0x28')](function(_0x11a3ec){if(_0x11a3ec){var _0x2f682d=[_0xb4e9('0x7a'),_0xb4e9('0x7b'),_0xb4e9('0x7c'),'Sms',_0xb4e9('0x7d'),_0xb4e9('0x7e'),_0xb4e9('0x7f')];return db[_0xb4e9('0x58')][_0xb4e9('0x59')](function(_0x4eb962){var _0x438223=_['map'](_0x2f682d,function(_0x5cbb5c){var _0x2d6b6f={'attributes':['id','name']};if(_0x5cbb5c===_0xb4e9('0x7a')){_0x2d6b6f[_0xb4e9('0x80')]={'attributes':[_0xb4e9('0x81')]};}return _0x11a3ec[_0xb4e9('0x4c')+_0x5cbb5c+_0xb4e9('0x75')](_0x2d6b6f)['then'](function(_0x328bf2){var _0x3811d6=_[_0xb4e9('0x33')](_0x328bf2,function(_0x3df4d6){var _0x1fd0ae=_[_0xb4e9('0x33')](_0x53f55f,function(_0x2027c9){var _0x17ce70={'where':{'UserId':_0x2027c9,[_0x5cbb5c+_0xb4e9('0x82')]:_0x3df4d6['id']},'transaction':_0x4eb962};if(_0x5cbb5c==='Voice'){_0x17ce70['defaults']={'penalty':_0x3df4d6[_0xb4e9('0x83')][_0xb4e9('0x81')]};}return db[_0xb4e9('0x84')+_0x5cbb5c+_0xb4e9('0x85')][_0xb4e9('0x86')](_0x17ce70)['then'](function(){socket[_0xb4e9('0x87')](_0xb4e9('0x4b')+_0x5cbb5c+_0xb4e9('0x88'),{'UserId':_0x2027c9,[_0x5cbb5c+_0xb4e9('0x82')]:_0x3df4d6['id']});if(_0x5cbb5c!==_0xb4e9('0x7a')){return;}return db[_0xb4e9('0x84')]['findAll']({'where':{'id':_0x53f55f,'online':0x1},'attributes':['id',_0xb4e9('0x2c'),_0xb4e9('0x89'),'voicePause',_0xb4e9('0x8a')],'raw':!![]})['then'](function(_0x22a35c){var _0x33a1d5=_[_0xb4e9('0x33')](_0x22a35c,function(_0x574866){return db[_0xb4e9('0x8b')][_0xb4e9('0x8c')]({'membername':_0x574866[_0xb4e9('0x2c')],'UserId':_0x574866['id'],'queue_name':_0x3df4d6['name'],'VoiceQueueId':_0x3df4d6['id'],'interface':_[_0xb4e9('0x8d')](_0x574866[_0xb4e9('0x8a')])?util[_0xb4e9('0x8e')]('SIP/%s',_0x574866[_0xb4e9('0x2c')]):_0x574866[_0xb4e9('0x8a')],'paused':_0x574866[_0xb4e9('0x8f')]||![],'penalty':_0x3df4d6[_0xb4e9('0x83')][_0xb4e9('0x81')]},{'transaction':_0x4eb962});});return Promise[_0xb4e9('0x90')](_0x33a1d5);});});});return Promise[_0xb4e9('0x90')](_0x1fd0ae);});return Promise[_0xb4e9('0x90')](_0x3811d6);})[_0xb4e9('0x28')](function(){return db[_0xb4e9('0x6a')][_0xb4e9('0x6d')]({'where':{'teamId':_0x1982fc}})[_0xb4e9('0x28')](function(_0x3e4afb){if(_0x3e4afb){var _0x346274=_[_0xb4e9('0x33')](_0x53f55f,function(_0xfa8c83){db[_0xb4e9('0x6b')][_0xb4e9('0x8c')]({'UserId':_0xfa8c83,'VoicePrefixId':_0x3e4afb[_0xb4e9('0x6c')]});});return Promise[_0xb4e9('0x90')](_0x346274);}});});});return Promise[_0xb4e9('0x90')](_0x438223)['then'](function(){return _0x11a3ec[_0xb4e9('0x79')](_0x53f55f,{'transaction':_0x4eb962})['spread'](function(_0x51421e){return _0x51421e;});});});}})[_0xb4e9('0x28')](respondWithResult(_0x155498,null))[_0xb4e9('0x45')](handleError(_0x155498,null));};exports[_0xb4e9('0x91')]=function(_0x2eb635,_0x4453c6){var _0x4752f1=_[_0xb4e9('0x92')](_0x2eb635['query'][_0xb4e9('0x76')])?_0x2eb635[_0xb4e9('0x34')][_0xb4e9('0x76')]:[_0x2eb635[_0xb4e9('0x34')][_0xb4e9('0x76')]];var _0x467260=_0x2eb635[_0xb4e9('0x46')]['id'];return db[_0xb4e9('0x2f')][_0xb4e9('0x51')]({'where':{'id':_0x467260}})[_0xb4e9('0x28')](handleEntityNotFound(_0x4453c6,null))[_0xb4e9('0x28')](function(_0x32a7b7){if(_0x32a7b7){var _0x2cb774=[_0xb4e9('0x7a'),_0xb4e9('0x7b'),_0xb4e9('0x7c'),'Sms','Fax',_0xb4e9('0x7e'),'Whatsapp'];return db[_0xb4e9('0x58')]['transaction'](function(_0x397047){var _0x1ff0bb=_['map'](_0x2cb774,function(_0x2a961b){var _0x266c01={'attributes':['id',_0xb4e9('0x2c')]};return _0x32a7b7[_0xb4e9('0x4c')+_0x2a961b+_0xb4e9('0x75')](_0x266c01)[_0xb4e9('0x28')](function(_0x4ce408){var _0x5b71ac=_[_0xb4e9('0x33')](_0x4ce408,function(_0x36fd9e){return _0x36fd9e[_0xb4e9('0x91')](_0x4752f1,{'transaction':_0x397047})['then'](function(){var _0x128df5=_['map'](_0x4752f1,function(_0x5b0261){socket[_0xb4e9('0x87')]('user'+_0x2a961b+_0xb4e9('0x93'),{'UserId':Number(_0x5b0261),[_0x2a961b+'QueueId']:_0x36fd9e['id']});if(_0x2a961b!=='Voice'){return;}return db[_0xb4e9('0x8b')][_0xb4e9('0x57')]({'where':{'VoiceQueueId':_0x36fd9e['id'],'UserId':_0x5b0261},'transaction':_0x397047});});return Promise[_0xb4e9('0x90')](_0x128df5);});});return Promise[_0xb4e9('0x90')](_0x5b71ac);});});return Promise[_0xb4e9('0x90')](_0x1ff0bb)[_0xb4e9('0x28')](function(){return _0x32a7b7[_0xb4e9('0x91')](_0x4752f1,{'transaction':_0x397047});})[_0xb4e9('0x28')](function(){return db[_0xb4e9('0x6a')][_0xb4e9('0x6d')]({'where':{'teamId':_0x467260}})['then'](function(_0x4fa232){if(_0x4fa232){var _0x467ac1=_[_0xb4e9('0x33')](_0x4752f1,function(_0x216010){db[_0xb4e9('0x6b')]['destroy']({'where':{'UserId':_0x216010,'VoicePrefixId':_0x4fa232[_0xb4e9('0x6c')]}});});return Promise['all'](_0x467ac1);}});});});}})[_0xb4e9('0x28')](respondWithStatusCode(_0x4453c6,null))[_0xb4e9('0x45')](handleError(_0x4453c6,null));};exports[_0xb4e9('0x94')]=function(_0x4c5648,_0x16a213,_0x2d4423){var _0x311efb={};var _0x557474={};var _0x22e737;var _0x2b60ac;return db[_0xb4e9('0x2f')][_0xb4e9('0x6d')]({'where':{'id':_0x4c5648['params']['id']}})[_0xb4e9('0x28')](handleEntityNotFound(_0x16a213,null))[_0xb4e9('0x28')](function(_0x4a2d29){if(_0x4a2d29){_0x22e737=_0x4a2d29;_0x557474['model']=_[_0xb4e9('0x47')](db[_0xb4e9('0x84')][_0xb4e9('0x48')]);_0x557474['query']=_[_0xb4e9('0x47')](_0x4c5648[_0xb4e9('0x34')]);_0x557474['filters']=_[_0xb4e9('0x36')](_0x557474[_0xb4e9('0x37')],_0x557474['query']);_0x311efb['attributes']=_[_0xb4e9('0x36')](_0x557474[_0xb4e9('0x37')],qs[_0xb4e9('0x38')](_0x4c5648['query'][_0xb4e9('0x38')]));_0x311efb['attributes']=_0x311efb[_0xb4e9('0x39')]['length']?_0x311efb[_0xb4e9('0x39')]:_0x557474[_0xb4e9('0x37')];_0x311efb['order']=qs['sort'](_0x4c5648[_0xb4e9('0x34')][_0xb4e9('0x3d')]);_0x311efb['where']=qs[_0xb4e9('0x35')](_['pick'](_0x4c5648[_0xb4e9('0x34')],_0x557474['filters']));if(_0x4c5648[_0xb4e9('0x34')][_0xb4e9('0x3f')]){_0x311efb[_0xb4e9('0x3e')]=_[_0xb4e9('0x40')](_0x311efb[_0xb4e9('0x3e')],{'$or':_['map'](_0x311efb[_0xb4e9('0x39')],function(_0x1fa667){var _0x187064={};_0x187064[_0x1fa667]={'$like':'%'+_0x4c5648[_0xb4e9('0x34')]['filter']+'%'};return _0x187064;})});}_0x311efb=_[_0xb4e9('0x40')]({},_0x311efb,_0x4c5648[_0xb4e9('0x42')]);return _0x22e737[_0xb4e9('0x94')](_0x311efb);}})['then'](function(_0x1d7062){if(_0x1d7062){_0x2b60ac=_0x1d7062[_0xb4e9('0x95')];if(!_0x4c5648[_0xb4e9('0x34')][_0xb4e9('0x3a')]('nolimit')){_0x311efb[_0xb4e9('0x20')]=qs[_0xb4e9('0x20')](_0x4c5648[_0xb4e9('0x34')]['limit']);_0x311efb['offset']=qs[_0xb4e9('0x1e')](_0x4c5648[_0xb4e9('0x34')]['offset']);}return _0x22e737[_0xb4e9('0x94')](_0x311efb);}})[_0xb4e9('0x28')](function(_0x130aaf){if(_0x130aaf){return _0x130aaf?{'count':_0x2b60ac,'rows':_0x130aaf}:null;}})['then'](respondWithResult(_0x16a213,null))[_0xb4e9('0x45')](handleError(_0x16a213,null));};