Built motion from commit (unavailable).|2.4.20
[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 _0x5f77=['fields','attributes','length','hasOwnProperty','limit','order','sort','where','pick','merge','type','findAll','rows','catch','show','params','keys','includeAll','include','options','body','startsWith','exten','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description','recordingFormat','cutdigits','mandatoryDisposition','addApplications','findOne','sequelize','transaction','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','count','offset','set','Content-Range','reject','save','update','then','destroy','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','value','includes','find','name','send','index','VoiceExtension','rawAttributes','key','model','map','query','filters','intersection'];(function(_0x1ea9ac,_0x2dc4dd){var _0x4901c8=function(_0xc5c1c9){while(--_0xc5c1c9){_0x1ea9ac['push'](_0x1ea9ac['shift']());}};_0x4901c8(++_0x2dc4dd);}(_0x5f77,0x108));var _0x75f7=function(_0x56916d,_0x37b935){_0x56916d=_0x56916d-0x0;var _0x2b7f1f=_0x5f77[_0x56916d];return _0x2b7f1f;};'use strict';var pdf=require(_0x75f7('0x0'));var emlformat=require(_0x75f7('0x1'));var rimraf=require(_0x75f7('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x75f7('0x3'));var rp=require(_0x75f7('0x4'));var moment=require(_0x75f7('0x5'));var BPromise=require(_0x75f7('0x6'));var Mustache=require('mustache');var util=require(_0x75f7('0x7'));var path=require(_0x75f7('0x8'));var sox=require(_0x75f7('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x75f7('0xa'));var squel=require(_0x75f7('0xb'));var crypto=require('crypto');var jsforce=require(_0x75f7('0xc'));var deskjs=require(_0x75f7('0xd'));var toCsv=require(_0x75f7('0xe'));var querystring=require(_0x75f7('0xf'));var Papa=require('papaparse');var Redis=require(_0x75f7('0x10'));var authService=require(_0x75f7('0x11'));var qs=require(_0x75f7('0x12'));var as=require(_0x75f7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x75f7('0x14'))('api');var utils=require(_0x75f7('0x15'));var config=require('../../config/environment');var db=require(_0x75f7('0x16'))['db'];config[_0x75f7('0x17')]=_[_0x75f7('0x18')](config[_0x75f7('0x17')],{'host':_0x75f7('0x19'),'port':0x18eb});var socket=require(_0x75f7('0x1a'))(new Redis(config[_0x75f7('0x17')]));require('./voiceExtension.socket')[_0x75f7('0x1b')](socket);function respondWithStatusCode(_0x21d4db,_0x56791d){_0x56791d=_0x56791d||0xcc;return function(_0x58bfc4){if(_0x58bfc4){return _0x21d4db[_0x75f7('0x1c')](_0x56791d);}return _0x21d4db['status'](_0x56791d)[_0x75f7('0x1d')]();};}function respondWithResult(_0x2853c2,_0x1cc1bd){_0x1cc1bd=_0x1cc1bd||0xc8;return function(_0x164235){if(_0x164235){return _0x2853c2[_0x75f7('0x1e')](_0x1cc1bd)[_0x75f7('0x1f')](_0x164235);}};}function respondWithFilteredResult(_0x573941,_0xe95704){return function(_0x349b40){if(_0x349b40){var _0x1387ff=_0x349b40[_0x75f7('0x20')],_0x4a8820=_0xe95704[_0x75f7('0x21')],_0x36e3ec=_0xe95704[_0x75f7('0x21')]+_0xe95704['limit'],_0x385665;if(_0x36e3ec>=_0x1387ff){_0x36e3ec=_0x1387ff;_0x385665=0xc8;}else{_0x385665=0xce;}_0x573941[_0x75f7('0x1e')](_0x385665);return _0x573941[_0x75f7('0x22')](_0x75f7('0x23'),_0x4a8820+'-'+_0x36e3ec+'/'+_0x1387ff)[_0x75f7('0x1f')](_0x349b40);}return null;};}function patchUpdates(_0x21f914){return function(_0x2569c2){try{jsonpatch['apply'](_0x2569c2,_0x21f914,!![]);}catch(_0x83148f){return BPromise[_0x75f7('0x24')](_0x83148f);}return _0x2569c2[_0x75f7('0x25')]();};}function saveUpdates(_0x1350f1,_0x13a50b){return function(_0x23fe29){if(_0x23fe29){return _0x23fe29[_0x75f7('0x26')](_0x1350f1)[_0x75f7('0x27')](function(_0x16cc49){return _0x16cc49;});}return null;};}function removeEntity(_0x1f89fb,_0x4de8a6){return function(_0x317d8f){if(_0x317d8f){return _0x317d8f[_0x75f7('0x28')]()['then'](function(){var _0x1f3beb=_0x317d8f['get']({'plain':!![]});var _0x333107=[{'name':_0x75f7('0x29'),'value':_0x75f7('0x2a'),'ignore':![]},{'name':_0x75f7('0x2b'),'value':_0x75f7('0x2c'),'ignore':![]},{'name':_0x75f7('0x2d'),'value':_0x75f7('0x2e'),'ignore':![]}];var _0xc4dfa7=_(_0x333107)[_0x75f7('0x2f')](_0x75f7('0x30'))['map'](_0x75f7('0x31'))['value']();if(_[_0x75f7('0x32')](_0xc4dfa7,_0x1f3beb['type'])){return;}var _0x213142=_[_0x75f7('0x33')](_0x333107,['value',_0x1f3beb['type']])[_0x75f7('0x34')];return db['UserProfileResource'][_0x75f7('0x28')]({'where':{'type':_0x213142,'resourceId':_0x1f3beb['id']}})[_0x75f7('0x27')](function(){return _0x317d8f;});})['then'](function(){_0x1f89fb['status'](0xcc)[_0x75f7('0x1d')]();});}};}function handleEntityNotFound(_0x22244f,_0x2028bd){return function(_0x56f2d5){if(!_0x56f2d5){_0x22244f[_0x75f7('0x1c')](0x194);}return _0x56f2d5;};}function handleError(_0x81b506,_0xafde8d){_0xafde8d=_0xafde8d||0x1f4;return function(_0x182815){logger['error'](_0x182815['stack']);if(_0x182815[_0x75f7('0x34')]){delete _0x182815[_0x75f7('0x34')];}_0x81b506['status'](_0xafde8d)[_0x75f7('0x35')](_0x182815);};}exports[_0x75f7('0x36')]=function(_0x15f79e,_0x4da375){var _0x237ece={},_0x3328f1={},_0x905ce5={'count':0x0,'rows':[]};var _0x2324f8=_['map'](db[_0x75f7('0x37')][_0x75f7('0x38')],function(_0x17b2fe){return{'name':_0x17b2fe['fieldName'],'type':_0x17b2fe['type'][_0x75f7('0x39')]};});_0x3328f1[_0x75f7('0x3a')]=_[_0x75f7('0x3b')](_0x2324f8,_0x75f7('0x34'));_0x3328f1[_0x75f7('0x3c')]=_['keys'](_0x15f79e[_0x75f7('0x3c')]);_0x3328f1[_0x75f7('0x3d')]=_['intersection'](_0x3328f1['model'],_0x3328f1[_0x75f7('0x3c')]);_0x237ece['attributes']=_[_0x75f7('0x3e')](_0x3328f1['model'],qs[_0x75f7('0x3f')](_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x3f')]));_0x237ece['attributes']=_0x237ece[_0x75f7('0x40')][_0x75f7('0x41')]?_0x237ece['attributes']:_0x3328f1[_0x75f7('0x3a')];if(!_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x42')]('nolimit')){_0x237ece['limit']=qs[_0x75f7('0x43')](_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x43')]);_0x237ece['offset']=qs[_0x75f7('0x21')](_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x21')]);}_0x237ece[_0x75f7('0x44')]=qs[_0x75f7('0x45')](_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x45')]);_0x237ece[_0x75f7('0x46')]=qs[_0x75f7('0x3d')](_[_0x75f7('0x47')](_0x15f79e['query'],_0x3328f1[_0x75f7('0x3d')]));if(_0x15f79e['query'][_0x75f7('0x2f')]){_0x237ece[_0x75f7('0x46')]=_[_0x75f7('0x48')](_0x237ece[_0x75f7('0x46')],{'$or':_[_0x75f7('0x3b')](_0x2324f8,function(_0x4763ef){if(_0x4763ef[_0x75f7('0x49')]!=='VIRTUAL'){var _0x52671f={};_0x52671f[_0x4763ef[_0x75f7('0x34')]]={'$like':'%'+_0x15f79e[_0x75f7('0x3c')][_0x75f7('0x2f')]+'%'};return _0x52671f;}})});}_0x237ece=_[_0x75f7('0x48')]({},_0x237ece,_0x15f79e['options']);var _0x1fec78={'where':_0x237ece[_0x75f7('0x46')]};return db[_0x75f7('0x37')][_0x75f7('0x20')](_0x1fec78)[_0x75f7('0x27')](function(_0x4592ca){_0x905ce5[_0x75f7('0x20')]=_0x4592ca;if(_0x15f79e[_0x75f7('0x3c')]['includeAll']){_0x237ece['include']=[{'all':!![]}];}return db['VoiceExtension'][_0x75f7('0x4a')](_0x237ece);})[_0x75f7('0x27')](function(_0x800e1){_0x905ce5[_0x75f7('0x4b')]=_0x800e1;return _0x905ce5;})[_0x75f7('0x27')](respondWithFilteredResult(_0x4da375,_0x237ece))[_0x75f7('0x4c')](handleError(_0x4da375,null));};exports[_0x75f7('0x4d')]=function(_0x3705a5,_0x484333){var _0x2d6c04={'raw':![],'where':{'id':_0x3705a5[_0x75f7('0x4e')]['id']}},_0x275af1={};_0x275af1[_0x75f7('0x3a')]=_[_0x75f7('0x4f')](db[_0x75f7('0x37')][_0x75f7('0x38')]);_0x275af1[_0x75f7('0x3c')]=_[_0x75f7('0x4f')](_0x3705a5[_0x75f7('0x3c')]);_0x275af1[_0x75f7('0x3d')]=_['intersection'](_0x275af1[_0x75f7('0x3a')],_0x275af1[_0x75f7('0x3c')]);_0x2d6c04[_0x75f7('0x40')]=_[_0x75f7('0x3e')](_0x275af1[_0x75f7('0x3a')],qs[_0x75f7('0x3f')](_0x3705a5[_0x75f7('0x3c')]['fields']));_0x2d6c04[_0x75f7('0x40')]=_0x2d6c04[_0x75f7('0x40')]['length']?_0x2d6c04[_0x75f7('0x40')]:_0x275af1[_0x75f7('0x3a')];if(_0x3705a5['query'][_0x75f7('0x50')]){_0x2d6c04[_0x75f7('0x51')]=[{'all':!![]}];}_0x2d6c04=_[_0x75f7('0x48')]({},_0x2d6c04,_0x3705a5[_0x75f7('0x52')]);return db['VoiceExtension']['find'](_0x2d6c04)[_0x75f7('0x27')](handleEntityNotFound(_0x484333,null))[_0x75f7('0x27')](respondWithResult(_0x484333,null))[_0x75f7('0x4c')](handleError(_0x484333,null));};exports[_0x75f7('0x28')]=function(_0x3fe41d,_0x46ee00){return db[_0x75f7('0x37')][_0x75f7('0x33')]({'where':{'id':_0x3fe41d['params']['id']}})['then'](handleEntityNotFound(_0x46ee00,null))[_0x75f7('0x27')](removeEntity(_0x46ee00,null))['catch'](handleError(_0x46ee00,null));};exports['create']=function(_0xb8cfcb,_0x1df806){if(_0xb8cfcb[_0x75f7('0x53')][_0x75f7('0x49')]===_0x75f7('0x2c')&&!_[_0x75f7('0x54')](_0xb8cfcb['body'][_0x75f7('0x55')],'_')){_0xb8cfcb[_0x75f7('0x53')]['exten']='_'['concat'](_0xb8cfcb[_0x75f7('0x53')]['exten']);}return db['VoiceExtension'][_0x75f7('0x56')](_0xb8cfcb['body'],{'raw':![]})[_0x75f7('0x27')](function(_0x55c6fa){var _0x6744a1=_0xb8cfcb[_0x75f7('0x57')][_0x75f7('0x58')]({'plain':!![]});if(!_0x6744a1)throw new Error(_0x75f7('0x59'));if(_0x6744a1[_0x75f7('0x5a')]===_0x75f7('0x57')){var _0x20e1b3=_0x55c6fa[_0x75f7('0x58')]({'plain':!![]});var _0x3ddd34=[{'name':_0x75f7('0x29'),'value':'inbound'},{'name':_0x75f7('0x2b'),'value':_0x75f7('0x2c')},{'name':'InternalRoutes','value':'internal'}];var _0x463f77=_[_0x75f7('0x33')](_0x3ddd34,[_0x75f7('0x31'),_0x20e1b3[_0x75f7('0x49')]])[_0x75f7('0x34')];return db[_0x75f7('0x5b')][_0x75f7('0x33')]({'where':{'name':_0x463f77,'userProfileId':_0x6744a1[_0x75f7('0x5c')]},'raw':!![]})[_0x75f7('0x27')](function(_0x758cac){if(_0x758cac&&_0x758cac['autoAssociation']===0x0){return db[_0x75f7('0x5d')]['create']({'name':_0x20e1b3[_0x75f7('0x34')],'resourceId':_0x20e1b3['id'],'type':_0x758cac['name'],'sectionId':_0x758cac['id']},{})[_0x75f7('0x27')](function(){return _0x55c6fa;});}else{return _0x55c6fa;}})[_0x75f7('0x4c')](function(_0x2b32a4){logger[_0x75f7('0x5e')](_0x75f7('0x5f'),_0x2b32a4);throw _0x2b32a4;});}return _0x55c6fa;})[_0x75f7('0x27')](respondWithResult(_0x1df806,0xc9))[_0x75f7('0x4c')](handleError(_0x1df806,null));};exports[_0x75f7('0x26')]=function(_0x263922,_0x3971dc){if(_0x263922[_0x75f7('0x53')]['id']){delete _0x263922[_0x75f7('0x53')]['id'];}return db[_0x75f7('0x37')]['find']({'where':{'id':_0x263922[_0x75f7('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3971dc,null))[_0x75f7('0x27')](function(_0x1939a8){if(_0x1939a8){return db[_0x75f7('0x37')][_0x75f7('0x26')](_['pick'](_0x263922[_0x75f7('0x53')],['exten',_0x75f7('0x60'),_0x75f7('0x61'),_0x75f7('0x62'),_0x75f7('0x63'),_0x75f7('0x64')]),{'where':{'context':_0x1939a8['context'],'exten':_0x1939a8[_0x75f7('0x55')]},'individualHooks':!![]})[_0x75f7('0x27')](function(_0x2091ce){return _0x2091ce;});}return null;})[_0x75f7('0x27')](respondWithStatusCode(_0x3971dc,null))[_0x75f7('0x4c')](handleError(_0x3971dc,null));};exports[_0x75f7('0x65')]=function(_0x4207ff,_0x5e4b3f,_0x234917){return db[_0x75f7('0x37')][_0x75f7('0x66')]({'where':{'id':_0x4207ff[_0x75f7('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5e4b3f,null))['then'](function(_0x37d708){if(_0x37d708){return db[_0x75f7('0x67')][_0x75f7('0x68')](function(_0x9487bd){return db[_0x75f7('0x37')][_0x75f7('0x28')]({'where':{'VoiceExtensionId':_0x4207ff['params']['id']},'transaction':_0x9487bd})[_0x75f7('0x27')](function(_0x52e9ea){var _0x3bb9ed=_['map'](_0x4207ff[_0x75f7('0x53')],function(_0x2c557b){_0x2c557b[_0x75f7('0x69')]=_0x4207ff['params']['id'];return _0x2c557b;});return db[_0x75f7('0x37')][_0x75f7('0x6a')](_0x3bb9ed,{'transaction':_0x9487bd});});})[_0x75f7('0x27')](function(){return db[_0x75f7('0x37')][_0x75f7('0x6b')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4207ff['params']['id']},'order':_0x75f7('0x6c')});});}})[_0x75f7('0x27')](respondWithResult(_0x5e4b3f,null))[_0x75f7('0x4c')](handleError(_0x5e4b3f,null));};