488c7f8999c5a68467fe0872491b69be7fd0e9e5
[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 _0xba34=['inbound','OutboundRoutes','InternalRoutes','internal','ignore','map','value','includes','type','find','name','UserProfileResource','error','stack','index','VoiceExtension','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','rows','catch','show','params','keys','length','include','create','body','outbound','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','recordingFormat','context','findOne','sequelize','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./voiceExtension.socket','register','sendStatus','status','end','json','count','offset','limit','apply','reject','save','update','destroy','then','get','InboundRoutes'];(function(_0x5e7057,_0x4fa7f9){var _0x2a0003=function(_0x54c846){while(--_0x54c846){_0x5e7057['push'](_0x5e7057['shift']());}};_0x2a0003(++_0x4fa7f9);}(_0xba34,0x119));var _0x4ba3=function(_0x5ee53c,_0x1eb0df){_0x5ee53c=_0x5ee53c-0x0;var _0x4d0af5=_0xba34[_0x5ee53c];return _0x4d0af5;};'use strict';var pdf=require(_0x4ba3('0x0'));var emlformat=require(_0x4ba3('0x1'));var rimraf=require(_0x4ba3('0x2'));var zipdir=require(_0x4ba3('0x3'));var jsonpatch=require(_0x4ba3('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4ba3('0x5'));var util=require(_0x4ba3('0x6'));var path=require(_0x4ba3('0x7'));var sox=require(_0x4ba3('0x8'));var csv=require(_0x4ba3('0x9'));var ejs=require(_0x4ba3('0xa'));var fs=require('fs');var _=require(_0x4ba3('0xb'));var squel=require('squel');var crypto=require(_0x4ba3('0xc'));var jsforce=require(_0x4ba3('0xd'));var deskjs=require(_0x4ba3('0xe'));var toCsv=require(_0x4ba3('0x9'));var querystring=require(_0x4ba3('0xf'));var Papa=require(_0x4ba3('0x10'));var Redis=require(_0x4ba3('0x11'));var authService=require(_0x4ba3('0x12'));var qs=require(_0x4ba3('0x13'));var as=require(_0x4ba3('0x14'));var hardwareService=require(_0x4ba3('0x15'));var logger=require('../../config/logger')(_0x4ba3('0x16'));var utils=require(_0x4ba3('0x17'));var config=require('../../config/environment');var db=require(_0x4ba3('0x18'))['db'];config['redis']=_[_0x4ba3('0x19')](config['redis'],{'host':_0x4ba3('0x1a'),'port':0x18eb});var socket=require(_0x4ba3('0x1b'))(new Redis(config[_0x4ba3('0x1c')]));require(_0x4ba3('0x1d'))[_0x4ba3('0x1e')](socket);function respondWithStatusCode(_0x3d2ace,_0x3a74f7){_0x3a74f7=_0x3a74f7||0xcc;return function(_0x12ac90){if(_0x12ac90){return _0x3d2ace[_0x4ba3('0x1f')](_0x3a74f7);}return _0x3d2ace[_0x4ba3('0x20')](_0x3a74f7)[_0x4ba3('0x21')]();};}function respondWithResult(_0x301359,_0x29a9d1){_0x29a9d1=_0x29a9d1||0xc8;return function(_0x25f584){if(_0x25f584){return _0x301359[_0x4ba3('0x20')](_0x29a9d1)[_0x4ba3('0x22')](_0x25f584);}};}function respondWithFilteredResult(_0x58d20a,_0x382fd0){return function(_0x788277){if(_0x788277){var _0x5ff7ce=_0x788277[_0x4ba3('0x23')],_0x451c92=_0x382fd0[_0x4ba3('0x24')],_0x556290=_0x382fd0[_0x4ba3('0x24')]+_0x382fd0[_0x4ba3('0x25')],_0x2519bb;if(_0x556290>=_0x5ff7ce){_0x556290=_0x5ff7ce;_0x2519bb=0xc8;}else{_0x2519bb=0xce;}_0x58d20a[_0x4ba3('0x20')](_0x2519bb);return _0x58d20a['set']('Content-Range',_0x451c92+'-'+_0x556290+'/'+_0x5ff7ce)[_0x4ba3('0x22')](_0x788277);}return null;};}function patchUpdates(_0x579d9f){return function(_0x18dff5){try{jsonpatch[_0x4ba3('0x26')](_0x18dff5,_0x579d9f,!![]);}catch(_0x413bb3){return BPromise[_0x4ba3('0x27')](_0x413bb3);}return _0x18dff5[_0x4ba3('0x28')]();};}function saveUpdates(_0x278a23,_0x4a0823){return function(_0x143c78){if(_0x143c78){return _0x143c78[_0x4ba3('0x29')](_0x278a23)['then'](function(_0x28bb3d){return _0x28bb3d;});}return null;};}function removeEntity(_0x4ffe39,_0x1ae4de){return function(_0x18abb3){if(_0x18abb3){return _0x18abb3[_0x4ba3('0x2a')]()[_0x4ba3('0x2b')](function(){var _0x152e41=_0x18abb3[_0x4ba3('0x2c')]({'plain':!![]});var _0x159596=[{'name':_0x4ba3('0x2d'),'value':_0x4ba3('0x2e'),'ignore':![]},{'name':_0x4ba3('0x2f'),'value':'outbound','ignore':![]},{'name':_0x4ba3('0x30'),'value':_0x4ba3('0x31'),'ignore':![]}];var _0x2311ed=_(_0x159596)['filter'](_0x4ba3('0x32'))[_0x4ba3('0x33')](_0x4ba3('0x34'))['value']();if(_[_0x4ba3('0x35')](_0x2311ed,_0x152e41[_0x4ba3('0x36')])){return;}var _0x34ecb4=_[_0x4ba3('0x37')](_0x159596,['value',_0x152e41['type']])[_0x4ba3('0x38')];return db[_0x4ba3('0x39')][_0x4ba3('0x2a')]({'where':{'type':_0x34ecb4,'resourceId':_0x152e41['id']}})[_0x4ba3('0x2b')](function(){return _0x18abb3;});})[_0x4ba3('0x2b')](function(){_0x4ffe39[_0x4ba3('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27444b,_0x28f36c){return function(_0x24d8fc){if(!_0x24d8fc){_0x27444b[_0x4ba3('0x1f')](0x194);}return _0x24d8fc;};}function handleError(_0x2a6757,_0x1a7a2c){_0x1a7a2c=_0x1a7a2c||0x1f4;return function(_0x457236){logger[_0x4ba3('0x3a')](_0x457236[_0x4ba3('0x3b')]);if(_0x457236[_0x4ba3('0x38')]){delete _0x457236['name'];}_0x2a6757['status'](_0x1a7a2c)['send'](_0x457236);};}exports[_0x4ba3('0x3c')]=function(_0xd033d7,_0x41b4eb){var _0x4372cb={},_0x3eea33={},_0x137f9b={'count':0x0,'rows':[]};var _0x137551=_[_0x4ba3('0x33')](db[_0x4ba3('0x3d')][_0x4ba3('0x3e')],function(_0x437a20){return{'name':_0x437a20[_0x4ba3('0x3f')],'type':_0x437a20['type'][_0x4ba3('0x40')]};});_0x3eea33[_0x4ba3('0x41')]=_[_0x4ba3('0x33')](_0x137551,'name');_0x3eea33[_0x4ba3('0x42')]=_['keys'](_0xd033d7[_0x4ba3('0x42')]);_0x3eea33[_0x4ba3('0x43')]=_[_0x4ba3('0x44')](_0x3eea33[_0x4ba3('0x41')],_0x3eea33[_0x4ba3('0x42')]);_0x4372cb[_0x4ba3('0x45')]=_['intersection'](_0x3eea33[_0x4ba3('0x41')],qs[_0x4ba3('0x46')](_0xd033d7[_0x4ba3('0x42')]['fields']));_0x4372cb[_0x4ba3('0x45')]=_0x4372cb[_0x4ba3('0x45')]['length']?_0x4372cb[_0x4ba3('0x45')]:_0x3eea33['model'];if(!_0xd033d7['query'][_0x4ba3('0x47')](_0x4ba3('0x48'))){_0x4372cb[_0x4ba3('0x25')]=qs[_0x4ba3('0x25')](_0xd033d7[_0x4ba3('0x42')]['limit']);_0x4372cb[_0x4ba3('0x24')]=qs[_0x4ba3('0x24')](_0xd033d7[_0x4ba3('0x42')][_0x4ba3('0x24')]);}_0x4372cb[_0x4ba3('0x49')]=qs[_0x4ba3('0x4a')](_0xd033d7[_0x4ba3('0x42')][_0x4ba3('0x4a')]);_0x4372cb['where']=qs[_0x4ba3('0x43')](_[_0x4ba3('0x4b')](_0xd033d7[_0x4ba3('0x42')],_0x3eea33[_0x4ba3('0x43')]),_0x137551);if(_0xd033d7[_0x4ba3('0x42')][_0x4ba3('0x4c')]){_0x4372cb[_0x4ba3('0x4d')]=_[_0x4ba3('0x4e')](_0x4372cb[_0x4ba3('0x4d')],{'$or':_[_0x4ba3('0x33')](_0x137551,function(_0x3b9a0a){if(_0x3b9a0a[_0x4ba3('0x36')]!==_0x4ba3('0x4f')){var _0x28b649={};_0x28b649[_0x3b9a0a['name']]={'$like':'%'+_0xd033d7['query']['filter']+'%'};return _0x28b649;}})});}_0x4372cb=_['merge']({},_0x4372cb,_0xd033d7['options']);var _0x1df753={'where':_0x4372cb['where']};return db[_0x4ba3('0x3d')]['count'](_0x1df753)[_0x4ba3('0x2b')](function(_0x2ac317){_0x137f9b[_0x4ba3('0x23')]=_0x2ac317;if(_0xd033d7[_0x4ba3('0x42')][_0x4ba3('0x50')]){_0x4372cb['include']=[{'all':!![]}];}return db[_0x4ba3('0x3d')]['findAll'](_0x4372cb);})[_0x4ba3('0x2b')](function(_0x50f27a){_0x137f9b[_0x4ba3('0x51')]=_0x50f27a;return _0x137f9b;})[_0x4ba3('0x2b')](respondWithFilteredResult(_0x41b4eb,_0x4372cb))[_0x4ba3('0x52')](handleError(_0x41b4eb,null));};exports[_0x4ba3('0x53')]=function(_0xc23afe,_0xb5b940){var _0x1e8e96={'raw':![],'where':{'id':_0xc23afe[_0x4ba3('0x54')]['id']}},_0x5d5714={};_0x5d5714[_0x4ba3('0x41')]=_[_0x4ba3('0x55')](db[_0x4ba3('0x3d')][_0x4ba3('0x3e')]);_0x5d5714['query']=_['keys'](_0xc23afe[_0x4ba3('0x42')]);_0x5d5714[_0x4ba3('0x43')]=_[_0x4ba3('0x44')](_0x5d5714['model'],_0x5d5714[_0x4ba3('0x42')]);_0x1e8e96[_0x4ba3('0x45')]=_[_0x4ba3('0x44')](_0x5d5714['model'],qs['fields'](_0xc23afe[_0x4ba3('0x42')]['fields']));_0x1e8e96[_0x4ba3('0x45')]=_0x1e8e96[_0x4ba3('0x45')][_0x4ba3('0x56')]?_0x1e8e96[_0x4ba3('0x45')]:_0x5d5714[_0x4ba3('0x41')];if(_0xc23afe[_0x4ba3('0x42')]['includeAll']){_0x1e8e96[_0x4ba3('0x57')]=[{'all':!![]}];}_0x1e8e96=_[_0x4ba3('0x4e')]({},_0x1e8e96,_0xc23afe['options']);return db[_0x4ba3('0x3d')][_0x4ba3('0x37')](_0x1e8e96)[_0x4ba3('0x2b')](handleEntityNotFound(_0xb5b940,null))[_0x4ba3('0x2b')](respondWithResult(_0xb5b940,null))[_0x4ba3('0x52')](handleError(_0xb5b940,null));};exports['destroy']=function(_0x37a312,_0x38de05){return db['VoiceExtension'][_0x4ba3('0x37')]({'where':{'id':_0x37a312[_0x4ba3('0x54')]['id']}})[_0x4ba3('0x2b')](handleEntityNotFound(_0x38de05,null))[_0x4ba3('0x2b')](removeEntity(_0x38de05,null))[_0x4ba3('0x52')](handleError(_0x38de05,null));};exports[_0x4ba3('0x58')]=function(_0x45dae5,_0x1ab3fe){if(_0x45dae5[_0x4ba3('0x59')][_0x4ba3('0x36')]===_0x4ba3('0x5a')&&!_[_0x4ba3('0x5b')](_0x45dae5[_0x4ba3('0x59')][_0x4ba3('0x5c')],'_')){_0x45dae5[_0x4ba3('0x59')]['exten']='_'['concat'](_0x45dae5['body'][_0x4ba3('0x5c')]);}return db[_0x4ba3('0x3d')][_0x4ba3('0x58')](_0x45dae5[_0x4ba3('0x59')],{'raw':![]})[_0x4ba3('0x2b')](function(_0x57e25a){var _0x3920c0=_0x45dae5[_0x4ba3('0x5d')][_0x4ba3('0x2c')]({'plain':!![]});if(!_0x3920c0)throw new Error(_0x4ba3('0x5e'));if(_0x3920c0[_0x4ba3('0x5f')]===_0x4ba3('0x5d')){var _0xd2327c=_0x57e25a[_0x4ba3('0x2c')]({'plain':!![]});var _0x37a0a0=[{'name':_0x4ba3('0x2d'),'value':_0x4ba3('0x2e')},{'name':_0x4ba3('0x2f'),'value':_0x4ba3('0x5a')},{'name':_0x4ba3('0x30'),'value':'internal'}];var _0x20c849=_[_0x4ba3('0x37')](_0x37a0a0,[_0x4ba3('0x34'),_0xd2327c[_0x4ba3('0x36')]])[_0x4ba3('0x38')];return db[_0x4ba3('0x60')][_0x4ba3('0x37')]({'where':{'name':_0x20c849,'userProfileId':_0x3920c0[_0x4ba3('0x61')]},'raw':!![]})['then'](function(_0x8ea419){if(_0x8ea419&&_0x8ea419[_0x4ba3('0x62')]===0x0){return db[_0x4ba3('0x39')]['create']({'name':_0xd2327c[_0x4ba3('0x38')],'resourceId':_0xd2327c['id'],'type':_0x8ea419['name'],'sectionId':_0x8ea419['id']},{})[_0x4ba3('0x2b')](function(){return _0x57e25a;});}else{return _0x57e25a;}})[_0x4ba3('0x52')](function(_0x33ee10){logger[_0x4ba3('0x3a')](_0x4ba3('0x63'),_0x33ee10);throw _0x33ee10;});}return _0x57e25a;})['then'](respondWithResult(_0x1ab3fe,0xc9))[_0x4ba3('0x52')](handleError(_0x1ab3fe,null));};exports[_0x4ba3('0x29')]=function(_0x2a48fe,_0x65890d){if(_0x2a48fe[_0x4ba3('0x59')]['id']){delete _0x2a48fe['body']['id'];}return db[_0x4ba3('0x3d')][_0x4ba3('0x37')]({'where':{'id':_0x2a48fe[_0x4ba3('0x54')]['id']}})[_0x4ba3('0x2b')](handleEntityNotFound(_0x65890d,null))[_0x4ba3('0x2b')](function(_0x4070cd){if(_0x4070cd){return db[_0x4ba3('0x3d')][_0x4ba3('0x29')](_[_0x4ba3('0x4b')](_0x2a48fe[_0x4ba3('0x59')],[_0x4ba3('0x5c'),'context',_0x4ba3('0x64'),_0x4ba3('0x65'),'cutdigits','mandatoryDisposition']),{'where':{'context':_0x4070cd[_0x4ba3('0x66')],'exten':_0x4070cd[_0x4ba3('0x5c')]},'individualHooks':!![]})['then'](function(_0x220c83){return _0x220c83;});}return null;})[_0x4ba3('0x2b')](respondWithStatusCode(_0x65890d,null))[_0x4ba3('0x52')](handleError(_0x65890d,null));};exports['addApplications']=function(_0x1f5815,_0x46224,_0x1af489){return db[_0x4ba3('0x3d')][_0x4ba3('0x67')]({'where':{'id':_0x1f5815[_0x4ba3('0x54')]['id']}})['then'](handleEntityNotFound(_0x46224,null))[_0x4ba3('0x2b')](function(_0x2c0408){if(_0x2c0408){return db[_0x4ba3('0x68')]['transaction'](function(_0x3de990){return db[_0x4ba3('0x3d')][_0x4ba3('0x2a')]({'where':{'VoiceExtensionId':_0x1f5815[_0x4ba3('0x54')]['id']},'transaction':_0x3de990})[_0x4ba3('0x2b')](function(_0x2d75a3){var _0x1db4f1=_[_0x4ba3('0x33')](_0x1f5815['body'],function(_0x540f5c){_0x540f5c[_0x4ba3('0x69')]=_0x1f5815['params']['id'];return _0x540f5c;});return db[_0x4ba3('0x3d')][_0x4ba3('0x6a')](_0x1db4f1,{'transaction':_0x3de990});});})[_0x4ba3('0x2b')](function(){return db['VoiceExtension'][_0x4ba3('0x6b')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1f5815[_0x4ba3('0x54')]['id']},'order':_0x4ba3('0x6c')});});}})['then'](respondWithResult(_0x46224,null))[_0x4ba3('0x52')](handleError(_0x46224,null));};