Built motion from commit (unavailable).|2.4.18
[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 _0xec50=['options','VoiceExtension','count','includeAll','findAll','show','params','include','body','exten','concat','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','update','pick','context','recordingFormat','cutdigits','findOne','sequelize','transaction','VoiceExtensionId','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','util','sox','ejs','squel','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','set','reject','save','then','destroy','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','map','value','includes','type','find','name','UserProfileResource','error','stack','index','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','where','VIRTUAL','merge'];(function(_0x41905f,_0x554c33){var _0x10226f=function(_0x1b33d2){while(--_0x1b33d2){_0x41905f['push'](_0x41905f['shift']());}};_0x10226f(++_0x554c33);}(_0xec50,0x88));var _0x0ec5=function(_0x280734,_0x56feee){_0x280734=_0x280734-0x0;var _0x22f4e1=_0xec50[_0x280734];return _0x22f4e1;};'use strict';var pdf=require(_0x0ec5('0x0'));var emlformat=require(_0x0ec5('0x1'));var rimraf=require(_0x0ec5('0x2'));var zipdir=require(_0x0ec5('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0ec5('0x4'));var moment=require('moment');var BPromise=require(_0x0ec5('0x5'));var Mustache=require('mustache');var util=require(_0x0ec5('0x6'));var path=require('path');var sox=require(_0x0ec5('0x7'));var csv=require('to-csv');var ejs=require(_0x0ec5('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x0ec5('0x9'));var crypto=require(_0x0ec5('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0ec5('0xb'));var querystring=require(_0x0ec5('0xc'));var Papa=require(_0x0ec5('0xd'));var Redis=require(_0x0ec5('0xe'));var authService=require(_0x0ec5('0xf'));var qs=require(_0x0ec5('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0ec5('0x11'));var logger=require(_0x0ec5('0x12'))(_0x0ec5('0x13'));var utils=require(_0x0ec5('0x14'));var config=require(_0x0ec5('0x15'));var db=require(_0x0ec5('0x16'))['db'];config[_0x0ec5('0x17')]=_[_0x0ec5('0x18')](config[_0x0ec5('0x17')],{'host':_0x0ec5('0x19'),'port':0x18eb});var socket=require(_0x0ec5('0x1a'))(new Redis(config[_0x0ec5('0x17')]));require(_0x0ec5('0x1b'))[_0x0ec5('0x1c')](socket);function respondWithStatusCode(_0xa0b332,_0x116c59){_0x116c59=_0x116c59||0xcc;return function(_0x2f2626){if(_0x2f2626){return _0xa0b332[_0x0ec5('0x1d')](_0x116c59);}return _0xa0b332[_0x0ec5('0x1e')](_0x116c59)[_0x0ec5('0x1f')]();};}function respondWithResult(_0x11e1db,_0x5dc6bf){_0x5dc6bf=_0x5dc6bf||0xc8;return function(_0x4ecc30){if(_0x4ecc30){return _0x11e1db[_0x0ec5('0x1e')](_0x5dc6bf)[_0x0ec5('0x20')](_0x4ecc30);}};}function respondWithFilteredResult(_0x5480da,_0x100c45){return function(_0xa826c9){if(_0xa826c9){var _0x396edc=_0xa826c9['count'],_0x437d28=_0x100c45['offset'],_0x2280db=_0x100c45[_0x0ec5('0x21')]+_0x100c45['limit'],_0x3c25a1;if(_0x2280db>=_0x396edc){_0x2280db=_0x396edc;_0x3c25a1=0xc8;}else{_0x3c25a1=0xce;}_0x5480da[_0x0ec5('0x1e')](_0x3c25a1);return _0x5480da[_0x0ec5('0x22')]('Content-Range',_0x437d28+'-'+_0x2280db+'/'+_0x396edc)[_0x0ec5('0x20')](_0xa826c9);}return null;};}function patchUpdates(_0x3d909f){return function(_0x54c913){try{jsonpatch['apply'](_0x54c913,_0x3d909f,!![]);}catch(_0x29ca73){return BPromise[_0x0ec5('0x23')](_0x29ca73);}return _0x54c913[_0x0ec5('0x24')]();};}function saveUpdates(_0x58c979,_0x385be2){return function(_0x247b3c){if(_0x247b3c){return _0x247b3c['update'](_0x58c979)[_0x0ec5('0x25')](function(_0x5eedde){return _0x5eedde;});}return null;};}function removeEntity(_0x503aa3,_0x37eb79){return function(_0x423be9){if(_0x423be9){return _0x423be9[_0x0ec5('0x26')]()[_0x0ec5('0x25')](function(){var _0x50c609=_0x423be9['get']({'plain':!![]});var _0x464b83=[{'name':_0x0ec5('0x27'),'value':_0x0ec5('0x28'),'ignore':![]},{'name':_0x0ec5('0x29'),'value':_0x0ec5('0x2a'),'ignore':![]},{'name':_0x0ec5('0x2b'),'value':_0x0ec5('0x2c'),'ignore':![]}];var _0x51eb4d=_(_0x464b83)[_0x0ec5('0x2d')]('ignore')[_0x0ec5('0x2e')](_0x0ec5('0x2f'))[_0x0ec5('0x2f')]();if(_[_0x0ec5('0x30')](_0x51eb4d,_0x50c609[_0x0ec5('0x31')])){return;}var _0x36e05d=_[_0x0ec5('0x32')](_0x464b83,[_0x0ec5('0x2f'),_0x50c609['type']])[_0x0ec5('0x33')];return db[_0x0ec5('0x34')][_0x0ec5('0x26')]({'where':{'type':_0x36e05d,'resourceId':_0x50c609['id']}})[_0x0ec5('0x25')](function(){return _0x423be9;});})['then'](function(){_0x503aa3[_0x0ec5('0x1e')](0xcc)[_0x0ec5('0x1f')]();});}};}function handleEntityNotFound(_0x2e07cd,_0xd12c29){return function(_0x3a32e3){if(!_0x3a32e3){_0x2e07cd[_0x0ec5('0x1d')](0x194);}return _0x3a32e3;};}function handleError(_0x222e8d,_0x135ee2){_0x135ee2=_0x135ee2||0x1f4;return function(_0x498ada){logger[_0x0ec5('0x35')](_0x498ada[_0x0ec5('0x36')]);if(_0x498ada[_0x0ec5('0x33')]){delete _0x498ada[_0x0ec5('0x33')];}_0x222e8d[_0x0ec5('0x1e')](_0x135ee2)['send'](_0x498ada);};}exports[_0x0ec5('0x37')]=function(_0x4c40d1,_0x2f489d){var _0x252575={},_0x3b3e5f={},_0x83f4c5={'count':0x0,'rows':[]};var _0x2af2c0=_[_0x0ec5('0x2e')](db['VoiceExtension'][_0x0ec5('0x38')],function(_0x472048){return{'name':_0x472048[_0x0ec5('0x39')],'type':_0x472048[_0x0ec5('0x31')][_0x0ec5('0x3a')]};});_0x3b3e5f[_0x0ec5('0x3b')]=_[_0x0ec5('0x2e')](_0x2af2c0,_0x0ec5('0x33'));_0x3b3e5f['query']=_[_0x0ec5('0x3c')](_0x4c40d1[_0x0ec5('0x3d')]);_0x3b3e5f[_0x0ec5('0x3e')]=_[_0x0ec5('0x3f')](_0x3b3e5f[_0x0ec5('0x3b')],_0x3b3e5f[_0x0ec5('0x3d')]);_0x252575[_0x0ec5('0x40')]=_[_0x0ec5('0x3f')](_0x3b3e5f[_0x0ec5('0x3b')],qs[_0x0ec5('0x41')](_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x41')]));_0x252575[_0x0ec5('0x40')]=_0x252575[_0x0ec5('0x40')][_0x0ec5('0x42')]?_0x252575[_0x0ec5('0x40')]:_0x3b3e5f[_0x0ec5('0x3b')];if(!_0x4c40d1['query']['hasOwnProperty'](_0x0ec5('0x43'))){_0x252575[_0x0ec5('0x44')]=qs[_0x0ec5('0x44')](_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x44')]);_0x252575[_0x0ec5('0x21')]=qs['offset'](_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x21')]);}_0x252575[_0x0ec5('0x45')]=qs[_0x0ec5('0x46')](_0x4c40d1[_0x0ec5('0x3d')]['sort']);_0x252575[_0x0ec5('0x47')]=qs[_0x0ec5('0x3e')](_['pick'](_0x4c40d1[_0x0ec5('0x3d')],_0x3b3e5f['filters']));if(_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x2d')]){_0x252575[_0x0ec5('0x47')]=_['merge'](_0x252575[_0x0ec5('0x47')],{'$or':_[_0x0ec5('0x2e')](_0x2af2c0,function(_0x224323){if(_0x224323[_0x0ec5('0x31')]!==_0x0ec5('0x48')){var _0x2be526={};_0x2be526[_0x224323[_0x0ec5('0x33')]]={'$like':'%'+_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x2d')]+'%'};return _0x2be526;}})});}_0x252575=_[_0x0ec5('0x49')]({},_0x252575,_0x4c40d1[_0x0ec5('0x4a')]);var _0x240279={'where':_0x252575[_0x0ec5('0x47')]};return db[_0x0ec5('0x4b')][_0x0ec5('0x4c')](_0x240279)[_0x0ec5('0x25')](function(_0xf3eced){_0x83f4c5['count']=_0xf3eced;if(_0x4c40d1[_0x0ec5('0x3d')][_0x0ec5('0x4d')]){_0x252575['include']=[{'all':!![]}];}return db[_0x0ec5('0x4b')][_0x0ec5('0x4e')](_0x252575);})[_0x0ec5('0x25')](function(_0x3d22f5){_0x83f4c5['rows']=_0x3d22f5;return _0x83f4c5;})[_0x0ec5('0x25')](respondWithFilteredResult(_0x2f489d,_0x252575))['catch'](handleError(_0x2f489d,null));};exports[_0x0ec5('0x4f')]=function(_0x41833c,_0x37194e){var _0x13ac4c={'raw':![],'where':{'id':_0x41833c[_0x0ec5('0x50')]['id']}},_0x8e4d04={};_0x8e4d04['model']=_[_0x0ec5('0x3c')](db[_0x0ec5('0x4b')][_0x0ec5('0x38')]);_0x8e4d04['query']=_[_0x0ec5('0x3c')](_0x41833c[_0x0ec5('0x3d')]);_0x8e4d04[_0x0ec5('0x3e')]=_[_0x0ec5('0x3f')](_0x8e4d04[_0x0ec5('0x3b')],_0x8e4d04['query']);_0x13ac4c[_0x0ec5('0x40')]=_['intersection'](_0x8e4d04['model'],qs[_0x0ec5('0x41')](_0x41833c[_0x0ec5('0x3d')][_0x0ec5('0x41')]));_0x13ac4c[_0x0ec5('0x40')]=_0x13ac4c[_0x0ec5('0x40')][_0x0ec5('0x42')]?_0x13ac4c[_0x0ec5('0x40')]:_0x8e4d04[_0x0ec5('0x3b')];if(_0x41833c[_0x0ec5('0x3d')][_0x0ec5('0x4d')]){_0x13ac4c[_0x0ec5('0x51')]=[{'all':!![]}];}_0x13ac4c=_[_0x0ec5('0x49')]({},_0x13ac4c,_0x41833c[_0x0ec5('0x4a')]);return db[_0x0ec5('0x4b')][_0x0ec5('0x32')](_0x13ac4c)[_0x0ec5('0x25')](handleEntityNotFound(_0x37194e,null))[_0x0ec5('0x25')](respondWithResult(_0x37194e,null))['catch'](handleError(_0x37194e,null));};exports['destroy']=function(_0x23deea,_0x145955){return db[_0x0ec5('0x4b')][_0x0ec5('0x32')]({'where':{'id':_0x23deea[_0x0ec5('0x50')]['id']}})[_0x0ec5('0x25')](handleEntityNotFound(_0x145955,null))['then'](removeEntity(_0x145955,null))['catch'](handleError(_0x145955,null));};exports['create']=function(_0x475d95,_0x3c839f){if(_0x475d95[_0x0ec5('0x52')]['type']==='outbound'&&!_['startsWith'](_0x475d95[_0x0ec5('0x52')][_0x0ec5('0x53')],'_')){_0x475d95[_0x0ec5('0x52')]['exten']='_'[_0x0ec5('0x54')](_0x475d95['body']['exten']);}return db[_0x0ec5('0x4b')][_0x0ec5('0x55')](_0x475d95[_0x0ec5('0x52')],{'raw':![]})[_0x0ec5('0x25')](function(_0x1e1c1c){var _0x47669a=_0x475d95[_0x0ec5('0x56')][_0x0ec5('0x57')]({'plain':!![]});if(!_0x47669a)throw new Error(_0x0ec5('0x58'));if(_0x47669a[_0x0ec5('0x59')]==='user'){var _0x19c2f0=_0x1e1c1c[_0x0ec5('0x57')]({'plain':!![]});var _0x36b8a2=[{'name':_0x0ec5('0x27'),'value':_0x0ec5('0x28')},{'name':_0x0ec5('0x29'),'value':_0x0ec5('0x2a')},{'name':'InternalRoutes','value':_0x0ec5('0x2c')}];var _0x2021c8=_['find'](_0x36b8a2,[_0x0ec5('0x2f'),_0x19c2f0['type']])[_0x0ec5('0x33')];return db[_0x0ec5('0x5a')][_0x0ec5('0x32')]({'where':{'name':_0x2021c8,'userProfileId':_0x47669a['userProfileId']},'raw':!![]})[_0x0ec5('0x25')](function(_0x2cdaf9){if(_0x2cdaf9&&_0x2cdaf9[_0x0ec5('0x5b')]===0x0){return db[_0x0ec5('0x34')][_0x0ec5('0x55')]({'name':_0x19c2f0[_0x0ec5('0x33')],'resourceId':_0x19c2f0['id'],'type':_0x2cdaf9['name'],'sectionId':_0x2cdaf9['id']},{})[_0x0ec5('0x25')](function(){return _0x1e1c1c;});}else{return _0x1e1c1c;}})['catch'](function(_0x11adcc){logger[_0x0ec5('0x35')](_0x0ec5('0x5c'),_0x11adcc);throw _0x11adcc;});}return _0x1e1c1c;})['then'](respondWithResult(_0x3c839f,0xc9))[_0x0ec5('0x5d')](handleError(_0x3c839f,null));};exports['update']=function(_0xcc0eb1,_0x880299){if(_0xcc0eb1[_0x0ec5('0x52')]['id']){delete _0xcc0eb1[_0x0ec5('0x52')]['id'];}return db[_0x0ec5('0x4b')]['find']({'where':{'id':_0xcc0eb1['params']['id']}})[_0x0ec5('0x25')](handleEntityNotFound(_0x880299,null))[_0x0ec5('0x25')](function(_0x12b875){if(_0x12b875){return db[_0x0ec5('0x4b')][_0x0ec5('0x5e')](_[_0x0ec5('0x5f')](_0xcc0eb1[_0x0ec5('0x52')],['exten',_0x0ec5('0x60'),'description',_0x0ec5('0x61'),_0x0ec5('0x62'),'mandatoryDisposition']),{'where':{'context':_0x12b875['context'],'exten':_0x12b875[_0x0ec5('0x53')]},'individualHooks':!![]})['then'](function(_0x2ef819){return _0x2ef819;});}return null;})['then'](respondWithStatusCode(_0x880299,null))['catch'](handleError(_0x880299,null));};exports['addApplications']=function(_0x45919a,_0x4d10ac,_0x334f7d){return db[_0x0ec5('0x4b')][_0x0ec5('0x63')]({'where':{'id':_0x45919a[_0x0ec5('0x50')]['id']}})['then'](handleEntityNotFound(_0x4d10ac,null))[_0x0ec5('0x25')](function(_0x3c40ad){if(_0x3c40ad){return db[_0x0ec5('0x64')][_0x0ec5('0x65')](function(_0x3fce3f){return db[_0x0ec5('0x4b')][_0x0ec5('0x26')]({'where':{'VoiceExtensionId':_0x45919a[_0x0ec5('0x50')]['id']},'transaction':_0x3fce3f})[_0x0ec5('0x25')](function(_0x1aa33b){var _0xa80af2=_['map'](_0x45919a[_0x0ec5('0x52')],function(_0x4230c5){_0x4230c5[_0x0ec5('0x66')]=_0x45919a[_0x0ec5('0x50')]['id'];return _0x4230c5;});return db[_0x0ec5('0x4b')]['bulkCreate'](_0xa80af2,{'transaction':_0x3fce3f});});})[_0x0ec5('0x25')](function(){return db[_0x0ec5('0x4b')][_0x0ec5('0x67')]({'where':{'isApp':!![],'VoiceExtensionId':_0x45919a['params']['id']},'order':_0x0ec5('0x68')});});}})['then'](respondWithResult(_0x4d10ac,null))['catch'](handleError(_0x4d10ac,null));};