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 _0xc896=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','json','offset','set','apply','reject','save','update','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','internal','filter','map','value','type','find','name','UserProfileResource','destroy','error','stack','index','VoiceExtension','rawAttributes','fieldName','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','filters','pick','where','VIRTUAL','merge','options','count','includeAll','catch','show','create','body','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','description','recordingFormat','cutdigits','mandatoryDisposition','addApplications','findOne','sequelize','transaction','VoiceExtensionId','findAndCountAll','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis'];(function(_0x3dfc6a,_0x3f5c71){var _0x1872ba=function(_0x27f009){while(--_0x27f009){_0x3dfc6a['push'](_0x3dfc6a['shift']());}};_0x1872ba(++_0x3f5c71);}(_0xc896,0x184));var _0x6c89=function(_0x59c4e8,_0x4a736b){_0x59c4e8=_0x59c4e8-0x0;var _0x1c15e8=_0xc896[_0x59c4e8];return _0x1c15e8;};'use strict';var pdf=require(_0x6c89('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6c89('0x1'));var zipdir=require(_0x6c89('0x2'));var jsonpatch=require(_0x6c89('0x3'));var rp=require(_0x6c89('0x4'));var moment=require(_0x6c89('0x5'));var BPromise=require(_0x6c89('0x6'));var Mustache=require('mustache');var util=require(_0x6c89('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x6c89('0x8'));var ejs=require(_0x6c89('0x9'));var fs=require('fs');var _=require(_0x6c89('0xa'));var squel=require(_0x6c89('0xb'));var crypto=require('crypto');var jsforce=require(_0x6c89('0xc'));var deskjs=require(_0x6c89('0xd'));var toCsv=require(_0x6c89('0x8'));var querystring=require('querystring');var Papa=require(_0x6c89('0xe'));var Redis=require(_0x6c89('0xf'));var authService=require(_0x6c89('0x10'));var qs=require(_0x6c89('0x11'));var as=require(_0x6c89('0x12'));var hardwareService=require(_0x6c89('0x13'));var logger=require(_0x6c89('0x14'))(_0x6c89('0x15'));var utils=require('../../config/utils');var config=require(_0x6c89('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x6c89('0x17'))['db'];config[_0x6c89('0x18')]=_[_0x6c89('0x19')](config['redis'],{'host':_0x6c89('0x1a'),'port':0x18eb});var socket=require(_0x6c89('0x1b'))(new Redis(config[_0x6c89('0x18')]));require(_0x6c89('0x1c'))[_0x6c89('0x1d')](socket);function respondWithStatusCode(_0x4c66f1,_0x1e3463){_0x1e3463=_0x1e3463||0xcc;return function(_0x37add9){if(_0x37add9){return _0x4c66f1[_0x6c89('0x1e')](_0x1e3463);}return _0x4c66f1[_0x6c89('0x1f')](_0x1e3463)['end']();};}function respondWithResult(_0x469f66,_0x18152f){_0x18152f=_0x18152f||0xc8;return function(_0x46ba02){if(_0x46ba02){return _0x469f66['status'](_0x18152f)[_0x6c89('0x20')](_0x46ba02);}};}function respondWithFilteredResult(_0x684e4f,_0x14ada5){return function(_0x3a2d62){if(_0x3a2d62){var _0x3ad539=_0x3a2d62['count'],_0x496daa=_0x14ada5[_0x6c89('0x21')],_0x265a21=_0x14ada5[_0x6c89('0x21')]+_0x14ada5['limit'],_0x4bc10e;if(_0x265a21>=_0x3ad539){_0x265a21=_0x3ad539;_0x4bc10e=0xc8;}else{_0x4bc10e=0xce;}_0x684e4f[_0x6c89('0x1f')](_0x4bc10e);return _0x684e4f[_0x6c89('0x22')]('Content-Range',_0x496daa+'-'+_0x265a21+'/'+_0x3ad539)['json'](_0x3a2d62);}return null;};}function patchUpdates(_0x1fbee6){return function(_0x290f4b){try{jsonpatch[_0x6c89('0x23')](_0x290f4b,_0x1fbee6,!![]);}catch(_0x1f8287){return BPromise[_0x6c89('0x24')](_0x1f8287);}return _0x290f4b[_0x6c89('0x25')]();};}function saveUpdates(_0x1b217f,_0x237104){return function(_0x2b36ab){if(_0x2b36ab){return _0x2b36ab[_0x6c89('0x26')](_0x1b217f)[_0x6c89('0x27')](function(_0x1d99c7){return _0x1d99c7;});}return null;};}function removeEntity(_0x53759f,_0x5173df){return function(_0x496109){if(_0x496109){return _0x496109['destroy']()[_0x6c89('0x27')](function(){var _0x4043c2=_0x496109[_0x6c89('0x28')]({'plain':!![]});var _0x3040bc=[{'name':_0x6c89('0x29'),'value':_0x6c89('0x2a'),'ignore':![]},{'name':_0x6c89('0x2b'),'value':_0x6c89('0x2c'),'ignore':![]},{'name':'InternalRoutes','value':_0x6c89('0x2d'),'ignore':![]}];var _0x55ad12=_(_0x3040bc)[_0x6c89('0x2e')]('ignore')[_0x6c89('0x2f')](_0x6c89('0x30'))[_0x6c89('0x30')]();if(_['includes'](_0x55ad12,_0x4043c2[_0x6c89('0x31')])){return;}var _0x444fb0=_[_0x6c89('0x32')](_0x3040bc,[_0x6c89('0x30'),_0x4043c2[_0x6c89('0x31')]])[_0x6c89('0x33')];return db[_0x6c89('0x34')][_0x6c89('0x35')]({'where':{'type':_0x444fb0,'resourceId':_0x4043c2['id']}})['then'](function(){return _0x496109;});})[_0x6c89('0x27')](function(){_0x53759f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x186cec,_0x2b7341){return function(_0x4518d3){if(!_0x4518d3){_0x186cec['sendStatus'](0x194);}return _0x4518d3;};}function handleError(_0x5b99e7,_0x471857){_0x471857=_0x471857||0x1f4;return function(_0x561afc){logger[_0x6c89('0x36')](_0x561afc[_0x6c89('0x37')]);if(_0x561afc['name']){delete _0x561afc[_0x6c89('0x33')];}_0x5b99e7[_0x6c89('0x1f')](_0x471857)['send'](_0x561afc);};}exports[_0x6c89('0x38')]=function(_0x218d77,_0x32e8af){var _0x85b0eb={},_0x2ac279={},_0x1cc3ba={'count':0x0,'rows':[]};var _0x448195=_['map'](db[_0x6c89('0x39')][_0x6c89('0x3a')],function(_0x23c9f8){return{'name':_0x23c9f8[_0x6c89('0x3b')],'type':_0x23c9f8[_0x6c89('0x31')]['key']};});_0x2ac279['model']=_[_0x6c89('0x2f')](_0x448195,_0x6c89('0x33'));_0x2ac279[_0x6c89('0x3c')]=_[_0x6c89('0x3d')](_0x218d77[_0x6c89('0x3c')]);_0x2ac279['filters']=_[_0x6c89('0x3e')](_0x2ac279[_0x6c89('0x3f')],_0x2ac279[_0x6c89('0x3c')]);_0x85b0eb['attributes']=_[_0x6c89('0x3e')](_0x2ac279[_0x6c89('0x3f')],qs[_0x6c89('0x40')](_0x218d77[_0x6c89('0x3c')]['fields']));_0x85b0eb[_0x6c89('0x41')]=_0x85b0eb[_0x6c89('0x41')][_0x6c89('0x42')]?_0x85b0eb[_0x6c89('0x41')]:_0x2ac279['model'];if(!_0x218d77['query'][_0x6c89('0x43')](_0x6c89('0x44'))){_0x85b0eb[_0x6c89('0x45')]=qs[_0x6c89('0x45')](_0x218d77['query']['limit']);_0x85b0eb['offset']=qs[_0x6c89('0x21')](_0x218d77['query'][_0x6c89('0x21')]);}_0x85b0eb[_0x6c89('0x46')]=qs['sort'](_0x218d77[_0x6c89('0x3c')]['sort']);_0x85b0eb['where']=qs[_0x6c89('0x47')](_[_0x6c89('0x48')](_0x218d77[_0x6c89('0x3c')],_0x2ac279[_0x6c89('0x47')]),_0x448195);if(_0x218d77[_0x6c89('0x3c')][_0x6c89('0x2e')]){_0x85b0eb[_0x6c89('0x49')]=_['merge'](_0x85b0eb[_0x6c89('0x49')],{'$or':_[_0x6c89('0x2f')](_0x448195,function(_0x343620){if(_0x343620[_0x6c89('0x31')]!==_0x6c89('0x4a')){var _0x39a9da={};_0x39a9da[_0x343620[_0x6c89('0x33')]]={'$like':'%'+_0x218d77['query'][_0x6c89('0x2e')]+'%'};return _0x39a9da;}})});}_0x85b0eb=_[_0x6c89('0x4b')]({},_0x85b0eb,_0x218d77[_0x6c89('0x4c')]);var _0x59b941={'where':_0x85b0eb[_0x6c89('0x49')]};return db[_0x6c89('0x39')][_0x6c89('0x4d')](_0x59b941)['then'](function(_0x2ad8e7){_0x1cc3ba[_0x6c89('0x4d')]=_0x2ad8e7;if(_0x218d77[_0x6c89('0x3c')][_0x6c89('0x4e')]){_0x85b0eb['include']=[{'all':!![]}];}return db[_0x6c89('0x39')]['findAll'](_0x85b0eb);})[_0x6c89('0x27')](function(_0x437066){_0x1cc3ba['rows']=_0x437066;return _0x1cc3ba;})['then'](respondWithFilteredResult(_0x32e8af,_0x85b0eb))[_0x6c89('0x4f')](handleError(_0x32e8af,null));};exports[_0x6c89('0x50')]=function(_0x39a357,_0x49afc2){var _0x46257c={'raw':![],'where':{'id':_0x39a357['params']['id']}},_0x583953={};_0x583953[_0x6c89('0x3f')]=_[_0x6c89('0x3d')](db[_0x6c89('0x39')][_0x6c89('0x3a')]);_0x583953[_0x6c89('0x3c')]=_[_0x6c89('0x3d')](_0x39a357['query']);_0x583953[_0x6c89('0x47')]=_[_0x6c89('0x3e')](_0x583953[_0x6c89('0x3f')],_0x583953['query']);_0x46257c['attributes']=_[_0x6c89('0x3e')](_0x583953['model'],qs[_0x6c89('0x40')](_0x39a357[_0x6c89('0x3c')][_0x6c89('0x40')]));_0x46257c['attributes']=_0x46257c[_0x6c89('0x41')][_0x6c89('0x42')]?_0x46257c['attributes']:_0x583953[_0x6c89('0x3f')];if(_0x39a357[_0x6c89('0x3c')]['includeAll']){_0x46257c['include']=[{'all':!![]}];}_0x46257c=_[_0x6c89('0x4b')]({},_0x46257c,_0x39a357[_0x6c89('0x4c')]);return db[_0x6c89('0x39')][_0x6c89('0x32')](_0x46257c)['then'](handleEntityNotFound(_0x49afc2,null))[_0x6c89('0x27')](respondWithResult(_0x49afc2,null))[_0x6c89('0x4f')](handleError(_0x49afc2,null));};exports[_0x6c89('0x35')]=function(_0x57e557,_0x4308b0){return db[_0x6c89('0x39')][_0x6c89('0x32')]({'where':{'id':_0x57e557['params']['id']}})[_0x6c89('0x27')](handleEntityNotFound(_0x4308b0,null))['then'](removeEntity(_0x4308b0,null))['catch'](handleError(_0x4308b0,null));};exports[_0x6c89('0x51')]=function(_0x42a67c,_0xf0055f){if(_0x42a67c[_0x6c89('0x52')]['type']===_0x6c89('0x2c')&&!_['startsWith'](_0x42a67c['body']['exten'],'_')){_0x42a67c[_0x6c89('0x52')][_0x6c89('0x53')]='_'[_0x6c89('0x54')](_0x42a67c[_0x6c89('0x52')][_0x6c89('0x53')]);}return db[_0x6c89('0x39')]['create'](_0x42a67c['body'],{'raw':![]})['then'](function(_0x1d43d0){var _0x167204=_0x42a67c[_0x6c89('0x55')][_0x6c89('0x28')]({'plain':!![]});if(!_0x167204)throw new Error(_0x6c89('0x56'));if(_0x167204[_0x6c89('0x57')]==='user'){var _0x15b34a=_0x1d43d0[_0x6c89('0x28')]({'plain':!![]});var _0x4d9b98=[{'name':_0x6c89('0x29'),'value':_0x6c89('0x2a')},{'name':_0x6c89('0x2b'),'value':_0x6c89('0x2c')},{'name':'InternalRoutes','value':'internal'}];var _0x34d329=_[_0x6c89('0x32')](_0x4d9b98,[_0x6c89('0x30'),_0x15b34a[_0x6c89('0x31')]])[_0x6c89('0x33')];return db[_0x6c89('0x58')][_0x6c89('0x32')]({'where':{'name':_0x34d329,'userProfileId':_0x167204['userProfileId']},'raw':!![]})[_0x6c89('0x27')](function(_0x55aca9){if(_0x55aca9&&_0x55aca9['autoAssociation']===0x0){return db[_0x6c89('0x34')][_0x6c89('0x51')]({'name':_0x15b34a[_0x6c89('0x33')],'resourceId':_0x15b34a['id'],'type':_0x55aca9[_0x6c89('0x33')],'sectionId':_0x55aca9['id']},{})['then'](function(){return _0x1d43d0;});}else{return _0x1d43d0;}})['catch'](function(_0x48fcb8){logger[_0x6c89('0x36')](_0x6c89('0x59'),_0x48fcb8);throw _0x48fcb8;});}return _0x1d43d0;})[_0x6c89('0x27')](respondWithResult(_0xf0055f,0xc9))[_0x6c89('0x4f')](handleError(_0xf0055f,null));};exports[_0x6c89('0x26')]=function(_0x30f837,_0x180437){if(_0x30f837[_0x6c89('0x52')]['id']){delete _0x30f837[_0x6c89('0x52')]['id'];}return db['VoiceExtension'][_0x6c89('0x32')]({'where':{'id':_0x30f837[_0x6c89('0x5a')]['id']}})[_0x6c89('0x27')](handleEntityNotFound(_0x180437,null))['then'](function(_0xabc05b){if(_0xabc05b){return db[_0x6c89('0x39')][_0x6c89('0x26')](_[_0x6c89('0x48')](_0x30f837[_0x6c89('0x52')],[_0x6c89('0x53'),'context',_0x6c89('0x5b'),_0x6c89('0x5c'),_0x6c89('0x5d'),_0x6c89('0x5e')]),{'where':{'context':_0xabc05b['context'],'exten':_0xabc05b[_0x6c89('0x53')]},'individualHooks':!![]})[_0x6c89('0x27')](function(_0x2e0c3c){return _0x2e0c3c;});}return null;})[_0x6c89('0x27')](respondWithStatusCode(_0x180437,null))['catch'](handleError(_0x180437,null));};exports[_0x6c89('0x5f')]=function(_0x32a73c,_0x5303ae,_0x27d901){return db[_0x6c89('0x39')][_0x6c89('0x60')]({'where':{'id':_0x32a73c['params']['id']}})[_0x6c89('0x27')](handleEntityNotFound(_0x5303ae,null))[_0x6c89('0x27')](function(_0x12f584){if(_0x12f584){return db[_0x6c89('0x61')][_0x6c89('0x62')](function(_0x7d786c){return db[_0x6c89('0x39')][_0x6c89('0x35')]({'where':{'VoiceExtensionId':_0x32a73c['params']['id']},'transaction':_0x7d786c})[_0x6c89('0x27')](function(_0xf6290d){var _0x17fa89=_[_0x6c89('0x2f')](_0x32a73c[_0x6c89('0x52')],function(_0x38dbf4){_0x38dbf4[_0x6c89('0x63')]=_0x32a73c['params']['id'];return _0x38dbf4;});return db[_0x6c89('0x39')]['bulkCreate'](_0x17fa89,{'transaction':_0x7d786c});});})[_0x6c89('0x27')](function(){return db[_0x6c89('0x39')][_0x6c89('0x64')]({'where':{'isApp':!![],'VoiceExtensionId':_0x32a73c[_0x6c89('0x5a')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0x5303ae,null))[_0x6c89('0x4f')](handleError(_0x5303ae,null));};