Built motion from commit (unavailable).|2.5.14
[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 _0x4e6b=['VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','rimraf','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','socket.io-emitter','./voiceExtension.socket','sendStatus','end','json','limit','status','set','Content-Range','reject','save','update','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','map','value','includes','type','error','stack','name','send','index','VoiceExtension','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','offset','order','sort','where','pick','merge','VIRTUAL','count','includeAll','include','findAll','catch','show','params','options','find','create','body','exten','user','role','UserProfileSection','userProfileId','UserProfileResource','description','addApplications','findOne','sequelize','transaction'];(function(_0x5c961d,_0x5e0c4c){var _0x2ab2e9=function(_0x4379fe){while(--_0x4379fe){_0x5c961d['push'](_0x5c961d['shift']());}};_0x2ab2e9(++_0x5e0c4c);}(_0x4e6b,0x1df));var _0xb4e6=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x4e6b[_0x3bf83f];return _0x22c4a9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb4e6('0x0'));var rimraf=require(_0xb4e6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb4e6('0x2'));var BPromise=require(_0xb4e6('0x3'));var Mustache=require(_0xb4e6('0x4'));var util=require('util');var path=require(_0xb4e6('0x5'));var sox=require(_0xb4e6('0x6'));var csv=require(_0xb4e6('0x7'));var ejs=require(_0xb4e6('0x8'));var fs=require('fs');var _=require(_0xb4e6('0x9'));var squel=require(_0xb4e6('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb4e6('0xb'));var toCsv=require(_0xb4e6('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb4e6('0xc'));var authService=require(_0xb4e6('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xb4e6('0xe'));var hardwareService=require(_0xb4e6('0xf'));var logger=require(_0xb4e6('0x10'))(_0xb4e6('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb4e6('0x12'))['db'];config['redis']=_['defaults'](config[_0xb4e6('0x13')],{'host':'localhost','port':0x18eb});var socket=require(_0xb4e6('0x14'))(new Redis(config[_0xb4e6('0x13')]));require(_0xb4e6('0x15'))['register'](socket);function respondWithStatusCode(_0x2acc0,_0x118841){_0x118841=_0x118841||0xcc;return function(_0xbf9d1b){if(_0xbf9d1b){return _0x2acc0[_0xb4e6('0x16')](_0x118841);}return _0x2acc0['status'](_0x118841)[_0xb4e6('0x17')]();};}function respondWithResult(_0xd47fab,_0x2151b0){_0x2151b0=_0x2151b0||0xc8;return function(_0x4fd348){if(_0x4fd348){return _0xd47fab['status'](_0x2151b0)[_0xb4e6('0x18')](_0x4fd348);}};}function respondWithFilteredResult(_0x2eed6c,_0x4ed33a){return function(_0x27840e){if(_0x27840e){var _0x58af63=_0x27840e['count'],_0x499d88=_0x4ed33a['offset'],_0x3f5c2f=_0x4ed33a['offset']+_0x4ed33a[_0xb4e6('0x19')],_0x4cfd04;if(_0x3f5c2f>=_0x58af63){_0x3f5c2f=_0x58af63;_0x4cfd04=0xc8;}else{_0x4cfd04=0xce;}_0x2eed6c[_0xb4e6('0x1a')](_0x4cfd04);return _0x2eed6c[_0xb4e6('0x1b')](_0xb4e6('0x1c'),_0x499d88+'-'+_0x3f5c2f+'/'+_0x58af63)[_0xb4e6('0x18')](_0x27840e);}return null;};}function patchUpdates(_0x1cdf03){return function(_0x84a3a1){try{jsonpatch['apply'](_0x84a3a1,_0x1cdf03,!![]);}catch(_0x525d17){return BPromise[_0xb4e6('0x1d')](_0x525d17);}return _0x84a3a1[_0xb4e6('0x1e')]();};}function saveUpdates(_0x5f44fa,_0x4a96e0){return function(_0x4beea9){if(_0x4beea9){return _0x4beea9[_0xb4e6('0x1f')](_0x5f44fa)['then'](function(_0x5b9fa2){return _0x5b9fa2;});}return null;};}function removeEntity(_0x40258d,_0x7f5f1){return function(_0x2e6c4a){if(_0x2e6c4a){return _0x2e6c4a[_0xb4e6('0x20')]()[_0xb4e6('0x21')](function(){var _0x33d13f=_0x2e6c4a[_0xb4e6('0x22')]({'plain':!![]});var _0xf1c688=[{'name':_0xb4e6('0x23'),'value':_0xb4e6('0x24'),'ignore':![]},{'name':_0xb4e6('0x25'),'value':_0xb4e6('0x26'),'ignore':![]},{'name':_0xb4e6('0x27'),'value':_0xb4e6('0x28'),'ignore':![]}];var _0x169d46=_(_0xf1c688)[_0xb4e6('0x29')]('ignore')[_0xb4e6('0x2a')](_0xb4e6('0x2b'))[_0xb4e6('0x2b')]();if(_[_0xb4e6('0x2c')](_0x169d46,_0x33d13f[_0xb4e6('0x2d')])){return;}var _0x1216c2=_['find'](_0xf1c688,[_0xb4e6('0x2b'),_0x33d13f[_0xb4e6('0x2d')]])['name'];return db['UserProfileResource'][_0xb4e6('0x20')]({'where':{'type':_0x1216c2,'resourceId':_0x33d13f['id']}})[_0xb4e6('0x21')](function(){return _0x2e6c4a;});})['then'](function(){_0x40258d[_0xb4e6('0x1a')](0xcc)[_0xb4e6('0x17')]();});}};}function handleEntityNotFound(_0x2c056b,_0x4c7ec3){return function(_0x471b1a){if(!_0x471b1a){_0x2c056b[_0xb4e6('0x16')](0x194);}return _0x471b1a;};}function handleError(_0x50ba87,_0xeff27a){_0xeff27a=_0xeff27a||0x1f4;return function(_0xd47176){logger[_0xb4e6('0x2e')](_0xd47176[_0xb4e6('0x2f')]);if(_0xd47176['name']){delete _0xd47176[_0xb4e6('0x30')];}_0x50ba87[_0xb4e6('0x1a')](_0xeff27a)[_0xb4e6('0x31')](_0xd47176);};}exports[_0xb4e6('0x32')]=function(_0x317e65,_0x429478){var _0x49a246={},_0x56bb86={},_0xb93bff={'count':0x0,'rows':[]};var _0x4fae40=_['map'](db[_0xb4e6('0x33')]['rawAttributes'],function(_0x10452e){return{'name':_0x10452e['fieldName'],'type':_0x10452e[_0xb4e6('0x2d')][_0xb4e6('0x34')]};});_0x56bb86[_0xb4e6('0x35')]=_[_0xb4e6('0x2a')](_0x4fae40,_0xb4e6('0x30'));_0x56bb86[_0xb4e6('0x36')]=_[_0xb4e6('0x37')](_0x317e65[_0xb4e6('0x36')]);_0x56bb86[_0xb4e6('0x38')]=_['intersection'](_0x56bb86[_0xb4e6('0x35')],_0x56bb86[_0xb4e6('0x36')]);_0x49a246['attributes']=_[_0xb4e6('0x39')](_0x56bb86['model'],qs['fields'](_0x317e65['query'][_0xb4e6('0x3a')]));_0x49a246[_0xb4e6('0x3b')]=_0x49a246[_0xb4e6('0x3b')][_0xb4e6('0x3c')]?_0x49a246[_0xb4e6('0x3b')]:_0x56bb86[_0xb4e6('0x35')];if(!_0x317e65[_0xb4e6('0x36')][_0xb4e6('0x3d')]('nolimit')){_0x49a246['limit']=qs[_0xb4e6('0x19')](_0x317e65[_0xb4e6('0x36')]['limit']);_0x49a246[_0xb4e6('0x3e')]=qs[_0xb4e6('0x3e')](_0x317e65[_0xb4e6('0x36')][_0xb4e6('0x3e')]);}_0x49a246[_0xb4e6('0x3f')]=qs[_0xb4e6('0x40')](_0x317e65[_0xb4e6('0x36')][_0xb4e6('0x40')]);_0x49a246[_0xb4e6('0x41')]=qs[_0xb4e6('0x38')](_[_0xb4e6('0x42')](_0x317e65[_0xb4e6('0x36')],_0x56bb86[_0xb4e6('0x38')]),_0x4fae40);if(_0x317e65['query']['filter']){_0x49a246[_0xb4e6('0x41')]=_[_0xb4e6('0x43')](_0x49a246[_0xb4e6('0x41')],{'$or':_[_0xb4e6('0x2a')](_0x4fae40,function(_0x2e59ed){if(_0x2e59ed[_0xb4e6('0x2d')]!==_0xb4e6('0x44')){var _0x59bc52={};_0x59bc52[_0x2e59ed[_0xb4e6('0x30')]]={'$like':'%'+_0x317e65[_0xb4e6('0x36')][_0xb4e6('0x29')]+'%'};return _0x59bc52;}})});}_0x49a246=_[_0xb4e6('0x43')]({},_0x49a246,_0x317e65['options']);var _0x5114ba={'where':_0x49a246[_0xb4e6('0x41')]};return db['VoiceExtension'][_0xb4e6('0x45')](_0x5114ba)[_0xb4e6('0x21')](function(_0xe0d935){_0xb93bff[_0xb4e6('0x45')]=_0xe0d935;if(_0x317e65[_0xb4e6('0x36')][_0xb4e6('0x46')]){_0x49a246[_0xb4e6('0x47')]=[{'all':!![]}];}return db[_0xb4e6('0x33')][_0xb4e6('0x48')](_0x49a246);})[_0xb4e6('0x21')](function(_0x4f0da8){_0xb93bff['rows']=_0x4f0da8;return _0xb93bff;})[_0xb4e6('0x21')](respondWithFilteredResult(_0x429478,_0x49a246))[_0xb4e6('0x49')](handleError(_0x429478,null));};exports[_0xb4e6('0x4a')]=function(_0x1eb321,_0x30afe6){var _0x146a7e={'raw':![],'where':{'id':_0x1eb321[_0xb4e6('0x4b')]['id']}},_0x17ecea={};_0x17ecea[_0xb4e6('0x35')]=_['keys'](db['VoiceExtension']['rawAttributes']);_0x17ecea['query']=_[_0xb4e6('0x37')](_0x1eb321['query']);_0x17ecea[_0xb4e6('0x38')]=_['intersection'](_0x17ecea[_0xb4e6('0x35')],_0x17ecea[_0xb4e6('0x36')]);_0x146a7e[_0xb4e6('0x3b')]=_[_0xb4e6('0x39')](_0x17ecea[_0xb4e6('0x35')],qs[_0xb4e6('0x3a')](_0x1eb321['query'][_0xb4e6('0x3a')]));_0x146a7e[_0xb4e6('0x3b')]=_0x146a7e['attributes']['length']?_0x146a7e[_0xb4e6('0x3b')]:_0x17ecea[_0xb4e6('0x35')];if(_0x1eb321[_0xb4e6('0x36')][_0xb4e6('0x46')]){_0x146a7e['include']=[{'all':!![]}];}_0x146a7e=_['merge']({},_0x146a7e,_0x1eb321[_0xb4e6('0x4c')]);return db['VoiceExtension'][_0xb4e6('0x4d')](_0x146a7e)[_0xb4e6('0x21')](handleEntityNotFound(_0x30afe6,null))[_0xb4e6('0x21')](respondWithResult(_0x30afe6,null))[_0xb4e6('0x49')](handleError(_0x30afe6,null));};exports[_0xb4e6('0x20')]=function(_0x198ed0,_0x5cf121){return db[_0xb4e6('0x33')][_0xb4e6('0x4d')]({'where':{'id':_0x198ed0[_0xb4e6('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5cf121,null))[_0xb4e6('0x21')](removeEntity(_0x5cf121,null))['catch'](handleError(_0x5cf121,null));};exports[_0xb4e6('0x4e')]=function(_0x2a0c64,_0x4780a0){if(_0x2a0c64[_0xb4e6('0x4f')][_0xb4e6('0x2d')]===_0xb4e6('0x26')&&!_['startsWith'](_0x2a0c64['body'][_0xb4e6('0x50')],'_')){_0x2a0c64[_0xb4e6('0x4f')][_0xb4e6('0x50')]='_'['concat'](_0x2a0c64[_0xb4e6('0x4f')]['exten']);}return db['VoiceExtension']['create'](_0x2a0c64[_0xb4e6('0x4f')],{'raw':![]})['then'](function(_0x349d83){var _0x7f9d0=_0x2a0c64[_0xb4e6('0x51')][_0xb4e6('0x22')]({'plain':!![]});if(!_0x7f9d0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x7f9d0[_0xb4e6('0x52')]===_0xb4e6('0x51')){var _0x1d9d5e=_0x349d83[_0xb4e6('0x22')]({'plain':!![]});var _0xdba486=[{'name':'InboundRoutes','value':_0xb4e6('0x24')},{'name':'OutboundRoutes','value':_0xb4e6('0x26')},{'name':_0xb4e6('0x27'),'value':_0xb4e6('0x28')}];var _0x3b33f6=_[_0xb4e6('0x4d')](_0xdba486,[_0xb4e6('0x2b'),_0x1d9d5e[_0xb4e6('0x2d')]])[_0xb4e6('0x30')];return db[_0xb4e6('0x53')][_0xb4e6('0x4d')]({'where':{'name':_0x3b33f6,'userProfileId':_0x7f9d0[_0xb4e6('0x54')]},'raw':!![]})[_0xb4e6('0x21')](function(_0x52fa4f){if(_0x52fa4f&&_0x52fa4f['autoAssociation']===0x0){return db[_0xb4e6('0x55')][_0xb4e6('0x4e')]({'name':_0x1d9d5e['name'],'resourceId':_0x1d9d5e['id'],'type':_0x52fa4f['name'],'sectionId':_0x52fa4f['id']},{})['then'](function(){return _0x349d83;});}else{return _0x349d83;}})[_0xb4e6('0x49')](function(_0x2d2b4b){logger[_0xb4e6('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2d2b4b);throw _0x2d2b4b;});}return _0x349d83;})['then'](respondWithResult(_0x4780a0,0xc9))['catch'](handleError(_0x4780a0,null));};exports[_0xb4e6('0x1f')]=function(_0x355c11,_0x407bf9){if(_0x355c11[_0xb4e6('0x4f')]['id']){delete _0x355c11[_0xb4e6('0x4f')]['id'];}return db[_0xb4e6('0x33')][_0xb4e6('0x4d')]({'where':{'id':_0x355c11[_0xb4e6('0x4b')]['id']}})[_0xb4e6('0x21')](handleEntityNotFound(_0x407bf9,null))[_0xb4e6('0x21')](function(_0x4dc05a){if(_0x4dc05a){return db[_0xb4e6('0x33')][_0xb4e6('0x1f')](_['pick'](_0x355c11[_0xb4e6('0x4f')],[_0xb4e6('0x50'),'context',_0xb4e6('0x56'),'recordingFormat','cutdigits','mandatoryDisposition']),{'where':{'context':_0x4dc05a['context'],'exten':_0x4dc05a[_0xb4e6('0x50')]},'individualHooks':!![]})[_0xb4e6('0x21')](function(_0x521762){return _0x521762;});}return null;})[_0xb4e6('0x21')](respondWithStatusCode(_0x407bf9,null))[_0xb4e6('0x49')](handleError(_0x407bf9,null));};exports[_0xb4e6('0x57')]=function(_0x145a4d,_0x23fa1c,_0x1d7fdb){return db[_0xb4e6('0x33')][_0xb4e6('0x58')]({'where':{'id':_0x145a4d[_0xb4e6('0x4b')]['id']}})[_0xb4e6('0x21')](handleEntityNotFound(_0x23fa1c,null))[_0xb4e6('0x21')](function(_0x43ab77){if(_0x43ab77){return db[_0xb4e6('0x59')][_0xb4e6('0x5a')](function(_0x223260){return db[_0xb4e6('0x33')][_0xb4e6('0x20')]({'where':{'VoiceExtensionId':_0x145a4d[_0xb4e6('0x4b')]['id']},'transaction':_0x223260})[_0xb4e6('0x21')](function(_0x17643f){var _0x4e2e99=_['map'](_0x145a4d['body'],function(_0x2cf27b){_0x2cf27b[_0xb4e6('0x5b')]=_0x145a4d[_0xb4e6('0x4b')]['id'];return _0x2cf27b;});return db[_0xb4e6('0x33')][_0xb4e6('0x5c')](_0x4e2e99,{'transaction':_0x223260});});})[_0xb4e6('0x21')](function(){return db['VoiceExtension'][_0xb4e6('0x5d')]({'where':{'isApp':!![],'VoiceExtensionId':_0x145a4d[_0xb4e6('0x4b')]['id']},'order':_0xb4e6('0x5e')});});}})[_0xb4e6('0x21')](respondWithResult(_0x23fa1c,null))[_0xb4e6('0x49')](handleError(_0x23fa1c,null));};