Built motion from commit (unavailable).|2.5.31
[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 _0x147c=['hasOwnProperty','nolimit','order','sort','where','pick','merge','options','VoiceExtension','includeAll','findAll','rows','catch','show','params','include','create','startsWith','body','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','inbound','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','recordingFormat','mandatoryDisposition','context','addApplications','findOne','transaction','VoiceExtensionId','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','status','offset','undefined','limit','count','set','json','reject','save','update','destroy','get','InboundRoutes','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','find','type','UserProfileResource','then','sendStatus','error','stack','name','send','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','length'];(function(_0x37ffea,_0x25b006){var _0x2e2615=function(_0x5e6c74){while(--_0x5e6c74){_0x37ffea['push'](_0x37ffea['shift']());}};_0x2e2615(++_0x25b006);}(_0x147c,0x91));var _0xc147=function(_0x11f249,_0x4ca4a8){_0x11f249=_0x11f249-0x0;var _0x5c3656=_0x147c[_0x11f249];return _0x5c3656;};'use strict';var emlformat=require(_0xc147('0x0'));var rimraf=require(_0xc147('0x1'));var zipdir=require(_0xc147('0x2'));var jsonpatch=require(_0xc147('0x3'));var rp=require(_0xc147('0x4'));var moment=require('moment');var BPromise=require(_0xc147('0x5'));var Mustache=require(_0xc147('0x6'));var util=require(_0xc147('0x7'));var path=require(_0xc147('0x8'));var sox=require(_0xc147('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc147('0xa'));var _=require(_0xc147('0xb'));var squel=require(_0xc147('0xc'));var crypto=require(_0xc147('0xd'));var jsforce=require(_0xc147('0xe'));var deskjs=require(_0xc147('0xf'));var toCsv=require(_0xc147('0x10'));var querystring=require(_0xc147('0x11'));var Papa=require(_0xc147('0x12'));var Redis=require(_0xc147('0x13'));var authService=require(_0xc147('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc147('0x15'));var logger=require('../../config/logger')(_0xc147('0x16'));var utils=require(_0xc147('0x17'));var config=require(_0xc147('0x18'));var licenseUtil=require(_0xc147('0x19'));var db=require('../../mysqldb')['db'];config[_0xc147('0x1a')]=_[_0xc147('0x1b')](config[_0xc147('0x1a')],{'host':_0xc147('0x1c'),'port':0x18eb});var socket=require(_0xc147('0x1d'))(new Redis(config['redis']));require(_0xc147('0x1e'))[_0xc147('0x1f')](socket);function respondWithStatusCode(_0x234aa9,_0x438365){_0x438365=_0x438365||0xcc;return function(_0x5ad493){if(_0x5ad493){return _0x234aa9['sendStatus'](_0x438365);}return _0x234aa9[_0xc147('0x20')](_0x438365)['end']();};}function respondWithResult(_0x9be7de,_0x2d8017){_0x2d8017=_0x2d8017||0xc8;return function(_0x40a576){if(_0x40a576){return _0x9be7de[_0xc147('0x20')](_0x2d8017)['json'](_0x40a576);}};}function respondWithFilteredResult(_0x1666f3,_0x42808c){return function(_0x2845e1){if(_0x2845e1){var _0x30487e=typeof _0x42808c[_0xc147('0x21')]===_0xc147('0x22')&&typeof _0x42808c[_0xc147('0x23')]==='undefined';var _0x18a9ad=_0x2845e1[_0xc147('0x24')];var _0x1825eb=_0x30487e?0x0:_0x42808c[_0xc147('0x21')];var _0x1d725d=_0x30487e?_0x2845e1[_0xc147('0x24')]:_0x42808c['offset']+_0x42808c[_0xc147('0x23')];var _0x5628d7;if(_0x1d725d>=_0x18a9ad){_0x1d725d=_0x18a9ad;_0x5628d7=0xc8;}else{_0x5628d7=0xce;}_0x1666f3[_0xc147('0x20')](_0x5628d7);return _0x1666f3[_0xc147('0x25')]('Content-Range',_0x1825eb+'-'+_0x1d725d+'/'+_0x18a9ad)[_0xc147('0x26')](_0x2845e1);}return null;};}function patchUpdates(_0x39acc5){return function(_0x48fe14){try{jsonpatch['apply'](_0x48fe14,_0x39acc5,!![]);}catch(_0x4ccb45){return BPromise[_0xc147('0x27')](_0x4ccb45);}return _0x48fe14[_0xc147('0x28')]();};}function saveUpdates(_0xea556e,_0x3af8d7){return function(_0x2dcd33){if(_0x2dcd33){return _0x2dcd33[_0xc147('0x29')](_0xea556e)['then'](function(_0x29e779){return _0x29e779;});}return null;};}function removeEntity(_0x146b48,_0x5c1917){return function(_0x4e772f){if(_0x4e772f){return _0x4e772f[_0xc147('0x2a')]()['then'](function(){var _0x4b1bfc=_0x4e772f[_0xc147('0x2b')]({'plain':!![]});var _0x2047b5=[{'name':_0xc147('0x2c'),'value':'inbound','ignore':![]},{'name':_0xc147('0x2d'),'value':_0xc147('0x2e'),'ignore':![]},{'name':_0xc147('0x2f'),'value':_0xc147('0x30'),'ignore':![]}];var _0x8093b5=_(_0x2047b5)[_0xc147('0x31')](_0xc147('0x32'))[_0xc147('0x33')]('value')[_0xc147('0x34')]();if(_[_0xc147('0x35')](_0x8093b5,_0x4b1bfc['type'])){return;}var _0x4726ee=_[_0xc147('0x36')](_0x2047b5,[_0xc147('0x34'),_0x4b1bfc[_0xc147('0x37')]])['name'];return db[_0xc147('0x38')][_0xc147('0x2a')]({'where':{'type':_0x4726ee,'resourceId':_0x4b1bfc['id']}})[_0xc147('0x39')](function(){return _0x4e772f;});})[_0xc147('0x39')](function(){_0x146b48[_0xc147('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ff015,_0x4f9f65){return function(_0x4b3d6b){if(!_0x4b3d6b){_0x4ff015[_0xc147('0x3a')](0x194);}return _0x4b3d6b;};}function handleError(_0x270268,_0x259807){_0x259807=_0x259807||0x1f4;return function(_0x381795){logger[_0xc147('0x3b')](_0x381795[_0xc147('0x3c')]);if(_0x381795[_0xc147('0x3d')]){delete _0x381795['name'];}_0x270268[_0xc147('0x20')](_0x259807)[_0xc147('0x3e')](_0x381795);};}exports['index']=function(_0x582d6d,_0x205c07){var _0x2dd7f4={},_0x3c7d7c={},_0x53c1f3={'count':0x0,'rows':[]};var _0x2859bd=_[_0xc147('0x33')](db['VoiceExtension'][_0xc147('0x3f')],function(_0xca26b5){return{'name':_0xca26b5[_0xc147('0x40')],'type':_0xca26b5[_0xc147('0x37')]['key']};});_0x3c7d7c['model']=_[_0xc147('0x33')](_0x2859bd,_0xc147('0x3d'));_0x3c7d7c[_0xc147('0x41')]=_[_0xc147('0x42')](_0x582d6d[_0xc147('0x41')]);_0x3c7d7c[_0xc147('0x43')]=_[_0xc147('0x44')](_0x3c7d7c[_0xc147('0x45')],_0x3c7d7c[_0xc147('0x41')]);_0x2dd7f4[_0xc147('0x46')]=_[_0xc147('0x44')](_0x3c7d7c['model'],qs[_0xc147('0x47')](_0x582d6d[_0xc147('0x41')]['fields']));_0x2dd7f4[_0xc147('0x46')]=_0x2dd7f4[_0xc147('0x46')][_0xc147('0x48')]?_0x2dd7f4['attributes']:_0x3c7d7c['model'];if(!_0x582d6d['query'][_0xc147('0x49')](_0xc147('0x4a'))){_0x2dd7f4[_0xc147('0x23')]=qs[_0xc147('0x23')](_0x582d6d[_0xc147('0x41')]['limit']);_0x2dd7f4[_0xc147('0x21')]=qs[_0xc147('0x21')](_0x582d6d['query'][_0xc147('0x21')]);}_0x2dd7f4[_0xc147('0x4b')]=qs[_0xc147('0x4c')](_0x582d6d[_0xc147('0x41')][_0xc147('0x4c')]);_0x2dd7f4[_0xc147('0x4d')]=qs['filters'](_[_0xc147('0x4e')](_0x582d6d[_0xc147('0x41')],_0x3c7d7c[_0xc147('0x43')]),_0x2859bd);if(_0x582d6d[_0xc147('0x41')]['filter']){_0x2dd7f4[_0xc147('0x4d')]=_[_0xc147('0x4f')](_0x2dd7f4['where'],{'$or':_['map'](_0x2859bd,function(_0x4ef7a1){if(_0x4ef7a1[_0xc147('0x37')]!=='VIRTUAL'){var _0x106e56={};_0x106e56[_0x4ef7a1[_0xc147('0x3d')]]={'$like':'%'+_0x582d6d[_0xc147('0x41')]['filter']+'%'};return _0x106e56;}})});}_0x2dd7f4=_[_0xc147('0x4f')]({},_0x2dd7f4,_0x582d6d[_0xc147('0x50')]);var _0x57fa6a={'where':_0x2dd7f4[_0xc147('0x4d')]};return db[_0xc147('0x51')][_0xc147('0x24')](_0x57fa6a)[_0xc147('0x39')](function(_0x357ef6){_0x53c1f3[_0xc147('0x24')]=_0x357ef6;if(_0x582d6d[_0xc147('0x41')][_0xc147('0x52')]){_0x2dd7f4['include']=[{'all':!![]}];}return db[_0xc147('0x51')][_0xc147('0x53')](_0x2dd7f4);})[_0xc147('0x39')](function(_0x31c6a5){_0x53c1f3[_0xc147('0x54')]=_0x31c6a5;return _0x53c1f3;})[_0xc147('0x39')](respondWithFilteredResult(_0x205c07,_0x2dd7f4))[_0xc147('0x55')](handleError(_0x205c07,null));};exports[_0xc147('0x56')]=function(_0x300ea4,_0x161b22){var _0x50a5e1={'raw':![],'where':{'id':_0x300ea4[_0xc147('0x57')]['id']}},_0x42a340={};_0x42a340[_0xc147('0x45')]=_[_0xc147('0x42')](db[_0xc147('0x51')]['rawAttributes']);_0x42a340[_0xc147('0x41')]=_[_0xc147('0x42')](_0x300ea4[_0xc147('0x41')]);_0x42a340[_0xc147('0x43')]=_[_0xc147('0x44')](_0x42a340[_0xc147('0x45')],_0x42a340[_0xc147('0x41')]);_0x50a5e1['attributes']=_[_0xc147('0x44')](_0x42a340[_0xc147('0x45')],qs[_0xc147('0x47')](_0x300ea4[_0xc147('0x41')][_0xc147('0x47')]));_0x50a5e1[_0xc147('0x46')]=_0x50a5e1['attributes'][_0xc147('0x48')]?_0x50a5e1[_0xc147('0x46')]:_0x42a340[_0xc147('0x45')];if(_0x300ea4[_0xc147('0x41')]['includeAll']){_0x50a5e1[_0xc147('0x58')]=[{'all':!![]}];}_0x50a5e1=_[_0xc147('0x4f')]({},_0x50a5e1,_0x300ea4[_0xc147('0x50')]);return db[_0xc147('0x51')]['find'](_0x50a5e1)[_0xc147('0x39')](handleEntityNotFound(_0x161b22,null))[_0xc147('0x39')](respondWithResult(_0x161b22,null))[_0xc147('0x55')](handleError(_0x161b22,null));};exports[_0xc147('0x2a')]=function(_0xc4c906,_0x4f136c){return db[_0xc147('0x51')]['find']({'where':{'id':_0xc4c906[_0xc147('0x57')]['id']}})[_0xc147('0x39')](handleEntityNotFound(_0x4f136c,null))[_0xc147('0x39')](removeEntity(_0x4f136c,null))[_0xc147('0x55')](handleError(_0x4f136c,null));};exports[_0xc147('0x59')]=function(_0xcfad39,_0x87239c){if(_0xcfad39['body'][_0xc147('0x37')]===_0xc147('0x2e')&&!_[_0xc147('0x5a')](_0xcfad39[_0xc147('0x5b')][_0xc147('0x5c')],'_')){_0xcfad39[_0xc147('0x5b')]['exten']='_'[_0xc147('0x5d')](_0xcfad39[_0xc147('0x5b')][_0xc147('0x5c')]);}return db['VoiceExtension'][_0xc147('0x59')](_0xcfad39[_0xc147('0x5b')],{'raw':![]})[_0xc147('0x39')](function(_0x144403){var _0x500207=_0xcfad39[_0xc147('0x5e')]['get']({'plain':!![]});if(!_0x500207)throw new Error(_0xc147('0x5f'));if(_0x500207['role']===_0xc147('0x5e')){var _0x13d636=_0x144403['get']({'plain':!![]});var _0x3b60e9=[{'name':_0xc147('0x2c'),'value':_0xc147('0x60')},{'name':_0xc147('0x2d'),'value':_0xc147('0x2e')},{'name':_0xc147('0x2f'),'value':_0xc147('0x30')}];var _0xfa02f0=_[_0xc147('0x36')](_0x3b60e9,[_0xc147('0x34'),_0x13d636[_0xc147('0x37')]])[_0xc147('0x3d')];return db[_0xc147('0x61')][_0xc147('0x36')]({'where':{'name':_0xfa02f0,'userProfileId':_0x500207['userProfileId']},'raw':!![]})[_0xc147('0x39')](function(_0x5badca){if(_0x5badca&&_0x5badca[_0xc147('0x62')]===0x0){return db['UserProfileResource'][_0xc147('0x59')]({'name':_0x13d636[_0xc147('0x3d')],'resourceId':_0x13d636['id'],'type':_0x5badca[_0xc147('0x3d')],'sectionId':_0x5badca['id']},{})[_0xc147('0x39')](function(){return _0x144403;});}else{return _0x144403;}})['catch'](function(_0x259320){logger[_0xc147('0x3b')](_0xc147('0x63'),_0x259320);throw _0x259320;});}return _0x144403;})[_0xc147('0x39')](respondWithResult(_0x87239c,0xc9))[_0xc147('0x55')](handleError(_0x87239c,null));};exports[_0xc147('0x29')]=function(_0x25666e,_0x420b9b){if(_0x25666e[_0xc147('0x5b')]['id']){delete _0x25666e[_0xc147('0x5b')]['id'];}return db[_0xc147('0x51')][_0xc147('0x36')]({'where':{'id':_0x25666e[_0xc147('0x57')]['id']}})[_0xc147('0x39')](handleEntityNotFound(_0x420b9b,null))[_0xc147('0x39')](function(_0x22dab5){if(_0x22dab5){return db[_0xc147('0x51')][_0xc147('0x29')](_[_0xc147('0x4e')](_0x25666e[_0xc147('0x5b')],['exten','context',_0xc147('0x64'),_0xc147('0x65'),'cutdigits',_0xc147('0x66')]),{'where':{'context':_0x22dab5[_0xc147('0x67')],'exten':_0x22dab5['exten']},'individualHooks':!![]})[_0xc147('0x39')](function(_0x19d32d){return _0x19d32d;});}return null;})[_0xc147('0x39')](respondWithStatusCode(_0x420b9b,null))['catch'](handleError(_0x420b9b,null));};exports[_0xc147('0x68')]=function(_0x429fb8,_0x2414e2,_0x2133e3){return db['VoiceExtension'][_0xc147('0x69')]({'where':{'id':_0x429fb8[_0xc147('0x57')]['id']}})[_0xc147('0x39')](handleEntityNotFound(_0x2414e2,null))[_0xc147('0x39')](function(_0xe1d295){if(_0xe1d295){return db['sequelize'][_0xc147('0x6a')](function(_0x990f9f){return db[_0xc147('0x51')][_0xc147('0x2a')]({'where':{'VoiceExtensionId':_0x429fb8[_0xc147('0x57')]['id']},'transaction':_0x990f9f})[_0xc147('0x39')](function(_0x12d63e){var _0x352cd4=_['map'](_0x429fb8[_0xc147('0x5b')],function(_0x5650de){_0x5650de[_0xc147('0x6b')]=_0x429fb8['params']['id'];return _0x5650de;});return db[_0xc147('0x51')]['bulkCreate'](_0x352cd4,{'transaction':_0x990f9f});});})['then'](function(){return db[_0xc147('0x51')][_0xc147('0x6c')]({'where':{'isApp':!![],'VoiceExtensionId':_0x429fb8['params']['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})[_0xc147('0x39')](respondWithResult(_0x2414e2,null))[_0xc147('0x55')](handleError(_0x2414e2,null));};