4acc4970d36543c7b231808f019336ec1af10edf
[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 _0x3273=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./voiceExtension.socket','end','status','offset','set','json','apply','reject','save','update','then','get','inbound','InternalRoutes','internal','filter','ignore','map','value','type','find','name','UserProfileResource','destroy','error','stack','index','VoiceExtension','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','limit','order','sort','where','pick','merge','VIRTUAL','count','includeAll','findAll','rows','catch','params','length','options','body','outbound','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','UserProfileSection','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','cutdigits','mandatoryDisposition','addApplications','findOne','transaction','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','zip-dir','fast-json-patch','moment','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce'];(function(_0x2c114a,_0x3d11d6){var _0x1450b9=function(_0x1266ac){while(--_0x1266ac){_0x2c114a['push'](_0x2c114a['shift']());}};_0x1450b9(++_0x3d11d6);}(_0x3273,0x125));var _0x3327=function(_0x58f8d6,_0x3de6e9){_0x58f8d6=_0x58f8d6-0x0;var _0x249399=_0x3273[_0x58f8d6];return _0x249399;};'use strict';var pdf=require(_0x3327('0x0'));var emlformat=require(_0x3327('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x3327('0x2'));var jsonpatch=require(_0x3327('0x3'));var rp=require('request-promise');var moment=require(_0x3327('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3327('0x5'));var util=require('util');var path=require('path');var sox=require(_0x3327('0x6'));var csv=require(_0x3327('0x7'));var ejs=require(_0x3327('0x8'));var fs=require('fs');var _=require(_0x3327('0x9'));var squel=require(_0x3327('0xa'));var crypto=require(_0x3327('0xb'));var jsforce=require(_0x3327('0xc'));var deskjs=require(_0x3327('0xd'));var toCsv=require(_0x3327('0x7'));var querystring=require(_0x3327('0xe'));var Papa=require(_0x3327('0xf'));var Redis=require(_0x3327('0x10'));var authService=require(_0x3327('0x11'));var qs=require(_0x3327('0x12'));var as=require(_0x3327('0x13'));var hardwareService=require(_0x3327('0x14'));var logger=require('../../config/logger')(_0x3327('0x15'));var utils=require('../../config/utils');var config=require(_0x3327('0x16'));var licenseUtil=require(_0x3327('0x17'));var db=require(_0x3327('0x18'))['db'];config['redis']=_[_0x3327('0x19')](config[_0x3327('0x1a')],{'host':_0x3327('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x3327('0x1c'))['register'](socket);function respondWithStatusCode(_0x552354,_0x414c05){_0x414c05=_0x414c05||0xcc;return function(_0x38e039){if(_0x38e039){return _0x552354['sendStatus'](_0x414c05);}return _0x552354['status'](_0x414c05)[_0x3327('0x1d')]();};}function respondWithResult(_0x22bc12,_0x445fc3){_0x445fc3=_0x445fc3||0xc8;return function(_0x1e0972){if(_0x1e0972){return _0x22bc12[_0x3327('0x1e')](_0x445fc3)['json'](_0x1e0972);}};}function respondWithFilteredResult(_0x3c4677,_0x55af8e){return function(_0x1175f0){if(_0x1175f0){var _0x247d6d=_0x1175f0['count'],_0x79927a=_0x55af8e[_0x3327('0x1f')],_0x13ca15=_0x55af8e[_0x3327('0x1f')]+_0x55af8e['limit'],_0x4b68e7;if(_0x13ca15>=_0x247d6d){_0x13ca15=_0x247d6d;_0x4b68e7=0xc8;}else{_0x4b68e7=0xce;}_0x3c4677[_0x3327('0x1e')](_0x4b68e7);return _0x3c4677[_0x3327('0x20')]('Content-Range',_0x79927a+'-'+_0x13ca15+'/'+_0x247d6d)[_0x3327('0x21')](_0x1175f0);}return null;};}function patchUpdates(_0x50ebbb){return function(_0x488772){try{jsonpatch[_0x3327('0x22')](_0x488772,_0x50ebbb,!![]);}catch(_0x453f6d){return BPromise[_0x3327('0x23')](_0x453f6d);}return _0x488772[_0x3327('0x24')]();};}function saveUpdates(_0x17cd8b,_0x3231df){return function(_0x32065b){if(_0x32065b){return _0x32065b[_0x3327('0x25')](_0x17cd8b)['then'](function(_0x11cfca){return _0x11cfca;});}return null;};}function removeEntity(_0x4ad49d,_0x40b5c2){return function(_0x4f0bf4){if(_0x4f0bf4){return _0x4f0bf4['destroy']()[_0x3327('0x26')](function(){var _0x4c7283=_0x4f0bf4[_0x3327('0x27')]({'plain':!![]});var _0xfd6bd1=[{'name':'InboundRoutes','value':_0x3327('0x28'),'ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x3327('0x29'),'value':_0x3327('0x2a'),'ignore':![]}];var _0x2ded67=_(_0xfd6bd1)[_0x3327('0x2b')](_0x3327('0x2c'))[_0x3327('0x2d')](_0x3327('0x2e'))['value']();if(_['includes'](_0x2ded67,_0x4c7283[_0x3327('0x2f')])){return;}var _0x31d1b3=_[_0x3327('0x30')](_0xfd6bd1,['value',_0x4c7283['type']])[_0x3327('0x31')];return db[_0x3327('0x32')][_0x3327('0x33')]({'where':{'type':_0x31d1b3,'resourceId':_0x4c7283['id']}})[_0x3327('0x26')](function(){return _0x4f0bf4;});})[_0x3327('0x26')](function(){_0x4ad49d[_0x3327('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x440e25,_0x187310){return function(_0x54e857){if(!_0x54e857){_0x440e25['sendStatus'](0x194);}return _0x54e857;};}function handleError(_0x10ead6,_0x2c5c8b){_0x2c5c8b=_0x2c5c8b||0x1f4;return function(_0x3f81b4){logger[_0x3327('0x34')](_0x3f81b4[_0x3327('0x35')]);if(_0x3f81b4[_0x3327('0x31')]){delete _0x3f81b4[_0x3327('0x31')];}_0x10ead6[_0x3327('0x1e')](_0x2c5c8b)['send'](_0x3f81b4);};}exports[_0x3327('0x36')]=function(_0x2f1fbe,_0x29bf2f){var _0x5e787d={},_0x5c94e2={},_0x2ee659={'count':0x0,'rows':[]};var _0x28690e=_[_0x3327('0x2d')](db[_0x3327('0x37')][_0x3327('0x38')],function(_0x375c04){return{'name':_0x375c04[_0x3327('0x39')],'type':_0x375c04[_0x3327('0x2f')][_0x3327('0x3a')]};});_0x5c94e2[_0x3327('0x3b')]=_[_0x3327('0x2d')](_0x28690e,'name');_0x5c94e2['query']=_[_0x3327('0x3c')](_0x2f1fbe[_0x3327('0x3d')]);_0x5c94e2[_0x3327('0x3e')]=_[_0x3327('0x3f')](_0x5c94e2[_0x3327('0x3b')],_0x5c94e2['query']);_0x5e787d[_0x3327('0x40')]=_[_0x3327('0x3f')](_0x5c94e2[_0x3327('0x3b')],qs[_0x3327('0x41')](_0x2f1fbe['query'][_0x3327('0x41')]));_0x5e787d['attributes']=_0x5e787d[_0x3327('0x40')]['length']?_0x5e787d['attributes']:_0x5c94e2[_0x3327('0x3b')];if(!_0x2f1fbe[_0x3327('0x3d')]['hasOwnProperty']('nolimit')){_0x5e787d['limit']=qs[_0x3327('0x42')](_0x2f1fbe['query']['limit']);_0x5e787d[_0x3327('0x1f')]=qs[_0x3327('0x1f')](_0x2f1fbe[_0x3327('0x3d')]['offset']);}_0x5e787d[_0x3327('0x43')]=qs[_0x3327('0x44')](_0x2f1fbe[_0x3327('0x3d')][_0x3327('0x44')]);_0x5e787d[_0x3327('0x45')]=qs[_0x3327('0x3e')](_[_0x3327('0x46')](_0x2f1fbe[_0x3327('0x3d')],_0x5c94e2[_0x3327('0x3e')]),_0x28690e);if(_0x2f1fbe[_0x3327('0x3d')][_0x3327('0x2b')]){_0x5e787d[_0x3327('0x45')]=_[_0x3327('0x47')](_0x5e787d[_0x3327('0x45')],{'$or':_['map'](_0x28690e,function(_0x3c540f){if(_0x3c540f['type']!==_0x3327('0x48')){var _0x58006b={};_0x58006b[_0x3c540f[_0x3327('0x31')]]={'$like':'%'+_0x2f1fbe['query'][_0x3327('0x2b')]+'%'};return _0x58006b;}})});}_0x5e787d=_[_0x3327('0x47')]({},_0x5e787d,_0x2f1fbe['options']);var _0xba9db3={'where':_0x5e787d[_0x3327('0x45')]};return db['VoiceExtension'][_0x3327('0x49')](_0xba9db3)[_0x3327('0x26')](function(_0x3521ee){_0x2ee659[_0x3327('0x49')]=_0x3521ee;if(_0x2f1fbe[_0x3327('0x3d')][_0x3327('0x4a')]){_0x5e787d['include']=[{'all':!![]}];}return db['VoiceExtension'][_0x3327('0x4b')](_0x5e787d);})[_0x3327('0x26')](function(_0x505d89){_0x2ee659[_0x3327('0x4c')]=_0x505d89;return _0x2ee659;})['then'](respondWithFilteredResult(_0x29bf2f,_0x5e787d))[_0x3327('0x4d')](handleError(_0x29bf2f,null));};exports['show']=function(_0x3bea6f,_0x8e23ee){var _0x1173d0={'raw':![],'where':{'id':_0x3bea6f[_0x3327('0x4e')]['id']}},_0x218024={};_0x218024[_0x3327('0x3b')]=_[_0x3327('0x3c')](db[_0x3327('0x37')][_0x3327('0x38')]);_0x218024[_0x3327('0x3d')]=_[_0x3327('0x3c')](_0x3bea6f[_0x3327('0x3d')]);_0x218024[_0x3327('0x3e')]=_[_0x3327('0x3f')](_0x218024['model'],_0x218024[_0x3327('0x3d')]);_0x1173d0[_0x3327('0x40')]=_[_0x3327('0x3f')](_0x218024[_0x3327('0x3b')],qs[_0x3327('0x41')](_0x3bea6f['query'][_0x3327('0x41')]));_0x1173d0[_0x3327('0x40')]=_0x1173d0[_0x3327('0x40')][_0x3327('0x4f')]?_0x1173d0['attributes']:_0x218024['model'];if(_0x3bea6f[_0x3327('0x3d')][_0x3327('0x4a')]){_0x1173d0['include']=[{'all':!![]}];}_0x1173d0=_['merge']({},_0x1173d0,_0x3bea6f[_0x3327('0x50')]);return db[_0x3327('0x37')][_0x3327('0x30')](_0x1173d0)[_0x3327('0x26')](handleEntityNotFound(_0x8e23ee,null))[_0x3327('0x26')](respondWithResult(_0x8e23ee,null))[_0x3327('0x4d')](handleError(_0x8e23ee,null));};exports[_0x3327('0x33')]=function(_0x16f514,_0x27ed95){return db[_0x3327('0x37')][_0x3327('0x30')]({'where':{'id':_0x16f514['params']['id']}})[_0x3327('0x26')](handleEntityNotFound(_0x27ed95,null))[_0x3327('0x26')](removeEntity(_0x27ed95,null))['catch'](handleError(_0x27ed95,null));};exports['create']=function(_0x14f11e,_0x454ba2){if(_0x14f11e[_0x3327('0x51')]['type']===_0x3327('0x52')&&!_[_0x3327('0x53')](_0x14f11e[_0x3327('0x51')][_0x3327('0x54')],'_')){_0x14f11e[_0x3327('0x51')][_0x3327('0x54')]='_'['concat'](_0x14f11e['body'][_0x3327('0x54')]);}return db[_0x3327('0x37')]['create'](_0x14f11e['body'],{'raw':![]})[_0x3327('0x26')](function(_0x426475){var _0x250aaf=_0x14f11e[_0x3327('0x55')][_0x3327('0x27')]({'plain':!![]});if(!_0x250aaf)throw new Error(_0x3327('0x56'));if(_0x250aaf[_0x3327('0x57')]===_0x3327('0x55')){var _0x142d23=_0x426475[_0x3327('0x27')]({'plain':!![]});var _0x3a02c8=[{'name':_0x3327('0x58'),'value':_0x3327('0x28')},{'name':'OutboundRoutes','value':_0x3327('0x52')},{'name':'InternalRoutes','value':_0x3327('0x2a')}];var _0x2e7426=_[_0x3327('0x30')](_0x3a02c8,[_0x3327('0x2e'),_0x142d23[_0x3327('0x2f')]])[_0x3327('0x31')];return db[_0x3327('0x59')][_0x3327('0x30')]({'where':{'name':_0x2e7426,'userProfileId':_0x250aaf[_0x3327('0x5a')]},'raw':!![]})[_0x3327('0x26')](function(_0xcdf02e){if(_0xcdf02e&&_0xcdf02e['autoAssociation']===0x0){return db[_0x3327('0x32')][_0x3327('0x5b')]({'name':_0x142d23[_0x3327('0x31')],'resourceId':_0x142d23['id'],'type':_0xcdf02e[_0x3327('0x31')],'sectionId':_0xcdf02e['id']},{})['then'](function(){return _0x426475;});}else{return _0x426475;}})['catch'](function(_0x3c0392){logger[_0x3327('0x34')](_0x3327('0x5c'),_0x3c0392);throw _0x3c0392;});}return _0x426475;})['then'](respondWithResult(_0x454ba2,0xc9))[_0x3327('0x4d')](handleError(_0x454ba2,null));};exports[_0x3327('0x25')]=function(_0x23985a,_0x4a5c4e){if(_0x23985a[_0x3327('0x51')]['id']){delete _0x23985a[_0x3327('0x51')]['id'];}return db['VoiceExtension'][_0x3327('0x30')]({'where':{'id':_0x23985a[_0x3327('0x4e')]['id']}})[_0x3327('0x26')](handleEntityNotFound(_0x4a5c4e,null))[_0x3327('0x26')](function(_0x7bb3e1){if(_0x7bb3e1){return db[_0x3327('0x37')][_0x3327('0x25')](_[_0x3327('0x46')](_0x23985a[_0x3327('0x51')],[_0x3327('0x54'),_0x3327('0x5d'),'description','recordingFormat',_0x3327('0x5e'),_0x3327('0x5f')]),{'where':{'context':_0x7bb3e1[_0x3327('0x5d')],'exten':_0x7bb3e1[_0x3327('0x54')]},'individualHooks':!![]})[_0x3327('0x26')](function(_0x468052){return _0x468052;});}return null;})['then'](respondWithStatusCode(_0x4a5c4e,null))[_0x3327('0x4d')](handleError(_0x4a5c4e,null));};exports[_0x3327('0x60')]=function(_0x39b226,_0x8a4ec2,_0x1d061b){return db['VoiceExtension'][_0x3327('0x61')]({'where':{'id':_0x39b226[_0x3327('0x4e')]['id']}})[_0x3327('0x26')](handleEntityNotFound(_0x8a4ec2,null))[_0x3327('0x26')](function(_0xc0a547){if(_0xc0a547){return db['sequelize'][_0x3327('0x62')](function(_0x21f29f){return db[_0x3327('0x37')]['destroy']({'where':{'VoiceExtensionId':_0x39b226[_0x3327('0x4e')]['id']},'transaction':_0x21f29f})[_0x3327('0x26')](function(_0x44c848){var _0x4380c=_[_0x3327('0x2d')](_0x39b226[_0x3327('0x51')],function(_0x27e84e){_0x27e84e['VoiceExtensionId']=_0x39b226[_0x3327('0x4e')]['id'];return _0x27e84e;});return db[_0x3327('0x37')][_0x3327('0x63')](_0x4380c,{'transaction':_0x21f29f});});})[_0x3327('0x26')](function(){return db[_0x3327('0x37')][_0x3327('0x64')]({'where':{'isApp':!![],'VoiceExtensionId':_0x39b226[_0x3327('0x4e')]['id']},'order':_0x3327('0x65')});});}})['then'](respondWithResult(_0x8a4ec2,null))[_0x3327('0x4d')](handleError(_0x8a4ec2,null));};