Built motion from commit (unavailable).|2.5.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 _0x5c06=['name','UserProfileResource','destroy','send','index','VoiceExtension','fieldName','key','model','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','sort','where','merge','options','count','includeAll','rows','show','params','rawAttributes','include','find','catch','create','body','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','outbound','internal','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','pick','context','recordingFormat','cutdigits','mandatoryDisposition','addApplications','VoiceExtensionId','bulkCreate','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','localhost','./voiceExtension.socket','register','sendStatus','status','json','offset','limit','set','apply','reject','save','then','get','OutboundRoutes','InternalRoutes','filter','ignore','map','value','includes','type'];(function(_0x11ca63,_0xea9f9c){var _0x41f1f6=function(_0xb80b69){while(--_0xb80b69){_0x11ca63['push'](_0x11ca63['shift']());}};_0x41f1f6(++_0xea9f9c);}(_0x5c06,0xa1));var _0x65c0=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x5c06[_0x3b380d];return _0x54502b;};'use strict';var pdf=require(_0x65c0('0x0'));var emlformat=require(_0x65c0('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x65c0('0x2'));var jsonpatch=require(_0x65c0('0x3'));var rp=require(_0x65c0('0x4'));var moment=require(_0x65c0('0x5'));var BPromise=require(_0x65c0('0x6'));var Mustache=require(_0x65c0('0x7'));var util=require(_0x65c0('0x8'));var path=require('path');var sox=require(_0x65c0('0x9'));var csv=require(_0x65c0('0xa'));var ejs=require(_0x65c0('0xb'));var fs=require('fs');var _=require(_0x65c0('0xc'));var squel=require(_0x65c0('0xd'));var crypto=require(_0x65c0('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x65c0('0xf'));var toCsv=require(_0x65c0('0xa'));var querystring=require(_0x65c0('0x10'));var Papa=require(_0x65c0('0x11'));var Redis=require(_0x65c0('0x12'));var authService=require(_0x65c0('0x13'));var qs=require(_0x65c0('0x14'));var as=require(_0x65c0('0x15'));var hardwareService=require(_0x65c0('0x16'));var logger=require(_0x65c0('0x17'))(_0x65c0('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x65c0('0x19'));var db=require(_0x65c0('0x1a'))['db'];config[_0x65c0('0x1b')]=_[_0x65c0('0x1c')](config[_0x65c0('0x1b')],{'host':_0x65c0('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x65c0('0x1b')]));require(_0x65c0('0x1e'))[_0x65c0('0x1f')](socket);function respondWithStatusCode(_0x51c7a7,_0x1ec5d2){_0x1ec5d2=_0x1ec5d2||0xcc;return function(_0x30119f){if(_0x30119f){return _0x51c7a7[_0x65c0('0x20')](_0x1ec5d2);}return _0x51c7a7[_0x65c0('0x21')](_0x1ec5d2)['end']();};}function respondWithResult(_0x4f8cf0,_0x3c0fea){_0x3c0fea=_0x3c0fea||0xc8;return function(_0x4fddb3){if(_0x4fddb3){return _0x4f8cf0['status'](_0x3c0fea)[_0x65c0('0x22')](_0x4fddb3);}};}function respondWithFilteredResult(_0x57d321,_0x177b42){return function(_0x4f6dd9){if(_0x4f6dd9){var _0x178f78=_0x4f6dd9['count'],_0x1c79dd=_0x177b42['offset'],_0x3a4668=_0x177b42[_0x65c0('0x23')]+_0x177b42[_0x65c0('0x24')],_0x532c73;if(_0x3a4668>=_0x178f78){_0x3a4668=_0x178f78;_0x532c73=0xc8;}else{_0x532c73=0xce;}_0x57d321[_0x65c0('0x21')](_0x532c73);return _0x57d321[_0x65c0('0x25')]('Content-Range',_0x1c79dd+'-'+_0x3a4668+'/'+_0x178f78)[_0x65c0('0x22')](_0x4f6dd9);}return null;};}function patchUpdates(_0x3af63f){return function(_0x25c6fe){try{jsonpatch[_0x65c0('0x26')](_0x25c6fe,_0x3af63f,!![]);}catch(_0x4c9dbb){return BPromise[_0x65c0('0x27')](_0x4c9dbb);}return _0x25c6fe[_0x65c0('0x28')]();};}function saveUpdates(_0x25901f,_0x3c3d75){return function(_0x347030){if(_0x347030){return _0x347030['update'](_0x25901f)[_0x65c0('0x29')](function(_0x990a66){return _0x990a66;});}return null;};}function removeEntity(_0x56e3f7,_0x3ce18b){return function(_0x418147){if(_0x418147){return _0x418147['destroy']()[_0x65c0('0x29')](function(){var _0x4ae7af=_0x418147[_0x65c0('0x2a')]({'plain':!![]});var _0x168e7f=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0x65c0('0x2b'),'value':'outbound','ignore':![]},{'name':_0x65c0('0x2c'),'value':'internal','ignore':![]}];var _0x3f26b9=_(_0x168e7f)[_0x65c0('0x2d')](_0x65c0('0x2e'))[_0x65c0('0x2f')](_0x65c0('0x30'))[_0x65c0('0x30')]();if(_[_0x65c0('0x31')](_0x3f26b9,_0x4ae7af[_0x65c0('0x32')])){return;}var _0x1917dc=_['find'](_0x168e7f,[_0x65c0('0x30'),_0x4ae7af[_0x65c0('0x32')]])[_0x65c0('0x33')];return db[_0x65c0('0x34')][_0x65c0('0x35')]({'where':{'type':_0x1917dc,'resourceId':_0x4ae7af['id']}})[_0x65c0('0x29')](function(){return _0x418147;});})[_0x65c0('0x29')](function(){_0x56e3f7[_0x65c0('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e7fe6,_0x36b5a7){return function(_0x2a9872){if(!_0x2a9872){_0x1e7fe6[_0x65c0('0x20')](0x194);}return _0x2a9872;};}function handleError(_0x2d6ddc,_0x3d6b79){_0x3d6b79=_0x3d6b79||0x1f4;return function(_0x3efec9){logger['error'](_0x3efec9['stack']);if(_0x3efec9[_0x65c0('0x33')]){delete _0x3efec9[_0x65c0('0x33')];}_0x2d6ddc[_0x65c0('0x21')](_0x3d6b79)[_0x65c0('0x36')](_0x3efec9);};}exports[_0x65c0('0x37')]=function(_0x1b1a2d,_0x5b4cc4){var _0xa7c48d={},_0x4a40e4={},_0x29e070={'count':0x0,'rows':[]};var _0x51e795=_[_0x65c0('0x2f')](db[_0x65c0('0x38')]['rawAttributes'],function(_0x21ac5b){return{'name':_0x21ac5b[_0x65c0('0x39')],'type':_0x21ac5b[_0x65c0('0x32')][_0x65c0('0x3a')]};});_0x4a40e4[_0x65c0('0x3b')]=_[_0x65c0('0x2f')](_0x51e795,_0x65c0('0x33'));_0x4a40e4['query']=_[_0x65c0('0x3c')](_0x1b1a2d['query']);_0x4a40e4[_0x65c0('0x3d')]=_[_0x65c0('0x3e')](_0x4a40e4[_0x65c0('0x3b')],_0x4a40e4[_0x65c0('0x3f')]);_0xa7c48d['attributes']=_[_0x65c0('0x3e')](_0x4a40e4[_0x65c0('0x3b')],qs[_0x65c0('0x40')](_0x1b1a2d[_0x65c0('0x3f')][_0x65c0('0x40')]));_0xa7c48d['attributes']=_0xa7c48d[_0x65c0('0x41')][_0x65c0('0x42')]?_0xa7c48d['attributes']:_0x4a40e4[_0x65c0('0x3b')];if(!_0x1b1a2d[_0x65c0('0x3f')][_0x65c0('0x43')](_0x65c0('0x44'))){_0xa7c48d['limit']=qs[_0x65c0('0x24')](_0x1b1a2d[_0x65c0('0x3f')]['limit']);_0xa7c48d[_0x65c0('0x23')]=qs['offset'](_0x1b1a2d['query'][_0x65c0('0x23')]);}_0xa7c48d['order']=qs[_0x65c0('0x45')](_0x1b1a2d[_0x65c0('0x3f')][_0x65c0('0x45')]);_0xa7c48d[_0x65c0('0x46')]=qs[_0x65c0('0x3d')](_['pick'](_0x1b1a2d['query'],_0x4a40e4[_0x65c0('0x3d')]),_0x51e795);if(_0x1b1a2d['query'][_0x65c0('0x2d')]){_0xa7c48d[_0x65c0('0x46')]=_[_0x65c0('0x47')](_0xa7c48d[_0x65c0('0x46')],{'$or':_[_0x65c0('0x2f')](_0x51e795,function(_0x4d3d7c){if(_0x4d3d7c[_0x65c0('0x32')]!=='VIRTUAL'){var _0x389341={};_0x389341[_0x4d3d7c[_0x65c0('0x33')]]={'$like':'%'+_0x1b1a2d[_0x65c0('0x3f')][_0x65c0('0x2d')]+'%'};return _0x389341;}})});}_0xa7c48d=_[_0x65c0('0x47')]({},_0xa7c48d,_0x1b1a2d[_0x65c0('0x48')]);var _0x5b9443={'where':_0xa7c48d[_0x65c0('0x46')]};return db[_0x65c0('0x38')][_0x65c0('0x49')](_0x5b9443)[_0x65c0('0x29')](function(_0xbb2766){_0x29e070[_0x65c0('0x49')]=_0xbb2766;if(_0x1b1a2d[_0x65c0('0x3f')][_0x65c0('0x4a')]){_0xa7c48d['include']=[{'all':!![]}];}return db[_0x65c0('0x38')]['findAll'](_0xa7c48d);})['then'](function(_0x2ceef2){_0x29e070[_0x65c0('0x4b')]=_0x2ceef2;return _0x29e070;})[_0x65c0('0x29')](respondWithFilteredResult(_0x5b4cc4,_0xa7c48d))['catch'](handleError(_0x5b4cc4,null));};exports[_0x65c0('0x4c')]=function(_0xad46a5,_0x1fd426){var _0x411949={'raw':![],'where':{'id':_0xad46a5[_0x65c0('0x4d')]['id']}},_0x1ddc33={};_0x1ddc33['model']=_['keys'](db[_0x65c0('0x38')][_0x65c0('0x4e')]);_0x1ddc33['query']=_['keys'](_0xad46a5[_0x65c0('0x3f')]);_0x1ddc33[_0x65c0('0x3d')]=_[_0x65c0('0x3e')](_0x1ddc33[_0x65c0('0x3b')],_0x1ddc33[_0x65c0('0x3f')]);_0x411949[_0x65c0('0x41')]=_[_0x65c0('0x3e')](_0x1ddc33[_0x65c0('0x3b')],qs[_0x65c0('0x40')](_0xad46a5[_0x65c0('0x3f')][_0x65c0('0x40')]));_0x411949[_0x65c0('0x41')]=_0x411949[_0x65c0('0x41')]['length']?_0x411949[_0x65c0('0x41')]:_0x1ddc33[_0x65c0('0x3b')];if(_0xad46a5['query'][_0x65c0('0x4a')]){_0x411949[_0x65c0('0x4f')]=[{'all':!![]}];}_0x411949=_[_0x65c0('0x47')]({},_0x411949,_0xad46a5['options']);return db[_0x65c0('0x38')][_0x65c0('0x50')](_0x411949)[_0x65c0('0x29')](handleEntityNotFound(_0x1fd426,null))[_0x65c0('0x29')](respondWithResult(_0x1fd426,null))['catch'](handleError(_0x1fd426,null));};exports['destroy']=function(_0x15a58f,_0x514486){return db[_0x65c0('0x38')]['find']({'where':{'id':_0x15a58f[_0x65c0('0x4d')]['id']}})[_0x65c0('0x29')](handleEntityNotFound(_0x514486,null))[_0x65c0('0x29')](removeEntity(_0x514486,null))[_0x65c0('0x51')](handleError(_0x514486,null));};exports[_0x65c0('0x52')]=function(_0x390d71,_0x3f69e4){if(_0x390d71[_0x65c0('0x53')][_0x65c0('0x32')]==='outbound'&&!_[_0x65c0('0x54')](_0x390d71[_0x65c0('0x53')][_0x65c0('0x55')],'_')){_0x390d71[_0x65c0('0x53')][_0x65c0('0x55')]='_'['concat'](_0x390d71[_0x65c0('0x53')][_0x65c0('0x55')]);}return db[_0x65c0('0x38')][_0x65c0('0x52')](_0x390d71[_0x65c0('0x53')],{'raw':![]})['then'](function(_0x5bac57){var _0x2d7f42=_0x390d71[_0x65c0('0x56')][_0x65c0('0x2a')]({'plain':!![]});if(!_0x2d7f42)throw new Error(_0x65c0('0x57'));if(_0x2d7f42[_0x65c0('0x58')]===_0x65c0('0x56')){var _0x3e2a18=_0x5bac57[_0x65c0('0x2a')]({'plain':!![]});var _0x295e36=[{'name':_0x65c0('0x59'),'value':'inbound'},{'name':'OutboundRoutes','value':_0x65c0('0x5a')},{'name':_0x65c0('0x2c'),'value':_0x65c0('0x5b')}];var _0x2850e6=_[_0x65c0('0x50')](_0x295e36,[_0x65c0('0x30'),_0x3e2a18['type']])[_0x65c0('0x33')];return db[_0x65c0('0x5c')][_0x65c0('0x50')]({'where':{'name':_0x2850e6,'userProfileId':_0x2d7f42[_0x65c0('0x5d')]},'raw':!![]})[_0x65c0('0x29')](function(_0x3e8398){if(_0x3e8398&&_0x3e8398['autoAssociation']===0x0){return db[_0x65c0('0x34')]['create']({'name':_0x3e2a18['name'],'resourceId':_0x3e2a18['id'],'type':_0x3e8398[_0x65c0('0x33')],'sectionId':_0x3e8398['id']},{})[_0x65c0('0x29')](function(){return _0x5bac57;});}else{return _0x5bac57;}})[_0x65c0('0x51')](function(_0x1b12a8){logger[_0x65c0('0x5e')](_0x65c0('0x5f'),_0x1b12a8);throw _0x1b12a8;});}return _0x5bac57;})[_0x65c0('0x29')](respondWithResult(_0x3f69e4,0xc9))[_0x65c0('0x51')](handleError(_0x3f69e4,null));};exports[_0x65c0('0x60')]=function(_0x2e885b,_0x306b3b){if(_0x2e885b[_0x65c0('0x53')]['id']){delete _0x2e885b[_0x65c0('0x53')]['id'];}return db[_0x65c0('0x38')][_0x65c0('0x50')]({'where':{'id':_0x2e885b[_0x65c0('0x4d')]['id']}})['then'](handleEntityNotFound(_0x306b3b,null))['then'](function(_0x137b5d){if(_0x137b5d){return db[_0x65c0('0x38')][_0x65c0('0x60')](_[_0x65c0('0x61')](_0x2e885b[_0x65c0('0x53')],[_0x65c0('0x55'),_0x65c0('0x62'),'description',_0x65c0('0x63'),_0x65c0('0x64'),_0x65c0('0x65')]),{'where':{'context':_0x137b5d[_0x65c0('0x62')],'exten':_0x137b5d[_0x65c0('0x55')]},'individualHooks':!![]})[_0x65c0('0x29')](function(_0x7db0a0){return _0x7db0a0;});}return null;})[_0x65c0('0x29')](respondWithStatusCode(_0x306b3b,null))[_0x65c0('0x51')](handleError(_0x306b3b,null));};exports[_0x65c0('0x66')]=function(_0x497002,_0x3d4cb9,_0x26b5e0){return db[_0x65c0('0x38')]['findOne']({'where':{'id':_0x497002['params']['id']}})['then'](handleEntityNotFound(_0x3d4cb9,null))['then'](function(_0x1eecdc){if(_0x1eecdc){return db['sequelize']['transaction'](function(_0x53dd2c){return db[_0x65c0('0x38')]['destroy']({'where':{'VoiceExtensionId':_0x497002[_0x65c0('0x4d')]['id']},'transaction':_0x53dd2c})[_0x65c0('0x29')](function(_0x531bfa){var _0x21bdd9=_[_0x65c0('0x2f')](_0x497002[_0x65c0('0x53')],function(_0x15843a){_0x15843a[_0x65c0('0x67')]=_0x497002[_0x65c0('0x4d')]['id'];return _0x15843a;});return db['VoiceExtension'][_0x65c0('0x68')](_0x21bdd9,{'transaction':_0x53dd2c});});})[_0x65c0('0x29')](function(){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x497002[_0x65c0('0x4d')]['id']},'order':_0x65c0('0x69')});});}})[_0x65c0('0x29')](respondWithResult(_0x3d4cb9,null))['catch'](handleError(_0x3d4cb9,null));};