fcf9dd82e7ac3f77e850386a3f2107a91b1eff93
[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 _0x5f66=['desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./voiceExtension.socket','register','sendStatus','status','json','offset','set','Content-Range','apply','reject','save','then','destroy','get','InboundRoutes','InternalRoutes','internal','filter','ignore','value','includes','type','name','UserProfileResource','error','stack','send','index','map','rawAttributes','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','options','VoiceExtension','count','includeAll','include','rows','catch','show','keys','length','find','params','outbound','startsWith','body','exten','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','inbound','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','recordingFormat','cutdigits','mandatoryDisposition','context','findOne','sequelize','transaction','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','squel','crypto','jsforce'];(function(_0x4023bf,_0x4a1c20){var _0x3d9130=function(_0x47e588){while(--_0x47e588){_0x4023bf['push'](_0x4023bf['shift']());}};_0x3d9130(++_0x4a1c20);}(_0x5f66,0x1a0));var _0x65f6=function(_0x4c12ec,_0x2e9103){_0x4c12ec=_0x4c12ec-0x0;var _0x3ae42c=_0x5f66[_0x4c12ec];return _0x3ae42c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x65f6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x65f6('0x1'));var jsonpatch=require(_0x65f6('0x2'));var rp=require(_0x65f6('0x3'));var moment=require(_0x65f6('0x4'));var BPromise=require(_0x65f6('0x5'));var Mustache=require('mustache');var util=require(_0x65f6('0x6'));var path=require('path');var sox=require(_0x65f6('0x7'));var csv=require(_0x65f6('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x65f6('0x9'));var crypto=require(_0x65f6('0xa'));var jsforce=require(_0x65f6('0xb'));var deskjs=require(_0x65f6('0xc'));var toCsv=require(_0x65f6('0x8'));var querystring=require(_0x65f6('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x65f6('0xe'));var qs=require(_0x65f6('0xf'));var as=require(_0x65f6('0x10'));var hardwareService=require(_0x65f6('0x11'));var logger=require('../../config/logger')(_0x65f6('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x65f6('0x13'))['db'];config['redis']=_[_0x65f6('0x14')](config['redis'],{'host':_0x65f6('0x15'),'port':0x18eb});var socket=require(_0x65f6('0x16'))(new Redis(config[_0x65f6('0x17')]));require(_0x65f6('0x18'))[_0x65f6('0x19')](socket);function respondWithStatusCode(_0x1d29fd,_0x44144b){_0x44144b=_0x44144b||0xcc;return function(_0xb1d40a){if(_0xb1d40a){return _0x1d29fd[_0x65f6('0x1a')](_0x44144b);}return _0x1d29fd[_0x65f6('0x1b')](_0x44144b)['end']();};}function respondWithResult(_0x19b9ff,_0x49a913){_0x49a913=_0x49a913||0xc8;return function(_0x5dd324){if(_0x5dd324){return _0x19b9ff[_0x65f6('0x1b')](_0x49a913)[_0x65f6('0x1c')](_0x5dd324);}};}function respondWithFilteredResult(_0x37330d,_0x1c955c){return function(_0x1b1cbb){if(_0x1b1cbb){var _0x1f974c=_0x1b1cbb['count'],_0xc8660c=_0x1c955c[_0x65f6('0x1d')],_0x18380e=_0x1c955c['offset']+_0x1c955c['limit'],_0x495dd6;if(_0x18380e>=_0x1f974c){_0x18380e=_0x1f974c;_0x495dd6=0xc8;}else{_0x495dd6=0xce;}_0x37330d['status'](_0x495dd6);return _0x37330d[_0x65f6('0x1e')](_0x65f6('0x1f'),_0xc8660c+'-'+_0x18380e+'/'+_0x1f974c)['json'](_0x1b1cbb);}return null;};}function patchUpdates(_0x39e19f){return function(_0x270893){try{jsonpatch[_0x65f6('0x20')](_0x270893,_0x39e19f,!![]);}catch(_0x3876ed){return BPromise[_0x65f6('0x21')](_0x3876ed);}return _0x270893[_0x65f6('0x22')]();};}function saveUpdates(_0x581374,_0x197a49){return function(_0x4bb39e){if(_0x4bb39e){return _0x4bb39e['update'](_0x581374)[_0x65f6('0x23')](function(_0xd173f4){return _0xd173f4;});}return null;};}function removeEntity(_0x524e42,_0x1eeaaa){return function(_0x471a33){if(_0x471a33){return _0x471a33[_0x65f6('0x24')]()[_0x65f6('0x23')](function(){var _0x4f5a69=_0x471a33[_0x65f6('0x25')]({'plain':!![]});var _0x59ea32=[{'name':_0x65f6('0x26'),'value':'inbound','ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x65f6('0x27'),'value':_0x65f6('0x28'),'ignore':![]}];var _0x4b2292=_(_0x59ea32)[_0x65f6('0x29')](_0x65f6('0x2a'))['map'](_0x65f6('0x2b'))[_0x65f6('0x2b')]();if(_[_0x65f6('0x2c')](_0x4b2292,_0x4f5a69['type'])){return;}var _0x4ac04b=_['find'](_0x59ea32,[_0x65f6('0x2b'),_0x4f5a69[_0x65f6('0x2d')]])[_0x65f6('0x2e')];return db[_0x65f6('0x2f')][_0x65f6('0x24')]({'where':{'type':_0x4ac04b,'resourceId':_0x4f5a69['id']}})[_0x65f6('0x23')](function(){return _0x471a33;});})[_0x65f6('0x23')](function(){_0x524e42['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x154cbd,_0x27e284){return function(_0x5878bc){if(!_0x5878bc){_0x154cbd['sendStatus'](0x194);}return _0x5878bc;};}function handleError(_0x10b368,_0x1ce43c){_0x1ce43c=_0x1ce43c||0x1f4;return function(_0x11fe3b){logger[_0x65f6('0x30')](_0x11fe3b[_0x65f6('0x31')]);if(_0x11fe3b[_0x65f6('0x2e')]){delete _0x11fe3b['name'];}_0x10b368[_0x65f6('0x1b')](_0x1ce43c)[_0x65f6('0x32')](_0x11fe3b);};}exports[_0x65f6('0x33')]=function(_0x4bc037,_0x217f35){var _0x2a7aa8={},_0xbaed3c={},_0x45510a={'count':0x0,'rows':[]};var _0x37c086=_[_0x65f6('0x34')](db['VoiceExtension'][_0x65f6('0x35')],function(_0x1b24ea){return{'name':_0x1b24ea['fieldName'],'type':_0x1b24ea[_0x65f6('0x2d')]['key']};});_0xbaed3c[_0x65f6('0x36')]=_['map'](_0x37c086,_0x65f6('0x2e'));_0xbaed3c[_0x65f6('0x37')]=_['keys'](_0x4bc037[_0x65f6('0x37')]);_0xbaed3c[_0x65f6('0x38')]=_[_0x65f6('0x39')](_0xbaed3c['model'],_0xbaed3c['query']);_0x2a7aa8[_0x65f6('0x3a')]=_['intersection'](_0xbaed3c[_0x65f6('0x36')],qs['fields'](_0x4bc037[_0x65f6('0x37')][_0x65f6('0x3b')]));_0x2a7aa8['attributes']=_0x2a7aa8[_0x65f6('0x3a')]['length']?_0x2a7aa8['attributes']:_0xbaed3c[_0x65f6('0x36')];if(!_0x4bc037[_0x65f6('0x37')][_0x65f6('0x3c')](_0x65f6('0x3d'))){_0x2a7aa8[_0x65f6('0x3e')]=qs[_0x65f6('0x3e')](_0x4bc037[_0x65f6('0x37')][_0x65f6('0x3e')]);_0x2a7aa8['offset']=qs[_0x65f6('0x1d')](_0x4bc037['query'][_0x65f6('0x1d')]);}_0x2a7aa8[_0x65f6('0x3f')]=qs[_0x65f6('0x40')](_0x4bc037[_0x65f6('0x37')]['sort']);_0x2a7aa8[_0x65f6('0x41')]=qs[_0x65f6('0x38')](_[_0x65f6('0x42')](_0x4bc037[_0x65f6('0x37')],_0xbaed3c[_0x65f6('0x38')]),_0x37c086);if(_0x4bc037[_0x65f6('0x37')][_0x65f6('0x29')]){_0x2a7aa8[_0x65f6('0x41')]=_[_0x65f6('0x43')](_0x2a7aa8['where'],{'$or':_[_0x65f6('0x34')](_0x37c086,function(_0x400ed2){if(_0x400ed2[_0x65f6('0x2d')]!==_0x65f6('0x44')){var _0x83e2d9={};_0x83e2d9[_0x400ed2[_0x65f6('0x2e')]]={'$like':'%'+_0x4bc037[_0x65f6('0x37')][_0x65f6('0x29')]+'%'};return _0x83e2d9;}})});}_0x2a7aa8=_[_0x65f6('0x43')]({},_0x2a7aa8,_0x4bc037[_0x65f6('0x45')]);var _0xcf19da={'where':_0x2a7aa8[_0x65f6('0x41')]};return db[_0x65f6('0x46')][_0x65f6('0x47')](_0xcf19da)[_0x65f6('0x23')](function(_0x2cb38d){_0x45510a['count']=_0x2cb38d;if(_0x4bc037[_0x65f6('0x37')][_0x65f6('0x48')]){_0x2a7aa8[_0x65f6('0x49')]=[{'all':!![]}];}return db[_0x65f6('0x46')]['findAll'](_0x2a7aa8);})[_0x65f6('0x23')](function(_0x2d0dac){_0x45510a[_0x65f6('0x4a')]=_0x2d0dac;return _0x45510a;})['then'](respondWithFilteredResult(_0x217f35,_0x2a7aa8))[_0x65f6('0x4b')](handleError(_0x217f35,null));};exports[_0x65f6('0x4c')]=function(_0x426937,_0x2179e5){var _0x5509c8={'raw':![],'where':{'id':_0x426937['params']['id']}},_0x2ec114={};_0x2ec114[_0x65f6('0x36')]=_[_0x65f6('0x4d')](db['VoiceExtension'][_0x65f6('0x35')]);_0x2ec114['query']=_[_0x65f6('0x4d')](_0x426937[_0x65f6('0x37')]);_0x2ec114[_0x65f6('0x38')]=_[_0x65f6('0x39')](_0x2ec114[_0x65f6('0x36')],_0x2ec114[_0x65f6('0x37')]);_0x5509c8['attributes']=_['intersection'](_0x2ec114[_0x65f6('0x36')],qs[_0x65f6('0x3b')](_0x426937[_0x65f6('0x37')][_0x65f6('0x3b')]));_0x5509c8[_0x65f6('0x3a')]=_0x5509c8[_0x65f6('0x3a')][_0x65f6('0x4e')]?_0x5509c8[_0x65f6('0x3a')]:_0x2ec114[_0x65f6('0x36')];if(_0x426937['query'][_0x65f6('0x48')]){_0x5509c8[_0x65f6('0x49')]=[{'all':!![]}];}_0x5509c8=_[_0x65f6('0x43')]({},_0x5509c8,_0x426937['options']);return db[_0x65f6('0x46')][_0x65f6('0x4f')](_0x5509c8)['then'](handleEntityNotFound(_0x2179e5,null))[_0x65f6('0x23')](respondWithResult(_0x2179e5,null))[_0x65f6('0x4b')](handleError(_0x2179e5,null));};exports['destroy']=function(_0x309ec6,_0x4f96c4){return db[_0x65f6('0x46')][_0x65f6('0x4f')]({'where':{'id':_0x309ec6[_0x65f6('0x50')]['id']}})['then'](handleEntityNotFound(_0x4f96c4,null))[_0x65f6('0x23')](removeEntity(_0x4f96c4,null))[_0x65f6('0x4b')](handleError(_0x4f96c4,null));};exports['create']=function(_0x28403f,_0x34312c){if(_0x28403f['body'][_0x65f6('0x2d')]===_0x65f6('0x51')&&!_[_0x65f6('0x52')](_0x28403f[_0x65f6('0x53')][_0x65f6('0x54')],'_')){_0x28403f[_0x65f6('0x53')][_0x65f6('0x54')]='_'[_0x65f6('0x55')](_0x28403f['body']['exten']);}return db['VoiceExtension'][_0x65f6('0x56')](_0x28403f[_0x65f6('0x53')],{'raw':![]})[_0x65f6('0x23')](function(_0x20c322){var _0x545445=_0x28403f[_0x65f6('0x57')][_0x65f6('0x25')]({'plain':!![]});if(!_0x545445)throw new Error(_0x65f6('0x58'));if(_0x545445['role']===_0x65f6('0x57')){var _0x2eb08f=_0x20c322[_0x65f6('0x25')]({'plain':!![]});var _0x4e289e=[{'name':'InboundRoutes','value':_0x65f6('0x59')},{'name':_0x65f6('0x5a'),'value':_0x65f6('0x51')},{'name':_0x65f6('0x27'),'value':_0x65f6('0x28')}];var _0x3cf5fe=_[_0x65f6('0x4f')](_0x4e289e,[_0x65f6('0x2b'),_0x2eb08f[_0x65f6('0x2d')]])[_0x65f6('0x2e')];return db[_0x65f6('0x5b')][_0x65f6('0x4f')]({'where':{'name':_0x3cf5fe,'userProfileId':_0x545445[_0x65f6('0x5c')]},'raw':!![]})[_0x65f6('0x23')](function(_0x5ba9c6){if(_0x5ba9c6&&_0x5ba9c6[_0x65f6('0x5d')]===0x0){return db[_0x65f6('0x2f')][_0x65f6('0x56')]({'name':_0x2eb08f['name'],'resourceId':_0x2eb08f['id'],'type':_0x5ba9c6[_0x65f6('0x2e')],'sectionId':_0x5ba9c6['id']},{})[_0x65f6('0x23')](function(){return _0x20c322;});}else{return _0x20c322;}})[_0x65f6('0x4b')](function(_0x3096b8){logger['error'](_0x65f6('0x5e'),_0x3096b8);throw _0x3096b8;});}return _0x20c322;})[_0x65f6('0x23')](respondWithResult(_0x34312c,0xc9))[_0x65f6('0x4b')](handleError(_0x34312c,null));};exports[_0x65f6('0x5f')]=function(_0x553ff0,_0x2923ff){if(_0x553ff0[_0x65f6('0x53')]['id']){delete _0x553ff0['body']['id'];}return db[_0x65f6('0x46')][_0x65f6('0x4f')]({'where':{'id':_0x553ff0[_0x65f6('0x50')]['id']}})['then'](handleEntityNotFound(_0x2923ff,null))[_0x65f6('0x23')](function(_0x439365){if(_0x439365){return db[_0x65f6('0x46')][_0x65f6('0x5f')](_[_0x65f6('0x42')](_0x553ff0[_0x65f6('0x53')],['exten','context','description',_0x65f6('0x60'),_0x65f6('0x61'),_0x65f6('0x62')]),{'where':{'context':_0x439365[_0x65f6('0x63')],'exten':_0x439365[_0x65f6('0x54')]},'individualHooks':!![]})[_0x65f6('0x23')](function(_0x4c5cd2){return _0x4c5cd2;});}return null;})[_0x65f6('0x23')](respondWithStatusCode(_0x2923ff,null))[_0x65f6('0x4b')](handleError(_0x2923ff,null));};exports['addApplications']=function(_0x225aeb,_0x39c244,_0x477489){return db['VoiceExtension'][_0x65f6('0x64')]({'where':{'id':_0x225aeb[_0x65f6('0x50')]['id']}})['then'](handleEntityNotFound(_0x39c244,null))[_0x65f6('0x23')](function(_0x3edc6b){if(_0x3edc6b){return db[_0x65f6('0x65')][_0x65f6('0x66')](function(_0x3d55f7){return db[_0x65f6('0x46')][_0x65f6('0x24')]({'where':{'VoiceExtensionId':_0x225aeb['params']['id']},'transaction':_0x3d55f7})['then'](function(_0x3eb33e){var _0x3da139=_['map'](_0x225aeb[_0x65f6('0x53')],function(_0x5f3df9){_0x5f3df9[_0x65f6('0x67')]=_0x225aeb['params']['id'];return _0x5f3df9;});return db[_0x65f6('0x46')][_0x65f6('0x68')](_0x3da139,{'transaction':_0x3d55f7});});})[_0x65f6('0x23')](function(){return db[_0x65f6('0x46')][_0x65f6('0x69')]({'where':{'isApp':!![],'VoiceExtensionId':_0x225aeb[_0x65f6('0x50')]['id']},'order':_0x65f6('0x6a')});});}})[_0x65f6('0x23')](respondWithResult(_0x39c244,null))[_0x65f6('0x4b')](handleError(_0x39c244,null));};