Built motion from commit 10af8726.|2.6.34
[motion2.git] / server / api / voicePrefix / voicePrefix.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 _0x1a85=['UserProfileSection','userProfileId','autoAssociation','from-sip','exten','description','Voice\x20Prefix\x20Extension','priority','appdata','prefix','Voice\x20Prefix','VoicePrefixId','VoiceExtension','bulkCreate','Extensions\x20creation\x20failed','push','CDR(prefix)=','callerIdAll','NoOp','No\x20callerid\x20available','goto','context','${EXTEN:','charAt','system-','findById','addAgents','omit','ids','spread','emit','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','getAgents','findOne','User','order','getTeams','Team','Agents','online','voicePause','addTeams','each','TeamVoicePrefix','upsert','UserVoicePrefix','findOrCreate','removeTeams','select','field','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','VoicePrefixId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','every','TeamId','includes','all','compact','value','isEmpty','forEach','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','status','end','json','offset','undefined','limit','count','Content-Range','update','then','destroy','get','VoicePrefixes','UserProfileResource','sendStatus','error','stack','name','index','map','VoicePrefix','rawAttributes','type','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','describe','create','sequelize','transaction','body','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x19f7a5,_0x4b7eb3){var _0x172e23=function(_0x30e2e5){while(--_0x30e2e5){_0x19f7a5['push'](_0x19f7a5['shift']());}};_0x172e23(++_0x4b7eb3);}(_0x1a85,0x178));var _0x51a8=function(_0x52282a,_0x45aef7){_0x52282a=_0x52282a-0x0;var _0x3c66b4=_0x1a85[_0x52282a];return _0x3c66b4;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x51a8('0x0'));var jsonpatch=require(_0x51a8('0x1'));var rp=require(_0x51a8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x51a8('0x3'));var util=require(_0x51a8('0x4'));var path=require(_0x51a8('0x5'));var sox=require('sox');var csv=require(_0x51a8('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x51a8('0x7'));var _=require('lodash');var squel=require(_0x51a8('0x8'));var crypto=require(_0x51a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x51a8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x51a8('0xb'));var Redis=require(_0x51a8('0xc'));var authService=require(_0x51a8('0xd'));var qs=require(_0x51a8('0xe'));var as=require(_0x51a8('0xf'));var hardwareService=require(_0x51a8('0x10'));var logger=require(_0x51a8('0x11'))(_0x51a8('0x12'));var utils=require(_0x51a8('0x13'));var config=require(_0x51a8('0x14'));var licenseUtil=require(_0x51a8('0x15'));var db=require(_0x51a8('0x16'))['db'];config[_0x51a8('0x17')]=_[_0x51a8('0x18')](config[_0x51a8('0x17')],{'host':_0x51a8('0x19'),'port':0x18eb});var socket=require(_0x51a8('0x1a'))(new Redis(config['redis']));require(_0x51a8('0x1b'))[_0x51a8('0x1c')](socket);function respondWithStatusCode(_0xaec066,_0x50d992){_0x50d992=_0x50d992||0xcc;return function(_0xf4eb6e){if(_0xf4eb6e){return _0xaec066['sendStatus'](_0x50d992);}return _0xaec066[_0x51a8('0x1d')](_0x50d992)[_0x51a8('0x1e')]();};}function respondWithResult(_0x39cd45,_0x2b0521){_0x2b0521=_0x2b0521||0xc8;return function(_0x3fbd02){if(_0x3fbd02){return _0x39cd45[_0x51a8('0x1d')](_0x2b0521)[_0x51a8('0x1f')](_0x3fbd02);}};}function respondWithFilteredResult(_0x516abc,_0x1c2f25){return function(_0x45a433){if(_0x45a433){var _0xd52230=typeof _0x1c2f25[_0x51a8('0x20')]===_0x51a8('0x21')&&typeof _0x1c2f25[_0x51a8('0x22')]==='undefined';var _0x1df8c2=_0x45a433[_0x51a8('0x23')];var _0x2217ce=_0xd52230?0x0:_0x1c2f25[_0x51a8('0x20')];var _0x2a4c4c=_0xd52230?_0x45a433[_0x51a8('0x23')]:_0x1c2f25[_0x51a8('0x20')]+_0x1c2f25[_0x51a8('0x22')];var _0x5ac1c0;if(_0x2a4c4c>=_0x1df8c2){_0x2a4c4c=_0x1df8c2;_0x5ac1c0=0xc8;}else{_0x5ac1c0=0xce;}_0x516abc[_0x51a8('0x1d')](_0x5ac1c0);return _0x516abc['set'](_0x51a8('0x24'),_0x2217ce+'-'+_0x2a4c4c+'/'+_0x1df8c2)[_0x51a8('0x1f')](_0x45a433);}return null;};}function patchUpdates(_0x8bda40){return function(_0x3759d6){try{jsonpatch['apply'](_0x3759d6,_0x8bda40,!![]);}catch(_0xae3588){return BPromise['reject'](_0xae3588);}return _0x3759d6['save']();};}function saveUpdates(_0x23d26a,_0x52e503){return function(_0x384d25){if(_0x384d25){return _0x384d25[_0x51a8('0x25')](_0x23d26a)[_0x51a8('0x26')](function(_0x18e2f3){return _0x18e2f3;});}return null;};}function removeEntity(_0x157554,_0x2f2f05){return function(_0x291ed6){if(_0x291ed6){return _0x291ed6[_0x51a8('0x27')]()['then'](function(){var _0x273ce2=_0x291ed6[_0x51a8('0x28')]({'plain':!![]});var _0xca5746=_0x51a8('0x29');return db[_0x51a8('0x2a')][_0x51a8('0x27')]({'where':{'type':_0xca5746,'resourceId':_0x273ce2['id']}})[_0x51a8('0x26')](function(){return _0x291ed6;});})[_0x51a8('0x26')](function(){_0x157554[_0x51a8('0x1d')](0xcc)[_0x51a8('0x1e')]();});}};}function handleEntityNotFound(_0x20c6b5,_0x347a02){return function(_0x4a1548){if(!_0x4a1548){_0x20c6b5[_0x51a8('0x2b')](0x194);}return _0x4a1548;};}function handleError(_0x58cba0,_0x276424){_0x276424=_0x276424||0x1f4;return function(_0x3bc19a){logger[_0x51a8('0x2c')](_0x3bc19a[_0x51a8('0x2d')]);if(_0x3bc19a[_0x51a8('0x2e')]){delete _0x3bc19a['name'];}_0x58cba0[_0x51a8('0x1d')](_0x276424)['send'](_0x3bc19a);};}exports[_0x51a8('0x2f')]=function(_0x24b39a,_0x253a59){var _0x4b19c8={},_0x2080a1={},_0x499a43={'count':0x0,'rows':[]};var _0x25a858=_[_0x51a8('0x30')](db[_0x51a8('0x31')][_0x51a8('0x32')],function(_0x193e0f){return{'name':_0x193e0f['fieldName'],'type':_0x193e0f[_0x51a8('0x33')]['key']};});_0x2080a1[_0x51a8('0x34')]=_[_0x51a8('0x30')](_0x25a858,_0x51a8('0x2e'));_0x2080a1['query']=_[_0x51a8('0x35')](_0x24b39a[_0x51a8('0x36')]);_0x2080a1[_0x51a8('0x37')]=_[_0x51a8('0x38')](_0x2080a1[_0x51a8('0x34')],_0x2080a1['query']);_0x4b19c8['attributes']=_['intersection'](_0x2080a1[_0x51a8('0x34')],qs[_0x51a8('0x39')](_0x24b39a['query'][_0x51a8('0x39')]));_0x4b19c8['attributes']=_0x4b19c8[_0x51a8('0x3a')][_0x51a8('0x3b')]?_0x4b19c8[_0x51a8('0x3a')]:_0x2080a1[_0x51a8('0x34')];if(!_0x24b39a[_0x51a8('0x36')][_0x51a8('0x3c')]('nolimit')){_0x4b19c8['limit']=qs[_0x51a8('0x22')](_0x24b39a['query']['limit']);_0x4b19c8['offset']=qs[_0x51a8('0x20')](_0x24b39a[_0x51a8('0x36')][_0x51a8('0x20')]);}_0x4b19c8['order']=qs[_0x51a8('0x3d')](_0x24b39a[_0x51a8('0x36')][_0x51a8('0x3d')]);_0x4b19c8[_0x51a8('0x3e')]=qs['filters'](_[_0x51a8('0x3f')](_0x24b39a[_0x51a8('0x36')],_0x2080a1[_0x51a8('0x37')]),_0x25a858);if(_0x24b39a['query'][_0x51a8('0x40')]){_0x4b19c8['where']=_[_0x51a8('0x41')](_0x4b19c8[_0x51a8('0x3e')],{'$or':_[_0x51a8('0x30')](_0x25a858,function(_0x37d50b){if(_0x37d50b['type']!==_0x51a8('0x42')){var _0x3da2cf={};_0x3da2cf[_0x37d50b[_0x51a8('0x2e')]]={'$like':'%'+_0x24b39a[_0x51a8('0x36')][_0x51a8('0x40')]+'%'};return _0x3da2cf;}})});}_0x4b19c8=_[_0x51a8('0x41')]({},_0x4b19c8,_0x24b39a[_0x51a8('0x43')]);var _0x1cdec6={'where':_0x4b19c8[_0x51a8('0x3e')]};return db['VoicePrefix'][_0x51a8('0x23')](_0x1cdec6)[_0x51a8('0x26')](function(_0x4c7c67){_0x499a43['count']=_0x4c7c67;if(_0x24b39a[_0x51a8('0x36')][_0x51a8('0x44')]){_0x4b19c8[_0x51a8('0x45')]=[{'all':!![]}];}return db[_0x51a8('0x31')][_0x51a8('0x46')](_0x4b19c8);})[_0x51a8('0x26')](function(_0x28f5b3){_0x499a43[_0x51a8('0x47')]=_0x28f5b3;return _0x499a43;})[_0x51a8('0x26')](respondWithFilteredResult(_0x253a59,_0x4b19c8))[_0x51a8('0x48')](handleError(_0x253a59,null));};exports['show']=function(_0x416988,_0x218ae0){var _0x190d52={'raw':![],'where':{'id':_0x416988[_0x51a8('0x49')]['id']}},_0x444b0b={};_0x444b0b[_0x51a8('0x34')]=_['keys'](db[_0x51a8('0x31')]['rawAttributes']);_0x444b0b[_0x51a8('0x36')]=_[_0x51a8('0x35')](_0x416988[_0x51a8('0x36')]);_0x444b0b[_0x51a8('0x37')]=_[_0x51a8('0x38')](_0x444b0b['model'],_0x444b0b['query']);_0x190d52[_0x51a8('0x3a')]=_[_0x51a8('0x38')](_0x444b0b[_0x51a8('0x34')],qs[_0x51a8('0x39')](_0x416988[_0x51a8('0x36')]['fields']));_0x190d52['attributes']=_0x190d52[_0x51a8('0x3a')][_0x51a8('0x3b')]?_0x190d52[_0x51a8('0x3a')]:_0x444b0b[_0x51a8('0x34')];if(_0x416988[_0x51a8('0x36')][_0x51a8('0x44')]){_0x190d52[_0x51a8('0x45')]=[{'all':!![]}];}_0x190d52=_[_0x51a8('0x41')]({},_0x190d52,_0x416988[_0x51a8('0x43')]);return db['VoicePrefix']['find'](_0x190d52)['then'](handleEntityNotFound(_0x218ae0,null))[_0x51a8('0x26')](respondWithResult(_0x218ae0,null))[_0x51a8('0x48')](handleError(_0x218ae0,null));};exports[_0x51a8('0x27')]=function(_0x5259f3,_0x3bd492){return db[_0x51a8('0x31')]['find']({'where':{'id':_0x5259f3[_0x51a8('0x49')]['id']}})['then'](handleEntityNotFound(_0x3bd492,null))['then'](removeEntity(_0x3bd492,null))[_0x51a8('0x48')](handleError(_0x3bd492,null));};exports[_0x51a8('0x4a')]=function(_0x41dd1f,_0x56d7f1){return db['VoicePrefix'][_0x51a8('0x4a')]()['then'](respondWithResult(_0x56d7f1,null))[_0x51a8('0x48')](handleError(_0x56d7f1,null));};exports[_0x51a8('0x4b')]=function(_0x3623d4,_0x1ace5b){var _0xee9bee;return db[_0x51a8('0x4c')][_0x51a8('0x4d')](function(_0x406a87){return db[_0x51a8('0x31')]['create'](_0x3623d4[_0x51a8('0x4e')],{'transaction':_0x406a87})[_0x51a8('0x26')](function(_0x823d14){_0xee9bee=_0x823d14[_0x51a8('0x28')]({'plain':!![]});return db['VoiceExtension'][_0x51a8('0x4f')]({'where':{'id':_0xee9bee['VoiceExtensionId']},'raw':!![]})[_0x51a8('0x26')](function(_0x252c20){return createVoicePrefixExtensions(_0xee9bee,_0x252c20,_0x406a87);});});})['then'](function(){var _0x56dd7a=_0x3623d4[_0x51a8('0x50')][_0x51a8('0x28')]({'plain':!![]});if(!_0x56dd7a)throw new Error(_0x51a8('0x51'));if(_0x56dd7a[_0x51a8('0x52')]===_0x51a8('0x50')){var _0x52f60f=_0xee9bee;return db[_0x51a8('0x53')][_0x51a8('0x4f')]({'where':{'name':_0x51a8('0x29'),'userProfileId':_0x56dd7a[_0x51a8('0x54')]},'raw':!![]})[_0x51a8('0x26')](function(_0x5d44fe){if(_0x5d44fe&&_0x5d44fe[_0x51a8('0x55')]===0x0){return db[_0x51a8('0x2a')][_0x51a8('0x4b')]({'name':_0x52f60f[_0x51a8('0x2e')],'resourceId':_0x52f60f['id'],'type':_0x5d44fe[_0x51a8('0x2e')],'sectionId':_0x5d44fe['id']},{})[_0x51a8('0x26')](function(){return _0xee9bee;});}else{return _0xee9bee;}})['catch'](function(_0x4cef4e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4cef4e);throw _0x4cef4e;});}return _0xee9bee;})[_0x51a8('0x26')](respondWithResult(_0x1ace5b,null))[_0x51a8('0x48')](handleError(_0x1ace5b,null));};function Extension(_0x51f9f7,_0x7ac0ae,_0x56d3d7,_0x41cc00){this['context']=_0x51a8('0x56');this[_0x51a8('0x57')]=_0x51f9f7;this['app']=_0x56d3d7;this['type']='system';this[_0x51a8('0x58')]=_0x51a8('0x59');this[_0x51a8('0x5a')]=_0x7ac0ae;this[_0x51a8('0x5b')]=_0x41cc00;}function createVoicePrefixExtensions(_0x149047,_0x21c8e0,_0x3fd347){return new BPromise(function(_0x259153,_0x494e11){var _0x43c2ad=new Extension(formatPrefixName(_0x149047[_0x51a8('0x5c')]),0x1,'NoOp',_0x51a8('0x5d'));_0x43c2ad[_0x51a8('0x5e')]=_0x149047['id'];return db[_0x51a8('0x5f')][_0x51a8('0x4b')](_0x43c2ad,{'transaction':_0x3fd347})[_0x51a8('0x26')](function(_0x2a5684){var _0x4f6d5f=_0x2a5684['get']({'plain':!![]});var _0x31a464=_['map'](addVoicePrefixExtensions(_0x149047,_0x21c8e0),function(_0x4ca01a){_0x4ca01a['VoiceExtensionId']=_0x4f6d5f['id'];_0x4ca01a['VoicePrefixId']=_0x149047['id'];return _0x4ca01a;});return db['VoiceExtension'][_0x51a8('0x60')](_0x31a464,{'transaction':_0x3fd347})['then'](function(_0x1477af){if(!_0x1477af){return _0x494e11(_0x51a8('0x61'));}else{return _0x259153(_0x1477af);}})[_0x51a8('0x48')](function(_0x2d3d37){return _0x494e11(_0x2d3d37);});});;});};function addVoicePrefixExtensions(_0xf05c1a,_0x2d8b9b){var _0x28c539=[];var _0xdafa01=formatPrefixName(_0xf05c1a[_0x51a8('0x5c')]);_0x28c539[_0x51a8('0x62')](new Extension(_0xdafa01,0x2,'Set',_0x51a8('0x63')+_0xf05c1a[_0x51a8('0x2e')]));if(_0xf05c1a[_0x51a8('0x64')]){_0x28c539['push'](new Extension(_0xdafa01,0x3,'Set','PREFIX-CALLERIDALL='+_0xf05c1a[_0x51a8('0x64')]));}else{_0x28c539[_0x51a8('0x62')](new Extension(_0xdafa01,0x3,_0x51a8('0x65'),_0x51a8('0x66')));}_0x28c539[_0x51a8('0x62')](new Extension(_0xdafa01,0x4,_0x51a8('0x67'),_0x2d8b9b[_0x51a8('0x68')]+','+_0x51a8('0x69')+(0x8+_0xf05c1a[_0x51a8('0x2e')][_0x51a8('0x3b')])+'}'+','+0x1));return _0x28c539;}function formatPrefixName(_0x45aabc){var _0x3ba418='_';for(var _0x934ea9=0x0;_0x934ea9<_0x45aabc['length'];_0x934ea9++){if(_0x45aabc[_0x51a8('0x6a')](_0x934ea9)=='-'){_0x3ba418+=_0x45aabc[_0x51a8('0x6a')](_0x934ea9);}else{_0x3ba418+='['+_0x45aabc['charAt'](_0x934ea9)+']';}}_0x3ba418+='.';return _0x3ba418;}exports[_0x51a8('0x25')]=function(_0x5140b8,_0x4ac62e,_0x59c80f){var _0x2b4313=_0x5140b8[_0x51a8('0x4e')];_0x2b4313[_0x51a8('0x5c')]=_0x51a8('0x6b')+_0x2b4313[_0x51a8('0x2e')]+'-';return db[_0x51a8('0x4c')][_0x51a8('0x4d')](function(_0x5a37c1){return db['VoicePrefix']['update'](_0x2b4313,{'where':{'id':_0x2b4313['id']},'transaction':_0x5a37c1})[_0x51a8('0x26')](function(){return db[_0x51a8('0x5f')][_0x51a8('0x27')]({'where':{'VoicePrefixId':_0x2b4313['id']},'transaction':_0x5a37c1})[_0x51a8('0x26')](function(){return db[_0x51a8('0x5f')][_0x51a8('0x4f')]({'where':{'id':_0x2b4313['VoiceExtensionId']},'raw':!![]})[_0x51a8('0x26')](function(_0x481030){return createVoicePrefixExtensions(_0x2b4313,_0x481030,_0x5a37c1);});});});})[_0x51a8('0x26')](function(){return db[_0x51a8('0x31')][_0x51a8('0x6c')](_0x2b4313['id']);})[_0x51a8('0x26')](respondWithResult(_0x4ac62e,null))[_0x51a8('0x48')](handleError(_0x4ac62e,null));};exports[_0x51a8('0x6d')]=function(_0x895b42,_0xc751c3,_0x3540cd){return db[_0x51a8('0x31')][_0x51a8('0x4f')]({'where':{'id':_0x895b42['params']['id']}})['then'](handleEntityNotFound(_0xc751c3,null))[_0x51a8('0x26')](function(_0xf0c644){if(_0xf0c644){return _0xf0c644[_0x51a8('0x6d')](_0x895b42[_0x51a8('0x4e')]['ids'],_[_0x51a8('0x6e')](_0x895b42['body'],[_0x51a8('0x6f'),'id'])||{})[_0x51a8('0x70')](function(_0xbee86f){for(var _0x24fcc3=0x0;_0x24fcc3<_0x895b42[_0x51a8('0x4e')][_0x51a8('0x6f')][_0x51a8('0x3b')];_0x24fcc3+=0x1){socket[_0x51a8('0x71')](_0x51a8('0x72'),{'UserId':Number(_0x895b42['body'][_0x51a8('0x6f')][_0x24fcc3]),'VoicePrefixId':Number(_0x895b42[_0x51a8('0x49')]['id'])});}return _0xbee86f;});}})[_0x51a8('0x26')](respondWithResult(_0xc751c3,null))[_0x51a8('0x48')](handleError(_0xc751c3,null));};exports['removeAgents']=function(_0x529062,_0x1c1d2f,_0x4b517d){return db['VoicePrefix']['find']({'where':{'id':_0x529062[_0x51a8('0x49')]['id']}})['then'](handleEntityNotFound(_0x1c1d2f,null))['then'](function(_0x1325ca){if(_0x1325ca){return _0x1325ca[_0x51a8('0x73')](_0x529062[_0x51a8('0x36')]['ids'])[_0x51a8('0x26')](function(){if(_[_0x51a8('0x74')](_0x529062[_0x51a8('0x36')]['ids'])){for(var _0x3ac9c8=0x0;_0x3ac9c8<_0x529062[_0x51a8('0x36')][_0x51a8('0x6f')][_0x51a8('0x3b')];_0x3ac9c8+=0x1){socket[_0x51a8('0x71')](_0x51a8('0x75'),{'UserId':Number(_0x529062[_0x51a8('0x36')][_0x51a8('0x6f')][_0x3ac9c8]),'VoicePrefixId':Number(_0x529062[_0x51a8('0x49')]['id'])});}}else{socket['emit'](_0x51a8('0x75'),{'UserId':Number(_0x529062[_0x51a8('0x36')]['ids']),'VoicePrefixId':Number(_0x529062[_0x51a8('0x49')]['id'])});}});}})[_0x51a8('0x26')](respondWithStatusCode(_0x1c1d2f,null))['catch'](handleError(_0x1c1d2f,null));};exports[_0x51a8('0x76')]=function(_0x132ce5,_0x3fbdf1,_0x17fd0a){var _0x398fb2={};var _0x53cca9={};var _0x160861;var _0x1e7f04;return db[_0x51a8('0x31')][_0x51a8('0x77')]({'where':{'id':_0x132ce5['params']['id']}})[_0x51a8('0x26')](handleEntityNotFound(_0x3fbdf1,null))[_0x51a8('0x26')](function(_0x2a10ac){if(_0x2a10ac){_0x160861=_0x2a10ac;_0x53cca9[_0x51a8('0x34')]=_[_0x51a8('0x35')](db[_0x51a8('0x78')][_0x51a8('0x32')]);_0x53cca9[_0x51a8('0x36')]=_['keys'](_0x132ce5[_0x51a8('0x36')]);_0x53cca9[_0x51a8('0x37')]=_['intersection'](_0x53cca9[_0x51a8('0x34')],_0x53cca9[_0x51a8('0x36')]);_0x398fb2['attributes']=_[_0x51a8('0x38')](_0x53cca9['model'],qs['fields'](_0x132ce5[_0x51a8('0x36')][_0x51a8('0x39')]));_0x398fb2[_0x51a8('0x3a')]=_0x398fb2['attributes']['length']?_0x398fb2[_0x51a8('0x3a')]:_0x53cca9['model'];_0x398fb2[_0x51a8('0x79')]=qs[_0x51a8('0x3d')](_0x132ce5[_0x51a8('0x36')][_0x51a8('0x3d')]);_0x398fb2[_0x51a8('0x3e')]=qs[_0x51a8('0x37')](_[_0x51a8('0x3f')](_0x132ce5[_0x51a8('0x36')],_0x53cca9[_0x51a8('0x37')]));if(_0x132ce5[_0x51a8('0x36')][_0x51a8('0x40')]){_0x398fb2[_0x51a8('0x3e')]=_[_0x51a8('0x41')](_0x398fb2[_0x51a8('0x3e')],{'$or':_[_0x51a8('0x30')](_0x398fb2['attributes'],function(_0x48f746){var _0x31e7e3={};_0x31e7e3[_0x48f746]={'$like':'%'+_0x132ce5['query']['filter']+'%'};return _0x31e7e3;})});}_0x398fb2=_['merge']({},_0x398fb2,_0x132ce5[_0x51a8('0x43')]);return _0x160861[_0x51a8('0x76')](_0x398fb2);}})[_0x51a8('0x26')](function(_0x125a28){if(_0x125a28){_0x1e7f04=_0x125a28['length'];if(!_0x132ce5[_0x51a8('0x36')][_0x51a8('0x3c')]('nolimit')){_0x398fb2[_0x51a8('0x22')]=qs[_0x51a8('0x22')](_0x132ce5['query']['limit']);_0x398fb2[_0x51a8('0x20')]=qs[_0x51a8('0x20')](_0x132ce5[_0x51a8('0x36')][_0x51a8('0x20')]);}return _0x160861[_0x51a8('0x76')](_0x398fb2);}})[_0x51a8('0x26')](function(_0x4e566a){if(_0x4e566a){return _0x4e566a?{'count':_0x1e7f04,'rows':_0x4e566a}:null;}})[_0x51a8('0x26')](respondWithResult(_0x3fbdf1,null))[_0x51a8('0x48')](handleError(_0x3fbdf1,null));};exports[_0x51a8('0x7a')]=function(_0x566d62,_0x315802,_0x3f4649){var _0x1db1e0={};var _0x58a83c={};var _0x149fa4;var _0x1821a8;return db['VoicePrefix'][_0x51a8('0x77')]({'where':{'id':_0x566d62['params']['id']}})[_0x51a8('0x26')](handleEntityNotFound(_0x315802,null))[_0x51a8('0x26')](function(_0xfb059){if(_0xfb059){_0x149fa4=_0xfb059;_0x58a83c[_0x51a8('0x34')]=_[_0x51a8('0x35')](db[_0x51a8('0x7b')][_0x51a8('0x32')]);_0x58a83c[_0x51a8('0x36')]=_['keys'](_0x566d62[_0x51a8('0x36')]);_0x58a83c[_0x51a8('0x37')]=_[_0x51a8('0x38')](_0x58a83c[_0x51a8('0x34')],_0x58a83c[_0x51a8('0x36')]);_0x1db1e0['attributes']=_['intersection'](_0x58a83c[_0x51a8('0x34')],qs[_0x51a8('0x39')](_0x566d62[_0x51a8('0x36')][_0x51a8('0x39')]));_0x1db1e0[_0x51a8('0x3a')]=_0x1db1e0['attributes'][_0x51a8('0x3b')]?_0x1db1e0['attributes']:_0x58a83c[_0x51a8('0x34')];_0x1db1e0[_0x51a8('0x79')]=qs['sort'](_0x566d62[_0x51a8('0x36')]['sort']);_0x1db1e0[_0x51a8('0x3e')]=qs[_0x51a8('0x37')](_[_0x51a8('0x3f')](_0x566d62[_0x51a8('0x36')],_0x58a83c[_0x51a8('0x37')]));if(_0x566d62['query'][_0x51a8('0x40')]){_0x1db1e0[_0x51a8('0x3e')]=_['merge'](_0x1db1e0[_0x51a8('0x3e')],{'$or':_[_0x51a8('0x30')](_0x1db1e0['attributes'],function(_0x49b0d2){var _0x24b2a9={};_0x24b2a9[_0x49b0d2]={'$like':'%'+_0x566d62[_0x51a8('0x36')][_0x51a8('0x40')]+'%'};return _0x24b2a9;})});}_0x1db1e0=_['merge']({},_0x1db1e0,_0x566d62[_0x51a8('0x43')]);return _0x149fa4[_0x51a8('0x7a')](_0x1db1e0);}})[_0x51a8('0x26')](function(_0x11aab9){if(_0x11aab9){_0x1821a8=_0x11aab9[_0x51a8('0x3b')];if(!_0x566d62[_0x51a8('0x36')][_0x51a8('0x3c')]('nolimit')){_0x1db1e0[_0x51a8('0x22')]=qs[_0x51a8('0x22')](_0x566d62[_0x51a8('0x36')][_0x51a8('0x22')]);_0x1db1e0['offset']=qs['offset'](_0x566d62[_0x51a8('0x36')][_0x51a8('0x20')]);}return _0x149fa4['getTeams'](_0x1db1e0);}})['then'](function(_0x5b44ba){if(_0x5b44ba){return _0x5b44ba?{'count':_0x1821a8,'rows':_0x5b44ba}:null;}})[_0x51a8('0x26')](respondWithResult(_0x315802,null))['catch'](handleError(_0x315802,null));};exports['addTeams']=function(_0x517de1,_0x2164d7,_0x4b03f7){var _0x2cea3f=_0x517de1[_0x51a8('0x4e')]['ids'];var _0x5ab3c0;return db[_0x51a8('0x7b')]['findAll']({'where':{'id':_0x2cea3f},'attributes':['id'],'include':[{'model':db[_0x51a8('0x78')],'as':_0x51a8('0x7c'),'attributes':['id','name',_0x51a8('0x7d'),_0x51a8('0x7e'),'interface'],'raw':!![]}]})[_0x51a8('0x26')](function(_0x3bcc82){if(_0x3bcc82){_0x5ab3c0=_0x3bcc82;var _0x223bd7=_['flatMap'](_0x3bcc82,function(_0x2af315){var _0x2db8da=_0x2af315[_0x51a8('0x28')]({'plain':!![]});return _0x2db8da['Agents'];});return db['VoicePrefix'][_0x51a8('0x4f')]({'where':{'id':_0x517de1[_0x51a8('0x49')]['id']}})[_0x51a8('0x26')](function(_0xabdbd0){return db[_0x51a8('0x4c')][_0x51a8('0x4d')](function(_0x35cd5d){return _0xabdbd0[_0x51a8('0x7f')](_0x2cea3f,{'transaction':_0x35cd5d})[_0x51a8('0x26')](function(){return BPromise[_0x51a8('0x80')](_0x5ab3c0,function(_0x2a8aa1){return db[_0x51a8('0x81')][_0x51a8('0x82')]({'TeamId':_0x2a8aa1['id'],'VoicePrefixId':_0x517de1['params']['id']},{'transaction':_0x35cd5d});});})['then'](function(){return BPromise[_0x51a8('0x80')](_0x223bd7,function(_0x318478){return db[_0x51a8('0x83')][_0x51a8('0x84')]({'where':{'UserId':_0x318478['id'],'VoicePrefixId':_0x517de1[_0x51a8('0x49')]['id']},'transaction':_0x35cd5d});});})['then'](function(){_0x223bd7['forEach'](function(_0x39e8e6){socket[_0x51a8('0x71')]('userVoicePrefix:save',{'UserId':_0x39e8e6['id'],'VoicePrefixId':_0xabdbd0['id']});});});});});}})[_0x51a8('0x26')](respondWithStatusCode(_0x2164d7,null))[_0x51a8('0x48')](handleError(_0x2164d7,null));};exports[_0x51a8('0x85')]=function(_0x19ffd8,_0x121944,_0x4ee800){return db['Team'][_0x51a8('0x46')]({'where':{'id':_0x19ffd8['query'][_0x51a8('0x6f')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x51a8('0x7c'),'attributes':['id'],'raw':!![]}]})[_0x51a8('0x26')](handleEntityNotFound(_0x121944,null))['then'](function(_0x2dc65c){var _0x1837cb=_[_0x51a8('0x30')](_0x2dc65c,'id');var _0x11bee7=[];var _0x5cacc1=[];var _0x57b718=squel[_0x51a8('0x86')]();_0x57b718[_0x51a8('0x87')](_0x51a8('0x88'))[_0x51a8('0x89')]('team_has_voice_prefixes','tq')[_0x51a8('0x8a')]('user_has_teams','ut',_0x51a8('0x8b'))['where'](_0x51a8('0x8c'),_0x19ffd8[_0x51a8('0x49')]['id']);for(var _0x1ae73c=0x0;_0x1ae73c<_0x2dc65c[_0x51a8('0x3b')];_0x1ae73c+=0x1){let _0x5e923f=_0x2dc65c[_0x1ae73c];for(var _0x432e6a=0x0;_0x432e6a<_0x5e923f['Agents'][_0x51a8('0x3b')];_0x432e6a+=0x1){let _0x1e99d0=_0x5e923f[_0x51a8('0x7c')][_0x432e6a];var _0x5e22f4=_0x57b718[_0x51a8('0x8d')]();_0x5e22f4[_0x51a8('0x3e')](_0x51a8('0x8e'),_0x1e99d0['id']);_0x5cacc1['push'](db['sequelize'][_0x51a8('0x36')](_0x5e22f4[_0x51a8('0x8f')](),{'type':db[_0x51a8('0x4c')][_0x51a8('0x90')]['SELECT']})['then'](function(_0x46c310){if(_0x46c310['length']===0x1){return _0x1e99d0['id'];}else{var _0x1b9cd4=_[_0x51a8('0x91')](_[_0x51a8('0x30')](_0x46c310,_0x51a8('0x92')),function(_0x399fa0){return _[_0x51a8('0x93')](_0x1837cb,_0x399fa0);});if(_0x1b9cd4){return _0x1e99d0['id'];}}}));}}return BPromise[_0x51a8('0x94')](_0x5cacc1)['then'](function(_0x593711){_0x11bee7=_(_0x11bee7)['union'](_0x593711)[_0x51a8('0x95')]()[_0x51a8('0x96')]();return db[_0x51a8('0x31')][_0x51a8('0x4f')]({'where':{'id':_0x19ffd8[_0x51a8('0x49')]['id']}})['then'](function(_0x193d27){return db['sequelize'][_0x51a8('0x4d')](function(_0x188991){return _0x193d27[_0x51a8('0x85')](_0x19ffd8[_0x51a8('0x36')]['ids'],{'transaction':_0x188991})['then'](function(){if(!_[_0x51a8('0x97')](_0x11bee7)){return _0x193d27['removeAgents'](_0x11bee7,{'transaction':_0x188991});}})[_0x51a8('0x26')](function(){_0x11bee7[_0x51a8('0x98')](function(_0x292f74){socket[_0x51a8('0x71')]('userVoicePrefix:remove',{'UserId':_0x292f74,'VoicePrefixId':_0x193d27['id']});});});});});});})[_0x51a8('0x26')](respondWithStatusCode(_0x121944,null))[_0x51a8('0x48')](handleError(_0x121944,null));};