b4c8e4fc537d9eb437e1183f5fd481b4d2e8e412
[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 _0x3c81=['length','nolimit','order','sort','where','pick','merge','VIRTUAL','VoiceExtension','includeAll','include','show','params','filtears','options','catch','create','body','outbound','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','OutboundRoutes','internal','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','recordingFormat','cutdigits','mandatoryDisposition','addApplications','findOne','sequelize','transaction','VoiceExtensionId','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','zip-dir','fast-json-patch','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceExtension.socket','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','InboundRoutes','inbound','InternalRoutes','filter','ignore','map','includes','type','find','value','name','destroy','sendStatus','error','stack','send','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes'];(function(_0x12ae06,_0x20b501){var _0xd26682=function(_0x49a319){while(--_0x49a319){_0x12ae06['push'](_0x12ae06['shift']());}};_0xd26682(++_0x20b501);}(_0x3c81,0x102));var _0x13c8=function(_0x5813e9,_0x197968){_0x5813e9=_0x5813e9-0x0;var _0x3ebf12=_0x3c81[_0x5813e9];return _0x3ebf12;};'use strict';var pdf=require(_0x13c8('0x0'));var emlformat=require(_0x13c8('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x13c8('0x2'));var jsonpatch=require(_0x13c8('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x13c8('0x4'));var path=require(_0x13c8('0x5'));var sox=require(_0x13c8('0x6'));var csv=require(_0x13c8('0x7'));var ejs=require(_0x13c8('0x8'));var fs=require('fs');var _=require(_0x13c8('0x9'));var squel=require(_0x13c8('0xa'));var crypto=require('crypto');var jsforce=require(_0x13c8('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x13c8('0x7'));var querystring=require(_0x13c8('0xc'));var Papa=require(_0x13c8('0xd'));var Redis=require(_0x13c8('0xe'));var authService=require(_0x13c8('0xf'));var qs=require(_0x13c8('0x10'));var as=require(_0x13c8('0x11'));var hardwareService=require(_0x13c8('0x12'));var logger=require(_0x13c8('0x13'))(_0x13c8('0x14'));var utils=require(_0x13c8('0x15'));var config=require(_0x13c8('0x16'));var licenseUtil=require(_0x13c8('0x17'));var db=require(_0x13c8('0x18'))['db'];config['redis']=_[_0x13c8('0x19')](config[_0x13c8('0x1a')],{'host':_0x13c8('0x1b'),'port':0x18eb});var socket=require(_0x13c8('0x1c'))(new Redis(config['redis']));require(_0x13c8('0x1d'))['register'](socket);function respondWithStatusCode(_0x4d7a88,_0x589636){_0x589636=_0x589636||0xcc;return function(_0x126359){if(_0x126359){return _0x4d7a88['sendStatus'](_0x589636);}return _0x4d7a88[_0x13c8('0x1e')](_0x589636)[_0x13c8('0x1f')]();};}function respondWithResult(_0x23f64e,_0x7cbfb){_0x7cbfb=_0x7cbfb||0xc8;return function(_0x5d7906){if(_0x5d7906){return _0x23f64e[_0x13c8('0x1e')](_0x7cbfb)[_0x13c8('0x20')](_0x5d7906);}};}function respondWithFilteredResult(_0x31ae02,_0x3bc5a9){return function(_0xce1ad2){if(_0xce1ad2){var _0x28f07e=_0xce1ad2[_0x13c8('0x21')],_0x346417=_0x3bc5a9[_0x13c8('0x22')],_0x251c38=_0x3bc5a9['offset']+_0x3bc5a9[_0x13c8('0x23')],_0x34fbc0;if(_0x251c38>=_0x28f07e){_0x251c38=_0x28f07e;_0x34fbc0=0xc8;}else{_0x34fbc0=0xce;}_0x31ae02[_0x13c8('0x1e')](_0x34fbc0);return _0x31ae02[_0x13c8('0x24')](_0x13c8('0x25'),_0x346417+'-'+_0x251c38+'/'+_0x28f07e)['json'](_0xce1ad2);}return null;};}function patchUpdates(_0x1fb714){return function(_0x3c4603){try{jsonpatch[_0x13c8('0x26')](_0x3c4603,_0x1fb714,!![]);}catch(_0x1f60ed){return BPromise[_0x13c8('0x27')](_0x1f60ed);}return _0x3c4603[_0x13c8('0x28')]();};}function saveUpdates(_0x5ab47f,_0x28f99c){return function(_0x1d8e9f){if(_0x1d8e9f){return _0x1d8e9f[_0x13c8('0x29')](_0x5ab47f)[_0x13c8('0x2a')](function(_0x577df6){return _0x577df6;});}return null;};}function removeEntity(_0x1770e5,_0x458217){return function(_0x4e392f){if(_0x4e392f){return _0x4e392f['destroy']()[_0x13c8('0x2a')](function(){var _0x4aff35=_0x4e392f['get']({'plain':!![]});var _0x5ad0dc=[{'name':_0x13c8('0x2b'),'value':_0x13c8('0x2c'),'ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x13c8('0x2d'),'value':'internal','ignore':![]}];var _0x545b47=_(_0x5ad0dc)[_0x13c8('0x2e')](_0x13c8('0x2f'))[_0x13c8('0x30')]('value')['value']();if(_[_0x13c8('0x31')](_0x545b47,_0x4aff35[_0x13c8('0x32')])){return;}var _0x399840=_[_0x13c8('0x33')](_0x5ad0dc,[_0x13c8('0x34'),_0x4aff35[_0x13c8('0x32')]])[_0x13c8('0x35')];return db['UserProfileResource'][_0x13c8('0x36')]({'where':{'type':_0x399840,'resourceId':_0x4aff35['id']}})[_0x13c8('0x2a')](function(){return _0x4e392f;});})['then'](function(){_0x1770e5['status'](0xcc)[_0x13c8('0x1f')]();});}};}function handleEntityNotFound(_0xc7225a,_0x50bb89){return function(_0x222f55){if(!_0x222f55){_0xc7225a[_0x13c8('0x37')](0x194);}return _0x222f55;};}function handleError(_0x47e0f8,_0x21224a){_0x21224a=_0x21224a||0x1f4;return function(_0x238b19){logger[_0x13c8('0x38')](_0x238b19[_0x13c8('0x39')]);if(_0x238b19[_0x13c8('0x35')]){delete _0x238b19[_0x13c8('0x35')];}_0x47e0f8[_0x13c8('0x1e')](_0x21224a)[_0x13c8('0x3a')](_0x238b19);};}exports['index']=function(_0x4d9277,_0x1e03b8){var _0x37eaec={},_0x517d01={},_0x30d328={'count':0x0,'rows':[]};var _0x5bc5d2=_[_0x13c8('0x30')](db['VoiceExtension'][_0x13c8('0x3b')],function(_0x53de18){return{'name':_0x53de18[_0x13c8('0x3c')],'type':_0x53de18[_0x13c8('0x32')][_0x13c8('0x3d')]};});_0x517d01[_0x13c8('0x3e')]=_[_0x13c8('0x30')](_0x5bc5d2,'name');_0x517d01[_0x13c8('0x3f')]=_[_0x13c8('0x40')](_0x4d9277['query']);_0x517d01[_0x13c8('0x41')]=_[_0x13c8('0x42')](_0x517d01[_0x13c8('0x3e')],_0x517d01['query']);_0x37eaec['attributes']=_['intersection'](_0x517d01[_0x13c8('0x3e')],qs[_0x13c8('0x43')](_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x43')]));_0x37eaec[_0x13c8('0x44')]=_0x37eaec[_0x13c8('0x44')][_0x13c8('0x45')]?_0x37eaec[_0x13c8('0x44')]:_0x517d01[_0x13c8('0x3e')];if(!_0x4d9277['query']['hasOwnProperty'](_0x13c8('0x46'))){_0x37eaec[_0x13c8('0x23')]=qs[_0x13c8('0x23')](_0x4d9277[_0x13c8('0x3f')]['limit']);_0x37eaec[_0x13c8('0x22')]=qs['offset'](_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x22')]);}_0x37eaec[_0x13c8('0x47')]=qs[_0x13c8('0x48')](_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x48')]);_0x37eaec[_0x13c8('0x49')]=qs[_0x13c8('0x41')](_[_0x13c8('0x4a')](_0x4d9277[_0x13c8('0x3f')],_0x517d01[_0x13c8('0x41')]),_0x5bc5d2);if(_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x2e')]){_0x37eaec[_0x13c8('0x49')]=_[_0x13c8('0x4b')](_0x37eaec[_0x13c8('0x49')],{'$or':_[_0x13c8('0x30')](_0x5bc5d2,function(_0x1505fb){if(_0x1505fb[_0x13c8('0x32')]!==_0x13c8('0x4c')){var _0x3622d6={};_0x3622d6[_0x1505fb[_0x13c8('0x35')]]={'$like':'%'+_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x2e')]+'%'};return _0x3622d6;}})});}_0x37eaec=_[_0x13c8('0x4b')]({},_0x37eaec,_0x4d9277['options']);var _0x3ef04e={'where':_0x37eaec[_0x13c8('0x49')]};return db[_0x13c8('0x4d')][_0x13c8('0x21')](_0x3ef04e)[_0x13c8('0x2a')](function(_0x5c58a9){_0x30d328['count']=_0x5c58a9;if(_0x4d9277[_0x13c8('0x3f')][_0x13c8('0x4e')]){_0x37eaec[_0x13c8('0x4f')]=[{'all':!![]}];}return db['VoiceExtension']['findAll'](_0x37eaec);})['then'](function(_0x2a1ced){_0x30d328['rows']=_0x2a1ced;return _0x30d328;})[_0x13c8('0x2a')](respondWithFilteredResult(_0x1e03b8,_0x37eaec))['catch'](handleError(_0x1e03b8,null));};exports[_0x13c8('0x50')]=function(_0x38423b,_0x2e40e8){var _0x1b1530={'raw':![],'where':{'id':_0x38423b[_0x13c8('0x51')]['id']}},_0x3fcc4d={};_0x3fcc4d['model']=_[_0x13c8('0x40')](db[_0x13c8('0x4d')]['rawAttributes']);_0x3fcc4d[_0x13c8('0x3f')]=_[_0x13c8('0x40')](_0x38423b[_0x13c8('0x3f')]);_0x3fcc4d[_0x13c8('0x52')]=_[_0x13c8('0x42')](_0x3fcc4d['model'],_0x3fcc4d[_0x13c8('0x3f')]);_0x1b1530[_0x13c8('0x44')]=_[_0x13c8('0x42')](_0x3fcc4d[_0x13c8('0x3e')],qs[_0x13c8('0x43')](_0x38423b['query'][_0x13c8('0x43')]));_0x1b1530[_0x13c8('0x44')]=_0x1b1530[_0x13c8('0x44')][_0x13c8('0x45')]?_0x1b1530[_0x13c8('0x44')]:_0x3fcc4d[_0x13c8('0x3e')];if(_0x38423b[_0x13c8('0x3f')][_0x13c8('0x4e')]){_0x1b1530[_0x13c8('0x4f')]=[{'all':!![]}];}_0x1b1530=_[_0x13c8('0x4b')]({},_0x1b1530,_0x38423b[_0x13c8('0x53')]);return db['VoiceExtension'][_0x13c8('0x33')](_0x1b1530)[_0x13c8('0x2a')](handleEntityNotFound(_0x2e40e8,null))[_0x13c8('0x2a')](respondWithResult(_0x2e40e8,null))[_0x13c8('0x54')](handleError(_0x2e40e8,null));};exports[_0x13c8('0x36')]=function(_0x11aa65,_0x48b7f6){return db[_0x13c8('0x4d')][_0x13c8('0x33')]({'where':{'id':_0x11aa65[_0x13c8('0x51')]['id']}})['then'](handleEntityNotFound(_0x48b7f6,null))['then'](removeEntity(_0x48b7f6,null))[_0x13c8('0x54')](handleError(_0x48b7f6,null));};exports[_0x13c8('0x55')]=function(_0x55d353,_0x199782){if(_0x55d353[_0x13c8('0x56')]['type']===_0x13c8('0x57')&&!_['startsWith'](_0x55d353[_0x13c8('0x56')][_0x13c8('0x58')],'_')){_0x55d353[_0x13c8('0x56')]['exten']='_'[_0x13c8('0x59')](_0x55d353[_0x13c8('0x56')]['exten']);}return db[_0x13c8('0x4d')]['create'](_0x55d353[_0x13c8('0x56')],{'raw':![]})[_0x13c8('0x2a')](function(_0x1614f8){var _0x2bfb23=_0x55d353[_0x13c8('0x5a')]['get']({'plain':!![]});if(!_0x2bfb23)throw new Error(_0x13c8('0x5b'));if(_0x2bfb23['role']==='user'){var _0x4d43e1=_0x1614f8['get']({'plain':!![]});var _0x539c84=[{'name':_0x13c8('0x2b'),'value':_0x13c8('0x2c')},{'name':_0x13c8('0x5c'),'value':_0x13c8('0x57')},{'name':_0x13c8('0x2d'),'value':_0x13c8('0x5d')}];var _0x3b0a65=_['find'](_0x539c84,['value',_0x4d43e1[_0x13c8('0x32')]])[_0x13c8('0x35')];return db[_0x13c8('0x5e')][_0x13c8('0x33')]({'where':{'name':_0x3b0a65,'userProfileId':_0x2bfb23[_0x13c8('0x5f')]},'raw':!![]})[_0x13c8('0x2a')](function(_0x4678a0){if(_0x4678a0&&_0x4678a0[_0x13c8('0x60')]===0x0){return db['UserProfileResource'][_0x13c8('0x55')]({'name':_0x4d43e1[_0x13c8('0x35')],'resourceId':_0x4d43e1['id'],'type':_0x4678a0['name'],'sectionId':_0x4678a0['id']},{})[_0x13c8('0x2a')](function(){return _0x1614f8;});}else{return _0x1614f8;}})[_0x13c8('0x54')](function(_0x1f2bb7){logger[_0x13c8('0x38')](_0x13c8('0x61'),_0x1f2bb7);throw _0x1f2bb7;});}return _0x1614f8;})[_0x13c8('0x2a')](respondWithResult(_0x199782,0xc9))[_0x13c8('0x54')](handleError(_0x199782,null));};exports[_0x13c8('0x29')]=function(_0x2ba0cd,_0x15af00){if(_0x2ba0cd[_0x13c8('0x56')]['id']){delete _0x2ba0cd[_0x13c8('0x56')]['id'];}return db[_0x13c8('0x4d')][_0x13c8('0x33')]({'where':{'id':_0x2ba0cd[_0x13c8('0x51')]['id']}})[_0x13c8('0x2a')](handleEntityNotFound(_0x15af00,null))['then'](function(_0x3320aa){if(_0x3320aa){return db['VoiceExtension'][_0x13c8('0x29')](_[_0x13c8('0x4a')](_0x2ba0cd['body'],[_0x13c8('0x58'),_0x13c8('0x62'),'description',_0x13c8('0x63'),_0x13c8('0x64'),_0x13c8('0x65')]),{'where':{'context':_0x3320aa[_0x13c8('0x62')],'exten':_0x3320aa[_0x13c8('0x58')]},'individualHooks':!![]})[_0x13c8('0x2a')](function(_0x29c2fc){return _0x29c2fc;});}return null;})[_0x13c8('0x2a')](respondWithStatusCode(_0x15af00,null))[_0x13c8('0x54')](handleError(_0x15af00,null));};exports[_0x13c8('0x66')]=function(_0x3bee19,_0x5bfa79,_0x31bacf){return db[_0x13c8('0x4d')][_0x13c8('0x67')]({'where':{'id':_0x3bee19[_0x13c8('0x51')]['id']}})[_0x13c8('0x2a')](handleEntityNotFound(_0x5bfa79,null))[_0x13c8('0x2a')](function(_0x5b1948){if(_0x5b1948){return db[_0x13c8('0x68')][_0x13c8('0x69')](function(_0x165ed0){return db['VoiceExtension'][_0x13c8('0x36')]({'where':{'VoiceExtensionId':_0x3bee19[_0x13c8('0x51')]['id']},'transaction':_0x165ed0})[_0x13c8('0x2a')](function(_0x1eca51){var _0x11ae3d=_[_0x13c8('0x30')](_0x3bee19['body'],function(_0xcc921){_0xcc921[_0x13c8('0x6a')]=_0x3bee19[_0x13c8('0x51')]['id'];return _0xcc921;});return db[_0x13c8('0x4d')]['bulkCreate'](_0x11ae3d,{'transaction':_0x165ed0});});})[_0x13c8('0x2a')](function(){return db[_0x13c8('0x4d')][_0x13c8('0x6b')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3bee19[_0x13c8('0x51')]['id']},'order':_0x13c8('0x6c')});});}})[_0x13c8('0x2a')](respondWithResult(_0x5bfa79,null))[_0x13c8('0x54')](handleError(_0x5bfa79,null));};