Built motion from commit (unavailable).|2.3.4
[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 _0x8c46=['Content-Range','reject','save','update','destroy','then','inbound','OutboundRoutes','outbound','internal','filter','ignore','map','value','type','find','name','UserProfileResource','end','error','stack','send','index','rawAttributes','keys','query','filters','intersection','attributes','fields','length','model','hasOwnProperty','order','sort','where','VIRTUAL','field','merge','options','VoiceExtension','includeAll','include','findAll','catch','show','params','create','body','exten','concat','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','InternalRoutes','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','pick','context','description','mandatoryDisposition','addApplications','findOne','sequelize','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','count','offset','limit','set'];(function(_0x17358f,_0x29c302){var _0x12861c=function(_0x4d3475){while(--_0x4d3475){_0x17358f['push'](_0x17358f['shift']());}};_0x12861c(++_0x29c302);}(_0x8c46,0x171));var _0x68c4=function(_0x11f82b,_0x255da7){_0x11f82b=_0x11f82b-0x0;var _0xf6dada=_0x8c46[_0x11f82b];return _0xf6dada;};'use strict';var pdf=require(_0x68c4('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x68c4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x68c4('0x2'));var BPromise=require(_0x68c4('0x3'));var Mustache=require(_0x68c4('0x4'));var util=require(_0x68c4('0x5'));var path=require(_0x68c4('0x6'));var sox=require(_0x68c4('0x7'));var csv=require(_0x68c4('0x8'));var ejs=require(_0x68c4('0x9'));var fs=require('fs');var _=require(_0x68c4('0xa'));var squel=require(_0x68c4('0xb'));var crypto=require('crypto');var jsforce=require(_0x68c4('0xc'));var deskjs=require(_0x68c4('0xd'));var toCsv=require(_0x68c4('0x8'));var querystring=require('querystring');var Papa=require(_0x68c4('0xe'));var authService=require(_0x68c4('0xf'));var hardwareService=require(_0x68c4('0x10'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x68c4('0x11'))(_0x68c4('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x68c4('0x13'))['db'];config[_0x68c4('0x14')]=_[_0x68c4('0x15')](config['redis'],{'host':_0x68c4('0x16'),'port':0x18eb});var socket=require(_0x68c4('0x17'))(new Redis(config[_0x68c4('0x14')]));require('./voiceExtension.socket')[_0x68c4('0x18')](socket);function respondWithStatusCode(_0x14919c,_0x5e1341){_0x5e1341=_0x5e1341||0xcc;return function(_0x52f031){if(_0x52f031){return _0x14919c[_0x68c4('0x19')](_0x5e1341);}return _0x14919c[_0x68c4('0x1a')](_0x5e1341)['end']();};}function respondWithResult(_0xc25f7b,_0x4ea2a4){_0x4ea2a4=_0x4ea2a4||0xc8;return function(_0x1a7045){if(_0x1a7045){return _0xc25f7b['status'](_0x4ea2a4)['json'](_0x1a7045);}};}function respondWithFilteredResult(_0xc2ea2f,_0x5cb05f){return function(_0x4f4797){if(_0x4f4797){var _0x2d6c1b=_0x4f4797[_0x68c4('0x1b')],_0x1d757c=_0x5cb05f[_0x68c4('0x1c')],_0x38ac38=_0x5cb05f[_0x68c4('0x1c')]+_0x5cb05f[_0x68c4('0x1d')],_0x33c5c5;if(_0x38ac38>=_0x2d6c1b){_0x38ac38=_0x2d6c1b;_0x33c5c5=0xc8;}else{_0x33c5c5=0xce;}_0xc2ea2f[_0x68c4('0x1a')](_0x33c5c5);return _0xc2ea2f[_0x68c4('0x1e')](_0x68c4('0x1f'),_0x1d757c+'-'+_0x38ac38+'/'+_0x2d6c1b)['json'](_0x4f4797);}return null;};}function patchUpdates(_0x398a71){return function(_0x4edf9f){try{jsonpatch['apply'](_0x4edf9f,_0x398a71,!![]);}catch(_0x34d3a6){return BPromise[_0x68c4('0x20')](_0x34d3a6);}return _0x4edf9f[_0x68c4('0x21')]();};}function saveUpdates(_0x42f0bc,_0x5b8135){return function(_0x35e865){if(_0x35e865){return _0x35e865[_0x68c4('0x22')](_0x42f0bc)['then'](function(_0x201742){return _0x201742;});}return null;};}function removeEntity(_0x392ccf,_0x45f9be){return function(_0x10278e){if(_0x10278e){return _0x10278e[_0x68c4('0x23')]()[_0x68c4('0x24')](function(){var _0x37e9a9=_0x10278e['get']({'plain':!![]});var _0x2ff4a5=[{'name':'InboundRoutes','value':_0x68c4('0x25'),'ignore':![]},{'name':_0x68c4('0x26'),'value':_0x68c4('0x27'),'ignore':![]},{'name':'InternalRoutes','value':_0x68c4('0x28'),'ignore':![]}];var _0x126064=_(_0x2ff4a5)[_0x68c4('0x29')](_0x68c4('0x2a'))[_0x68c4('0x2b')](_0x68c4('0x2c'))[_0x68c4('0x2c')]();if(_['includes'](_0x126064,_0x37e9a9[_0x68c4('0x2d')])){return;}var _0x4b4634=_[_0x68c4('0x2e')](_0x2ff4a5,[_0x68c4('0x2c'),_0x37e9a9['type']])[_0x68c4('0x2f')];return db[_0x68c4('0x30')]['destroy']({'where':{'type':_0x4b4634,'resourceId':_0x37e9a9['id']}})[_0x68c4('0x24')](function(){return _0x10278e;});})[_0x68c4('0x24')](function(){_0x392ccf[_0x68c4('0x1a')](0xcc)[_0x68c4('0x31')]();});}};}function handleEntityNotFound(_0x233cea,_0x586dec){return function(_0x255433){if(!_0x255433){_0x233cea[_0x68c4('0x19')](0x194);}return _0x255433;};}function handleError(_0x3a7297,_0x1514d7){_0x1514d7=_0x1514d7||0x1f4;return function(_0x19bc4a){logger[_0x68c4('0x32')](_0x19bc4a[_0x68c4('0x33')]);if(_0x19bc4a[_0x68c4('0x2f')]){delete _0x19bc4a[_0x68c4('0x2f')];}_0x3a7297[_0x68c4('0x1a')](_0x1514d7)[_0x68c4('0x34')](_0x19bc4a);};}exports[_0x68c4('0x35')]=function(_0x4837b4,_0x1299fc){var _0x194217={},_0x25eeea={},_0x1be9ed={'count':0x0,'rows':[]};var _0x352db9=db['VoiceExtension'][_0x68c4('0x36')];_0x25eeea['model']=_['keys'](_0x352db9);_0x25eeea['query']=_[_0x68c4('0x37')](_0x4837b4[_0x68c4('0x38')]);_0x25eeea[_0x68c4('0x39')]=_[_0x68c4('0x3a')](_0x25eeea['model'],_0x25eeea[_0x68c4('0x38')]);_0x194217[_0x68c4('0x3b')]=_[_0x68c4('0x3a')](_0x25eeea['model'],qs[_0x68c4('0x3c')](_0x4837b4[_0x68c4('0x38')][_0x68c4('0x3c')]));_0x194217[_0x68c4('0x3b')]=_0x194217[_0x68c4('0x3b')][_0x68c4('0x3d')]?_0x194217[_0x68c4('0x3b')]:_0x25eeea[_0x68c4('0x3e')];if(!_0x4837b4[_0x68c4('0x38')][_0x68c4('0x3f')]('nolimit')){_0x194217['limit']=qs[_0x68c4('0x1d')](_0x4837b4[_0x68c4('0x38')][_0x68c4('0x1d')]);_0x194217[_0x68c4('0x1c')]=qs[_0x68c4('0x1c')](_0x4837b4[_0x68c4('0x38')][_0x68c4('0x1c')]);}_0x194217[_0x68c4('0x40')]=qs[_0x68c4('0x41')](_0x4837b4[_0x68c4('0x38')][_0x68c4('0x41')]);_0x194217[_0x68c4('0x42')]=qs[_0x68c4('0x39')](_['pick'](_0x4837b4['query'],_0x25eeea[_0x68c4('0x39')]));if(_0x4837b4[_0x68c4('0x38')][_0x68c4('0x29')]){_0x194217[_0x68c4('0x42')]=_['merge'](_0x194217[_0x68c4('0x42')],{'$or':_[_0x68c4('0x2b')](_0x352db9,function(_0x4d555c){if(_0x4d555c['type']['key']!==_0x68c4('0x43')){var _0x565962={};_0x565962[_0x4d555c[_0x68c4('0x44')]]={'$like':'%'+_0x4837b4['query'][_0x68c4('0x29')]+'%'};return _0x565962;}})});}_0x194217=_[_0x68c4('0x45')]({},_0x194217,_0x4837b4[_0x68c4('0x46')]);var _0xefe68d={'where':_0x194217['where']};return db[_0x68c4('0x47')][_0x68c4('0x1b')](_0xefe68d)[_0x68c4('0x24')](function(_0x10cf85){_0x1be9ed['count']=_0x10cf85;if(_0x4837b4[_0x68c4('0x38')][_0x68c4('0x48')]){_0x194217[_0x68c4('0x49')]=[{'all':!![]}];}return db[_0x68c4('0x47')][_0x68c4('0x4a')](_0x194217);})['then'](function(_0x58f3b6){_0x1be9ed['rows']=_0x58f3b6;return _0x1be9ed;})[_0x68c4('0x24')](respondWithFilteredResult(_0x1299fc,_0x194217))[_0x68c4('0x4b')](handleError(_0x1299fc,null));};exports[_0x68c4('0x4c')]=function(_0x7c3235,_0x5e8438){var _0x2255fa={'raw':![],'where':{'id':_0x7c3235[_0x68c4('0x4d')]['id']}},_0x2169af={};_0x2169af[_0x68c4('0x3e')]=_[_0x68c4('0x37')](db[_0x68c4('0x47')][_0x68c4('0x36')]);_0x2169af[_0x68c4('0x38')]=_[_0x68c4('0x37')](_0x7c3235[_0x68c4('0x38')]);_0x2169af[_0x68c4('0x39')]=_['intersection'](_0x2169af[_0x68c4('0x3e')],_0x2169af['query']);_0x2255fa[_0x68c4('0x3b')]=_[_0x68c4('0x3a')](_0x2169af[_0x68c4('0x3e')],qs[_0x68c4('0x3c')](_0x7c3235['query'][_0x68c4('0x3c')]));_0x2255fa['attributes']=_0x2255fa[_0x68c4('0x3b')][_0x68c4('0x3d')]?_0x2255fa['attributes']:_0x2169af[_0x68c4('0x3e')];if(_0x7c3235[_0x68c4('0x38')][_0x68c4('0x48')]){_0x2255fa[_0x68c4('0x49')]=[{'all':!![]}];}_0x2255fa=_[_0x68c4('0x45')]({},_0x2255fa,_0x7c3235[_0x68c4('0x46')]);return db['VoiceExtension'][_0x68c4('0x2e')](_0x2255fa)[_0x68c4('0x24')](handleEntityNotFound(_0x5e8438,null))[_0x68c4('0x24')](respondWithResult(_0x5e8438,null))[_0x68c4('0x4b')](handleError(_0x5e8438,null));};exports['destroy']=function(_0x40ecf6,_0x19aec2){return db[_0x68c4('0x47')][_0x68c4('0x2e')]({'where':{'id':_0x40ecf6[_0x68c4('0x4d')]['id']}})[_0x68c4('0x24')](handleEntityNotFound(_0x19aec2,null))['then'](removeEntity(_0x19aec2,null))[_0x68c4('0x4b')](handleError(_0x19aec2,null));};exports[_0x68c4('0x4e')]=function(_0x3db854,_0x51db14){if(_0x3db854[_0x68c4('0x4f')][_0x68c4('0x2d')]==='outbound'&&!_['startsWith'](_0x3db854[_0x68c4('0x4f')][_0x68c4('0x50')],'_')){_0x3db854[_0x68c4('0x4f')][_0x68c4('0x50')]='_'[_0x68c4('0x51')](_0x3db854[_0x68c4('0x4f')][_0x68c4('0x50')]);}return db[_0x68c4('0x47')]['create'](_0x3db854[_0x68c4('0x4f')],{'raw':![]})['then'](function(_0x59157e){var _0x4e1352=_0x3db854[_0x68c4('0x52')][_0x68c4('0x53')]({'plain':!![]});if(!_0x4e1352)throw new Error(_0x68c4('0x54'));if(_0x4e1352['role']===_0x68c4('0x52')){var _0x441371=_0x59157e['get']({'plain':!![]});var _0x35faf1=[{'name':'InboundRoutes','value':_0x68c4('0x25')},{'name':'OutboundRoutes','value':_0x68c4('0x27')},{'name':_0x68c4('0x55'),'value':'internal'}];var _0x1303fc=_[_0x68c4('0x2e')](_0x35faf1,['value',_0x441371[_0x68c4('0x2d')]])[_0x68c4('0x2f')];return db['UserProfileSection'][_0x68c4('0x2e')]({'where':{'name':_0x1303fc,'userProfileId':_0x4e1352[_0x68c4('0x56')]},'raw':!![]})[_0x68c4('0x24')](function(_0x37f711){if(_0x37f711&&_0x37f711[_0x68c4('0x57')]===0x0){return db[_0x68c4('0x30')][_0x68c4('0x4e')]({'name':_0x441371[_0x68c4('0x2f')],'resourceId':_0x441371['id'],'type':_0x37f711[_0x68c4('0x2f')],'sectionId':_0x37f711['id']},{})['then'](function(){return _0x59157e;});}else{return _0x59157e;}})[_0x68c4('0x4b')](function(_0x43b734){logger[_0x68c4('0x32')](_0x68c4('0x58'),_0x43b734);throw _0x43b734;});}return _0x59157e;})[_0x68c4('0x24')](respondWithResult(_0x51db14,0xc9))[_0x68c4('0x4b')](handleError(_0x51db14,null));};exports[_0x68c4('0x22')]=function(_0x4a50f4,_0x576902){if(_0x4a50f4[_0x68c4('0x4f')]['id']){delete _0x4a50f4[_0x68c4('0x4f')]['id'];}return db['VoiceExtension'][_0x68c4('0x2e')]({'where':{'id':_0x4a50f4[_0x68c4('0x4d')]['id']}})[_0x68c4('0x24')](handleEntityNotFound(_0x576902,null))[_0x68c4('0x24')](function(_0x334fff){if(_0x334fff){return db[_0x68c4('0x47')]['update'](_[_0x68c4('0x59')](_0x4a50f4[_0x68c4('0x4f')],[_0x68c4('0x50'),_0x68c4('0x5a'),_0x68c4('0x5b'),'recordingFormat','cutdigits',_0x68c4('0x5c')]),{'where':{'context':_0x334fff[_0x68c4('0x5a')],'exten':_0x334fff[_0x68c4('0x50')]},'individualHooks':!![]})[_0x68c4('0x24')](function(_0x294681){return _0x294681;});}return null;})['then'](respondWithStatusCode(_0x576902,null))[_0x68c4('0x4b')](handleError(_0x576902,null));};exports[_0x68c4('0x5d')]=function(_0x18e3bf,_0x231e7f,_0x3d098a){return db[_0x68c4('0x47')][_0x68c4('0x5e')]({'where':{'id':_0x18e3bf[_0x68c4('0x4d')]['id']}})[_0x68c4('0x24')](handleEntityNotFound(_0x231e7f,null))[_0x68c4('0x24')](function(_0x50ada0){if(_0x50ada0){return db[_0x68c4('0x5f')]['transaction'](function(_0x284f5a){return db[_0x68c4('0x47')][_0x68c4('0x23')]({'where':{'VoiceExtensionId':_0x18e3bf['params']['id']},'transaction':_0x284f5a})[_0x68c4('0x24')](function(_0x4fa64d){var _0xd7bbe0=_[_0x68c4('0x2b')](_0x18e3bf[_0x68c4('0x4f')],function(_0x37260e){_0x37260e[_0x68c4('0x60')]=_0x18e3bf['params']['id'];return _0x37260e;});return db[_0x68c4('0x47')][_0x68c4('0x61')](_0xd7bbe0,{'transaction':_0x284f5a});});})[_0x68c4('0x24')](function(){return db[_0x68c4('0x47')][_0x68c4('0x62')]({'where':{'isApp':!![],'VoiceExtensionId':_0x18e3bf['params']['id']},'order':_0x68c4('0x63')});});}})[_0x68c4('0x24')](respondWithResult(_0x231e7f,null))[_0x68c4('0x4b')](handleError(_0x231e7f,null));};