Built motion from commit (unavailable).|2.5.8
[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 _0xa460=['destroy','get','InboundRoutes','outbound','internal','filter','ignore','map','value','includes','find','name','UserProfileResource','error','stack','index','VoiceExtension','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','includeAll','include','findAll','catch','params','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','inbound','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','recordingFormat','cutdigits','context','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then'];(function(_0x1cb926,_0x532dab){var _0xdb7e7c=function(_0x1d6182){while(--_0x1d6182){_0x1cb926['push'](_0x1cb926['shift']());}};_0xdb7e7c(++_0x532dab);}(_0xa460,0x182));var _0x0a46=function(_0x2e891a,_0xb5a3b5){_0x2e891a=_0x2e891a-0x0;var _0x39f989=_0xa460[_0x2e891a];return _0x39f989;};'use strict';var pdf=require(_0x0a46('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0a46('0x1'));var zipdir=require(_0x0a46('0x2'));var jsonpatch=require(_0x0a46('0x3'));var rp=require(_0x0a46('0x4'));var moment=require('moment');var BPromise=require(_0x0a46('0x5'));var Mustache=require(_0x0a46('0x6'));var util=require(_0x0a46('0x7'));var path=require(_0x0a46('0x8'));var sox=require('sox');var csv=require(_0x0a46('0x9'));var ejs=require(_0x0a46('0xa'));var fs=require('fs');var _=require(_0x0a46('0xb'));var squel=require('squel');var crypto=require(_0x0a46('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x0a46('0xd'));var toCsv=require(_0x0a46('0x9'));var querystring=require('querystring');var Papa=require(_0x0a46('0xe'));var Redis=require(_0x0a46('0xf'));var authService=require(_0x0a46('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0a46('0x11'));var hardwareService=require(_0x0a46('0x12'));var logger=require('../../config/logger')(_0x0a46('0x13'));var utils=require(_0x0a46('0x14'));var config=require(_0x0a46('0x15'));var licenseUtil=require(_0x0a46('0x16'));var db=require(_0x0a46('0x17'))['db'];config[_0x0a46('0x18')]=_[_0x0a46('0x19')](config[_0x0a46('0x18')],{'host':_0x0a46('0x1a'),'port':0x18eb});var socket=require(_0x0a46('0x1b'))(new Redis(config[_0x0a46('0x18')]));require('./voiceExtension.socket')[_0x0a46('0x1c')](socket);function respondWithStatusCode(_0x166a0d,_0x5cfe97){_0x5cfe97=_0x5cfe97||0xcc;return function(_0x3eab30){if(_0x3eab30){return _0x166a0d[_0x0a46('0x1d')](_0x5cfe97);}return _0x166a0d[_0x0a46('0x1e')](_0x5cfe97)[_0x0a46('0x1f')]();};}function respondWithResult(_0x46fc2f,_0x38d8bd){_0x38d8bd=_0x38d8bd||0xc8;return function(_0x50a85c){if(_0x50a85c){return _0x46fc2f['status'](_0x38d8bd)[_0x0a46('0x20')](_0x50a85c);}};}function respondWithFilteredResult(_0x42b748,_0x5f48e8){return function(_0x2bbf54){if(_0x2bbf54){var _0x475b1e=_0x2bbf54[_0x0a46('0x21')],_0x377250=_0x5f48e8[_0x0a46('0x22')],_0x2628ac=_0x5f48e8[_0x0a46('0x22')]+_0x5f48e8['limit'],_0x4be641;if(_0x2628ac>=_0x475b1e){_0x2628ac=_0x475b1e;_0x4be641=0xc8;}else{_0x4be641=0xce;}_0x42b748[_0x0a46('0x1e')](_0x4be641);return _0x42b748[_0x0a46('0x23')](_0x0a46('0x24'),_0x377250+'-'+_0x2628ac+'/'+_0x475b1e)[_0x0a46('0x20')](_0x2bbf54);}return null;};}function patchUpdates(_0x50b04e){return function(_0xb7367b){try{jsonpatch[_0x0a46('0x25')](_0xb7367b,_0x50b04e,!![]);}catch(_0x5d3c2e){return BPromise[_0x0a46('0x26')](_0x5d3c2e);}return _0xb7367b[_0x0a46('0x27')]();};}function saveUpdates(_0x3aaf55,_0x33d471){return function(_0x383967){if(_0x383967){return _0x383967[_0x0a46('0x28')](_0x3aaf55)[_0x0a46('0x29')](function(_0x5a9ce2){return _0x5a9ce2;});}return null;};}function removeEntity(_0x1c2810,_0x1fccb9){return function(_0x5d188c){if(_0x5d188c){return _0x5d188c[_0x0a46('0x2a')]()[_0x0a46('0x29')](function(){var _0x4164f3=_0x5d188c[_0x0a46('0x2b')]({'plain':!![]});var _0x3c4e9a=[{'name':_0x0a46('0x2c'),'value':'inbound','ignore':![]},{'name':'OutboundRoutes','value':_0x0a46('0x2d'),'ignore':![]},{'name':'InternalRoutes','value':_0x0a46('0x2e'),'ignore':![]}];var _0x52ba7d=_(_0x3c4e9a)[_0x0a46('0x2f')](_0x0a46('0x30'))[_0x0a46('0x31')](_0x0a46('0x32'))['value']();if(_[_0x0a46('0x33')](_0x52ba7d,_0x4164f3['type'])){return;}var _0x2082ad=_[_0x0a46('0x34')](_0x3c4e9a,[_0x0a46('0x32'),_0x4164f3['type']])[_0x0a46('0x35')];return db[_0x0a46('0x36')][_0x0a46('0x2a')]({'where':{'type':_0x2082ad,'resourceId':_0x4164f3['id']}})['then'](function(){return _0x5d188c;});})[_0x0a46('0x29')](function(){_0x1c2810[_0x0a46('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ed274,_0x38bec3){return function(_0x53db29){if(!_0x53db29){_0x1ed274[_0x0a46('0x1d')](0x194);}return _0x53db29;};}function handleError(_0x52bc4d,_0x3f0af2){_0x3f0af2=_0x3f0af2||0x1f4;return function(_0x3b425e){logger[_0x0a46('0x37')](_0x3b425e[_0x0a46('0x38')]);if(_0x3b425e[_0x0a46('0x35')]){delete _0x3b425e[_0x0a46('0x35')];}_0x52bc4d[_0x0a46('0x1e')](_0x3f0af2)['send'](_0x3b425e);};}exports[_0x0a46('0x39')]=function(_0x1504f6,_0x4df979){var _0x1c67a9={},_0x4b6fd1={},_0x2a5fd4={'count':0x0,'rows':[]};var _0x1459f0=_[_0x0a46('0x31')](db[_0x0a46('0x3a')][_0x0a46('0x3b')],function(_0x5caa8d){return{'name':_0x5caa8d[_0x0a46('0x3c')],'type':_0x5caa8d[_0x0a46('0x3d')][_0x0a46('0x3e')]};});_0x4b6fd1[_0x0a46('0x3f')]=_[_0x0a46('0x31')](_0x1459f0,_0x0a46('0x35'));_0x4b6fd1['query']=_[_0x0a46('0x40')](_0x1504f6[_0x0a46('0x41')]);_0x4b6fd1[_0x0a46('0x42')]=_[_0x0a46('0x43')](_0x4b6fd1[_0x0a46('0x3f')],_0x4b6fd1[_0x0a46('0x41')]);_0x1c67a9[_0x0a46('0x44')]=_[_0x0a46('0x43')](_0x4b6fd1['model'],qs['fields'](_0x1504f6[_0x0a46('0x41')][_0x0a46('0x45')]));_0x1c67a9[_0x0a46('0x44')]=_0x1c67a9['attributes'][_0x0a46('0x46')]?_0x1c67a9[_0x0a46('0x44')]:_0x4b6fd1[_0x0a46('0x3f')];if(!_0x1504f6[_0x0a46('0x41')][_0x0a46('0x47')](_0x0a46('0x48'))){_0x1c67a9['limit']=qs[_0x0a46('0x49')](_0x1504f6[_0x0a46('0x41')][_0x0a46('0x49')]);_0x1c67a9[_0x0a46('0x22')]=qs[_0x0a46('0x22')](_0x1504f6[_0x0a46('0x41')][_0x0a46('0x22')]);}_0x1c67a9[_0x0a46('0x4a')]=qs[_0x0a46('0x4b')](_0x1504f6[_0x0a46('0x41')][_0x0a46('0x4b')]);_0x1c67a9[_0x0a46('0x4c')]=qs[_0x0a46('0x42')](_[_0x0a46('0x4d')](_0x1504f6['query'],_0x4b6fd1[_0x0a46('0x42')]),_0x1459f0);if(_0x1504f6[_0x0a46('0x41')]['filter']){_0x1c67a9['where']=_[_0x0a46('0x4e')](_0x1c67a9[_0x0a46('0x4c')],{'$or':_['map'](_0x1459f0,function(_0x3a27ef){if(_0x3a27ef[_0x0a46('0x3d')]!=='VIRTUAL'){var _0x493a90={};_0x493a90[_0x3a27ef[_0x0a46('0x35')]]={'$like':'%'+_0x1504f6[_0x0a46('0x41')][_0x0a46('0x2f')]+'%'};return _0x493a90;}})});}_0x1c67a9=_['merge']({},_0x1c67a9,_0x1504f6['options']);var _0x1ee44e={'where':_0x1c67a9['where']};return db[_0x0a46('0x3a')][_0x0a46('0x21')](_0x1ee44e)[_0x0a46('0x29')](function(_0x2ad2b8){_0x2a5fd4['count']=_0x2ad2b8;if(_0x1504f6[_0x0a46('0x41')][_0x0a46('0x4f')]){_0x1c67a9[_0x0a46('0x50')]=[{'all':!![]}];}return db['VoiceExtension'][_0x0a46('0x51')](_0x1c67a9);})[_0x0a46('0x29')](function(_0x223763){_0x2a5fd4['rows']=_0x223763;return _0x2a5fd4;})[_0x0a46('0x29')](respondWithFilteredResult(_0x4df979,_0x1c67a9))[_0x0a46('0x52')](handleError(_0x4df979,null));};exports['show']=function(_0x2ec11a,_0x117638){var _0x1c735e={'raw':![],'where':{'id':_0x2ec11a[_0x0a46('0x53')]['id']}},_0xb5deb6={};_0xb5deb6['model']=_[_0x0a46('0x40')](db[_0x0a46('0x3a')]['rawAttributes']);_0xb5deb6[_0x0a46('0x41')]=_[_0x0a46('0x40')](_0x2ec11a[_0x0a46('0x41')]);_0xb5deb6[_0x0a46('0x42')]=_[_0x0a46('0x43')](_0xb5deb6[_0x0a46('0x3f')],_0xb5deb6['query']);_0x1c735e['attributes']=_[_0x0a46('0x43')](_0xb5deb6[_0x0a46('0x3f')],qs['fields'](_0x2ec11a['query'][_0x0a46('0x45')]));_0x1c735e[_0x0a46('0x44')]=_0x1c735e[_0x0a46('0x44')][_0x0a46('0x46')]?_0x1c735e[_0x0a46('0x44')]:_0xb5deb6[_0x0a46('0x3f')];if(_0x2ec11a[_0x0a46('0x41')]['includeAll']){_0x1c735e['include']=[{'all':!![]}];}_0x1c735e=_[_0x0a46('0x4e')]({},_0x1c735e,_0x2ec11a['options']);return db[_0x0a46('0x3a')][_0x0a46('0x34')](_0x1c735e)[_0x0a46('0x29')](handleEntityNotFound(_0x117638,null))[_0x0a46('0x29')](respondWithResult(_0x117638,null))['catch'](handleError(_0x117638,null));};exports[_0x0a46('0x2a')]=function(_0x36c6cc,_0x11c788){return db[_0x0a46('0x3a')][_0x0a46('0x34')]({'where':{'id':_0x36c6cc[_0x0a46('0x53')]['id']}})[_0x0a46('0x29')](handleEntityNotFound(_0x11c788,null))[_0x0a46('0x29')](removeEntity(_0x11c788,null))[_0x0a46('0x52')](handleError(_0x11c788,null));};exports[_0x0a46('0x54')]=function(_0x8794f0,_0x5557fb){if(_0x8794f0[_0x0a46('0x55')]['type']===_0x0a46('0x2d')&&!_[_0x0a46('0x56')](_0x8794f0['body'][_0x0a46('0x57')],'_')){_0x8794f0[_0x0a46('0x55')][_0x0a46('0x57')]='_'[_0x0a46('0x58')](_0x8794f0[_0x0a46('0x55')][_0x0a46('0x57')]);}return db['VoiceExtension']['create'](_0x8794f0[_0x0a46('0x55')],{'raw':![]})[_0x0a46('0x29')](function(_0x46b627){var _0x35b104=_0x8794f0[_0x0a46('0x59')][_0x0a46('0x2b')]({'plain':!![]});if(!_0x35b104)throw new Error(_0x0a46('0x5a'));if(_0x35b104[_0x0a46('0x5b')]===_0x0a46('0x59')){var _0x42a6ec=_0x46b627[_0x0a46('0x2b')]({'plain':!![]});var _0x2f162f=[{'name':'InboundRoutes','value':_0x0a46('0x5c')},{'name':_0x0a46('0x5d'),'value':_0x0a46('0x2d')},{'name':'InternalRoutes','value':'internal'}];var _0x1919a9=_[_0x0a46('0x34')](_0x2f162f,[_0x0a46('0x32'),_0x42a6ec['type']])['name'];return db[_0x0a46('0x5e')][_0x0a46('0x34')]({'where':{'name':_0x1919a9,'userProfileId':_0x35b104[_0x0a46('0x5f')]},'raw':!![]})[_0x0a46('0x29')](function(_0x3e548e){if(_0x3e548e&&_0x3e548e[_0x0a46('0x60')]===0x0){return db[_0x0a46('0x36')]['create']({'name':_0x42a6ec[_0x0a46('0x35')],'resourceId':_0x42a6ec['id'],'type':_0x3e548e['name'],'sectionId':_0x3e548e['id']},{})[_0x0a46('0x29')](function(){return _0x46b627;});}else{return _0x46b627;}})[_0x0a46('0x52')](function(_0x3ff228){logger[_0x0a46('0x37')](_0x0a46('0x61'),_0x3ff228);throw _0x3ff228;});}return _0x46b627;})['then'](respondWithResult(_0x5557fb,0xc9))[_0x0a46('0x52')](handleError(_0x5557fb,null));};exports[_0x0a46('0x28')]=function(_0x3c8786,_0x18274c){if(_0x3c8786[_0x0a46('0x55')]['id']){delete _0x3c8786[_0x0a46('0x55')]['id'];}return db[_0x0a46('0x3a')][_0x0a46('0x34')]({'where':{'id':_0x3c8786['params']['id']}})['then'](handleEntityNotFound(_0x18274c,null))[_0x0a46('0x29')](function(_0x2083eb){if(_0x2083eb){return db[_0x0a46('0x3a')][_0x0a46('0x28')](_[_0x0a46('0x4d')](_0x3c8786[_0x0a46('0x55')],[_0x0a46('0x57'),'context',_0x0a46('0x62'),_0x0a46('0x63'),_0x0a46('0x64'),'mandatoryDisposition']),{'where':{'context':_0x2083eb[_0x0a46('0x65')],'exten':_0x2083eb[_0x0a46('0x57')]},'individualHooks':!![]})[_0x0a46('0x29')](function(_0x1e8c3f){return _0x1e8c3f;});}return null;})['then'](respondWithStatusCode(_0x18274c,null))[_0x0a46('0x52')](handleError(_0x18274c,null));};exports[_0x0a46('0x66')]=function(_0x4a7ec5,_0x498224,_0x44936f){return db[_0x0a46('0x3a')]['findOne']({'where':{'id':_0x4a7ec5[_0x0a46('0x53')]['id']}})[_0x0a46('0x29')](handleEntityNotFound(_0x498224,null))[_0x0a46('0x29')](function(_0x5b28a7){if(_0x5b28a7){return db[_0x0a46('0x67')][_0x0a46('0x68')](function(_0x5611a7){return db[_0x0a46('0x3a')][_0x0a46('0x2a')]({'where':{'VoiceExtensionId':_0x4a7ec5['params']['id']},'transaction':_0x5611a7})['then'](function(_0x3075db){var _0x541a25=_[_0x0a46('0x31')](_0x4a7ec5[_0x0a46('0x55')],function(_0x4a6604){_0x4a6604['VoiceExtensionId']=_0x4a7ec5[_0x0a46('0x53')]['id'];return _0x4a6604;});return db[_0x0a46('0x3a')][_0x0a46('0x69')](_0x541a25,{'transaction':_0x5611a7});});})[_0x0a46('0x29')](function(){return db[_0x0a46('0x3a')][_0x0a46('0x6a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4a7ec5['params']['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})[_0x0a46('0x29')](respondWithResult(_0x498224,null))['catch'](handleError(_0x498224,null));};