Built motion from commit (unavailable).|2.5.13
[motion2.git] / server / api / voiceExtension / voiceExtension.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 _0xc531=['where','VIRTUAL','merge','options','VoiceExtension','includeAll','include','findAll','rows','catch','show','create','body','exten','concat','user','get','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','pick','description','recordingFormat','cutdigits','mandatoryDisposition','context','addApplications','findOne','transaction','VoiceExtensionId','bulkCreate','cast(priority\x20as\x20unsigned)','html-pdf','rimraf','zip-dir','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./voiceExtension.socket','status','end','json','count','offset','limit','set','Content-Range','apply','update','then','InboundRoutes','inbound','OutboundRoutes','outbound','internal','filter','map','value','type','find','name','UserProfileResource','destroy','error','stack','send','index','rawAttributes','fieldName','key','model','keys','filters','intersection','attributes','query','fields','length','hasOwnProperty','nolimit','sort'];(function(_0x5c2c7c,_0xa7d3b1){var _0xea7ffe=function(_0x471f17){while(--_0x471f17){_0x5c2c7c['push'](_0x5c2c7c['shift']());}};_0xea7ffe(++_0xa7d3b1);}(_0xc531,0x1c5));var _0x1c53=function(_0x418aea,_0x2a7077){_0x418aea=_0x418aea-0x0;var _0x5da23e=_0xc531[_0x418aea];return _0x5da23e;};'use strict';var pdf=require(_0x1c53('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1c53('0x1'));var zipdir=require(_0x1c53('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1c53('0x3'));var BPromise=require(_0x1c53('0x4'));var Mustache=require(_0x1c53('0x5'));var util=require('util');var path=require(_0x1c53('0x6'));var sox=require(_0x1c53('0x7'));var csv=require('to-csv');var ejs=require(_0x1c53('0x8'));var fs=require('fs');var _=require(_0x1c53('0x9'));var squel=require(_0x1c53('0xa'));var crypto=require(_0x1c53('0xb'));var jsforce=require(_0x1c53('0xc'));var deskjs=require(_0x1c53('0xd'));var toCsv=require(_0x1c53('0xe'));var querystring=require(_0x1c53('0xf'));var Papa=require(_0x1c53('0x10'));var Redis=require(_0x1c53('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1c53('0x12'));var hardwareService=require(_0x1c53('0x13'));var logger=require(_0x1c53('0x14'))(_0x1c53('0x15'));var utils=require('../../config/utils');var config=require(_0x1c53('0x16'));var licenseUtil=require(_0x1c53('0x17'));var db=require(_0x1c53('0x18'))['db'];config['redis']=_[_0x1c53('0x19')](config['redis'],{'host':_0x1c53('0x1a'),'port':0x18eb});var socket=require(_0x1c53('0x1b'))(new Redis(config[_0x1c53('0x1c')]));require(_0x1c53('0x1d'))['register'](socket);function respondWithStatusCode(_0x4ca44c,_0x31c530){_0x31c530=_0x31c530||0xcc;return function(_0x4197ae){if(_0x4197ae){return _0x4ca44c['sendStatus'](_0x31c530);}return _0x4ca44c[_0x1c53('0x1e')](_0x31c530)[_0x1c53('0x1f')]();};}function respondWithResult(_0x3c2588,_0x402d07){_0x402d07=_0x402d07||0xc8;return function(_0x16d724){if(_0x16d724){return _0x3c2588[_0x1c53('0x1e')](_0x402d07)[_0x1c53('0x20')](_0x16d724);}};}function respondWithFilteredResult(_0x113c39,_0x16ea42){return function(_0x32061d){if(_0x32061d){var _0x16a332=_0x32061d[_0x1c53('0x21')],_0x125b31=_0x16ea42[_0x1c53('0x22')],_0x57e199=_0x16ea42['offset']+_0x16ea42[_0x1c53('0x23')],_0x3ee377;if(_0x57e199>=_0x16a332){_0x57e199=_0x16a332;_0x3ee377=0xc8;}else{_0x3ee377=0xce;}_0x113c39[_0x1c53('0x1e')](_0x3ee377);return _0x113c39[_0x1c53('0x24')](_0x1c53('0x25'),_0x125b31+'-'+_0x57e199+'/'+_0x16a332)[_0x1c53('0x20')](_0x32061d);}return null;};}function patchUpdates(_0x12b22a){return function(_0x481034){try{jsonpatch[_0x1c53('0x26')](_0x481034,_0x12b22a,!![]);}catch(_0x395430){return BPromise['reject'](_0x395430);}return _0x481034['save']();};}function saveUpdates(_0x15ae3f,_0xfb6de7){return function(_0x4e8439){if(_0x4e8439){return _0x4e8439[_0x1c53('0x27')](_0x15ae3f)[_0x1c53('0x28')](function(_0x29c0d6){return _0x29c0d6;});}return null;};}function removeEntity(_0x446bf8,_0x26f90e){return function(_0x2d25df){if(_0x2d25df){return _0x2d25df['destroy']()['then'](function(){var _0x1b898e=_0x2d25df['get']({'plain':!![]});var _0x3d8512=[{'name':_0x1c53('0x29'),'value':_0x1c53('0x2a'),'ignore':![]},{'name':_0x1c53('0x2b'),'value':_0x1c53('0x2c'),'ignore':![]},{'name':'InternalRoutes','value':_0x1c53('0x2d'),'ignore':![]}];var _0x18eb0c=_(_0x3d8512)[_0x1c53('0x2e')]('ignore')[_0x1c53('0x2f')](_0x1c53('0x30'))[_0x1c53('0x30')]();if(_['includes'](_0x18eb0c,_0x1b898e[_0x1c53('0x31')])){return;}var _0x2fbf03=_[_0x1c53('0x32')](_0x3d8512,[_0x1c53('0x30'),_0x1b898e[_0x1c53('0x31')]])[_0x1c53('0x33')];return db[_0x1c53('0x34')][_0x1c53('0x35')]({'where':{'type':_0x2fbf03,'resourceId':_0x1b898e['id']}})[_0x1c53('0x28')](function(){return _0x2d25df;});})['then'](function(){_0x446bf8[_0x1c53('0x1e')](0xcc)[_0x1c53('0x1f')]();});}};}function handleEntityNotFound(_0x23a938,_0x54895b){return function(_0x45136e){if(!_0x45136e){_0x23a938['sendStatus'](0x194);}return _0x45136e;};}function handleError(_0x4e2d4e,_0x3ff7e5){_0x3ff7e5=_0x3ff7e5||0x1f4;return function(_0x3a1662){logger[_0x1c53('0x36')](_0x3a1662[_0x1c53('0x37')]);if(_0x3a1662['name']){delete _0x3a1662[_0x1c53('0x33')];}_0x4e2d4e['status'](_0x3ff7e5)[_0x1c53('0x38')](_0x3a1662);};}exports[_0x1c53('0x39')]=function(_0x1aa858,_0x20484e){var _0x467393={},_0x14a513={},_0x248b28={'count':0x0,'rows':[]};var _0x4fe301=_['map'](db['VoiceExtension'][_0x1c53('0x3a')],function(_0x10a45b){return{'name':_0x10a45b[_0x1c53('0x3b')],'type':_0x10a45b[_0x1c53('0x31')][_0x1c53('0x3c')]};});_0x14a513[_0x1c53('0x3d')]=_[_0x1c53('0x2f')](_0x4fe301,_0x1c53('0x33'));_0x14a513['query']=_[_0x1c53('0x3e')](_0x1aa858['query']);_0x14a513[_0x1c53('0x3f')]=_[_0x1c53('0x40')](_0x14a513[_0x1c53('0x3d')],_0x14a513['query']);_0x467393[_0x1c53('0x41')]=_[_0x1c53('0x40')](_0x14a513[_0x1c53('0x3d')],qs['fields'](_0x1aa858[_0x1c53('0x42')][_0x1c53('0x43')]));_0x467393[_0x1c53('0x41')]=_0x467393['attributes'][_0x1c53('0x44')]?_0x467393['attributes']:_0x14a513[_0x1c53('0x3d')];if(!_0x1aa858[_0x1c53('0x42')][_0x1c53('0x45')](_0x1c53('0x46'))){_0x467393[_0x1c53('0x23')]=qs[_0x1c53('0x23')](_0x1aa858[_0x1c53('0x42')][_0x1c53('0x23')]);_0x467393[_0x1c53('0x22')]=qs[_0x1c53('0x22')](_0x1aa858[_0x1c53('0x42')][_0x1c53('0x22')]);}_0x467393['order']=qs[_0x1c53('0x47')](_0x1aa858[_0x1c53('0x42')]['sort']);_0x467393[_0x1c53('0x48')]=qs['filters'](_['pick'](_0x1aa858['query'],_0x14a513['filters']),_0x4fe301);if(_0x1aa858[_0x1c53('0x42')]['filter']){_0x467393[_0x1c53('0x48')]=_['merge'](_0x467393[_0x1c53('0x48')],{'$or':_[_0x1c53('0x2f')](_0x4fe301,function(_0x9b4c06){if(_0x9b4c06[_0x1c53('0x31')]!==_0x1c53('0x49')){var _0x4eab26={};_0x4eab26[_0x9b4c06[_0x1c53('0x33')]]={'$like':'%'+_0x1aa858[_0x1c53('0x42')][_0x1c53('0x2e')]+'%'};return _0x4eab26;}})});}_0x467393=_[_0x1c53('0x4a')]({},_0x467393,_0x1aa858[_0x1c53('0x4b')]);var _0x29b84f={'where':_0x467393['where']};return db[_0x1c53('0x4c')][_0x1c53('0x21')](_0x29b84f)[_0x1c53('0x28')](function(_0x34693e){_0x248b28[_0x1c53('0x21')]=_0x34693e;if(_0x1aa858[_0x1c53('0x42')][_0x1c53('0x4d')]){_0x467393[_0x1c53('0x4e')]=[{'all':!![]}];}return db[_0x1c53('0x4c')][_0x1c53('0x4f')](_0x467393);})['then'](function(_0x45b430){_0x248b28[_0x1c53('0x50')]=_0x45b430;return _0x248b28;})[_0x1c53('0x28')](respondWithFilteredResult(_0x20484e,_0x467393))[_0x1c53('0x51')](handleError(_0x20484e,null));};exports[_0x1c53('0x52')]=function(_0x1390b6,_0x2982c5){var _0x5b73e5={'raw':![],'where':{'id':_0x1390b6['params']['id']}},_0x5957c0={};_0x5957c0[_0x1c53('0x3d')]=_[_0x1c53('0x3e')](db[_0x1c53('0x4c')][_0x1c53('0x3a')]);_0x5957c0[_0x1c53('0x42')]=_['keys'](_0x1390b6['query']);_0x5957c0[_0x1c53('0x3f')]=_[_0x1c53('0x40')](_0x5957c0['model'],_0x5957c0['query']);_0x5b73e5[_0x1c53('0x41')]=_[_0x1c53('0x40')](_0x5957c0[_0x1c53('0x3d')],qs['fields'](_0x1390b6['query'][_0x1c53('0x43')]));_0x5b73e5['attributes']=_0x5b73e5[_0x1c53('0x41')][_0x1c53('0x44')]?_0x5b73e5[_0x1c53('0x41')]:_0x5957c0[_0x1c53('0x3d')];if(_0x1390b6[_0x1c53('0x42')]['includeAll']){_0x5b73e5['include']=[{'all':!![]}];}_0x5b73e5=_[_0x1c53('0x4a')]({},_0x5b73e5,_0x1390b6[_0x1c53('0x4b')]);return db[_0x1c53('0x4c')]['find'](_0x5b73e5)[_0x1c53('0x28')](handleEntityNotFound(_0x2982c5,null))[_0x1c53('0x28')](respondWithResult(_0x2982c5,null))['catch'](handleError(_0x2982c5,null));};exports['destroy']=function(_0x49dc2f,_0x1c6350){return db[_0x1c53('0x4c')][_0x1c53('0x32')]({'where':{'id':_0x49dc2f['params']['id']}})[_0x1c53('0x28')](handleEntityNotFound(_0x1c6350,null))['then'](removeEntity(_0x1c6350,null))[_0x1c53('0x51')](handleError(_0x1c6350,null));};exports[_0x1c53('0x53')]=function(_0x3f69b5,_0x276542){if(_0x3f69b5[_0x1c53('0x54')][_0x1c53('0x31')]===_0x1c53('0x2c')&&!_['startsWith'](_0x3f69b5['body'][_0x1c53('0x55')],'_')){_0x3f69b5[_0x1c53('0x54')][_0x1c53('0x55')]='_'[_0x1c53('0x56')](_0x3f69b5['body'][_0x1c53('0x55')]);}return db[_0x1c53('0x4c')][_0x1c53('0x53')](_0x3f69b5['body'],{'raw':![]})[_0x1c53('0x28')](function(_0x2ad204){var _0x800a2d=_0x3f69b5[_0x1c53('0x57')][_0x1c53('0x58')]({'plain':!![]});if(!_0x800a2d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x800a2d[_0x1c53('0x59')]===_0x1c53('0x57')){var _0x52e78b=_0x2ad204[_0x1c53('0x58')]({'plain':!![]});var _0x3e8874=[{'name':_0x1c53('0x29'),'value':_0x1c53('0x2a')},{'name':_0x1c53('0x2b'),'value':'outbound'},{'name':'InternalRoutes','value':_0x1c53('0x2d')}];var _0x4dca4d=_['find'](_0x3e8874,[_0x1c53('0x30'),_0x52e78b['type']])[_0x1c53('0x33')];return db[_0x1c53('0x5a')][_0x1c53('0x32')]({'where':{'name':_0x4dca4d,'userProfileId':_0x800a2d['userProfileId']},'raw':!![]})['then'](function(_0x1ace2b){if(_0x1ace2b&&_0x1ace2b['autoAssociation']===0x0){return db[_0x1c53('0x34')]['create']({'name':_0x52e78b[_0x1c53('0x33')],'resourceId':_0x52e78b['id'],'type':_0x1ace2b['name'],'sectionId':_0x1ace2b['id']},{})[_0x1c53('0x28')](function(){return _0x2ad204;});}else{return _0x2ad204;}})[_0x1c53('0x51')](function(_0x4dc699){logger['error'](_0x1c53('0x5b'),_0x4dc699);throw _0x4dc699;});}return _0x2ad204;})[_0x1c53('0x28')](respondWithResult(_0x276542,0xc9))[_0x1c53('0x51')](handleError(_0x276542,null));};exports[_0x1c53('0x27')]=function(_0xb3da0c,_0x5a1243){if(_0xb3da0c[_0x1c53('0x54')]['id']){delete _0xb3da0c['body']['id'];}return db[_0x1c53('0x4c')][_0x1c53('0x32')]({'where':{'id':_0xb3da0c[_0x1c53('0x5c')]['id']}})[_0x1c53('0x28')](handleEntityNotFound(_0x5a1243,null))['then'](function(_0xfcb2d4){if(_0xfcb2d4){return db['VoiceExtension'][_0x1c53('0x27')](_[_0x1c53('0x5d')](_0xb3da0c[_0x1c53('0x54')],[_0x1c53('0x55'),'context',_0x1c53('0x5e'),_0x1c53('0x5f'),_0x1c53('0x60'),_0x1c53('0x61')]),{'where':{'context':_0xfcb2d4[_0x1c53('0x62')],'exten':_0xfcb2d4[_0x1c53('0x55')]},'individualHooks':!![]})['then'](function(_0x1cb6f5){return _0x1cb6f5;});}return null;})[_0x1c53('0x28')](respondWithStatusCode(_0x5a1243,null))[_0x1c53('0x51')](handleError(_0x5a1243,null));};exports[_0x1c53('0x63')]=function(_0x1f7bca,_0x4b8eb4,_0x447370){return db[_0x1c53('0x4c')][_0x1c53('0x64')]({'where':{'id':_0x1f7bca['params']['id']}})[_0x1c53('0x28')](handleEntityNotFound(_0x4b8eb4,null))[_0x1c53('0x28')](function(_0xe6fa8b){if(_0xe6fa8b){return db['sequelize'][_0x1c53('0x65')](function(_0x4a2025){return db[_0x1c53('0x4c')][_0x1c53('0x35')]({'where':{'VoiceExtensionId':_0x1f7bca['params']['id']},'transaction':_0x4a2025})['then'](function(_0x2ff78f){var _0x254aa4=_['map'](_0x1f7bca[_0x1c53('0x54')],function(_0x1dbc72){_0x1dbc72[_0x1c53('0x66')]=_0x1f7bca['params']['id'];return _0x1dbc72;});return db[_0x1c53('0x4c')][_0x1c53('0x67')](_0x254aa4,{'transaction':_0x4a2025});});})[_0x1c53('0x28')](function(){return db[_0x1c53('0x4c')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x1f7bca['params']['id']},'order':_0x1c53('0x68')});});}})[_0x1c53('0x28')](respondWithResult(_0x4b8eb4,null))[_0x1c53('0x51')](handleError(_0x4b8eb4,null));};