c24c0ad6b45be2364753319795314c309033df87
[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 _0x89a2=['offset','limit','Content-Range','apply','reject','update','then','destroy','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','filter','ignore','value','includes','type','find','name','error','index','map','VoiceExtension','rawAttributes','fieldName','key','model','keys','query','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','options','includeAll','findAll','rows','catch','show','params','attributes','body','outbound','startsWith','exten','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','recordingFormat','cutdigits','mandatoryDisposition','context','addApplications','sequelize','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','./voiceExtension.socket','register','sendStatus','status','end','json','count'];(function(_0x31bbde,_0x5b0dd3){var _0x3c37f2=function(_0x4589f1){while(--_0x4589f1){_0x31bbde['push'](_0x31bbde['shift']());}};_0x3c37f2(++_0x5b0dd3);}(_0x89a2,0xb5));var _0x289a=function(_0x27def7,_0x3f0835){_0x27def7=_0x27def7-0x0;var _0x581cbc=_0x89a2[_0x27def7];return _0x581cbc;};'use strict';var pdf=require(_0x289a('0x0'));var emlformat=require(_0x289a('0x1'));var rimraf=require(_0x289a('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x289a('0x3'));var rp=require(_0x289a('0x4'));var moment=require(_0x289a('0x5'));var BPromise=require(_0x289a('0x6'));var Mustache=require('mustache');var util=require(_0x289a('0x7'));var path=require('path');var sox=require(_0x289a('0x8'));var csv=require(_0x289a('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x289a('0xa'));var squel=require(_0x289a('0xb'));var crypto=require(_0x289a('0xc'));var jsforce=require(_0x289a('0xd'));var deskjs=require(_0x289a('0xe'));var toCsv=require(_0x289a('0x9'));var querystring=require(_0x289a('0xf'));var Papa=require(_0x289a('0x10'));var Redis=require(_0x289a('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x289a('0x12'));var as=require(_0x289a('0x13'));var hardwareService=require(_0x289a('0x14'));var logger=require(_0x289a('0x15'))(_0x289a('0x16'));var utils=require(_0x289a('0x17'));var config=require(_0x289a('0x18'));var licenseUtil=require(_0x289a('0x19'));var db=require('../../mysqldb')['db'];config[_0x289a('0x1a')]=_[_0x289a('0x1b')](config[_0x289a('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x289a('0x1a')]));require(_0x289a('0x1c'))[_0x289a('0x1d')](socket);function respondWithStatusCode(_0x2b5f7d,_0x4b4ed4){_0x4b4ed4=_0x4b4ed4||0xcc;return function(_0x428542){if(_0x428542){return _0x2b5f7d[_0x289a('0x1e')](_0x4b4ed4);}return _0x2b5f7d[_0x289a('0x1f')](_0x4b4ed4)[_0x289a('0x20')]();};}function respondWithResult(_0x151559,_0x985a01){_0x985a01=_0x985a01||0xc8;return function(_0x234737){if(_0x234737){return _0x151559[_0x289a('0x1f')](_0x985a01)[_0x289a('0x21')](_0x234737);}};}function respondWithFilteredResult(_0xdf3dde,_0x469b84){return function(_0x1d7f60){if(_0x1d7f60){var _0x469824=_0x1d7f60[_0x289a('0x22')],_0x690604=_0x469b84[_0x289a('0x23')],_0x4b2664=_0x469b84['offset']+_0x469b84[_0x289a('0x24')],_0x2c498f;if(_0x4b2664>=_0x469824){_0x4b2664=_0x469824;_0x2c498f=0xc8;}else{_0x2c498f=0xce;}_0xdf3dde[_0x289a('0x1f')](_0x2c498f);return _0xdf3dde['set'](_0x289a('0x25'),_0x690604+'-'+_0x4b2664+'/'+_0x469824)[_0x289a('0x21')](_0x1d7f60);}return null;};}function patchUpdates(_0x4a7149){return function(_0x5425ed){try{jsonpatch[_0x289a('0x26')](_0x5425ed,_0x4a7149,!![]);}catch(_0x508b6c){return BPromise[_0x289a('0x27')](_0x508b6c);}return _0x5425ed['save']();};}function saveUpdates(_0x1089f4,_0x2aac43){return function(_0x53f60a){if(_0x53f60a){return _0x53f60a[_0x289a('0x28')](_0x1089f4)[_0x289a('0x29')](function(_0x34a0ff){return _0x34a0ff;});}return null;};}function removeEntity(_0x26cc48,_0x51c373){return function(_0x3afd6b){if(_0x3afd6b){return _0x3afd6b[_0x289a('0x2a')]()[_0x289a('0x29')](function(){var _0x3af0c4=_0x3afd6b[_0x289a('0x2b')]({'plain':!![]});var _0x478eb9=[{'name':_0x289a('0x2c'),'value':_0x289a('0x2d'),'ignore':![]},{'name':_0x289a('0x2e'),'value':'outbound','ignore':![]},{'name':_0x289a('0x2f'),'value':_0x289a('0x30'),'ignore':![]}];var _0x346018=_(_0x478eb9)[_0x289a('0x31')](_0x289a('0x32'))['map'](_0x289a('0x33'))['value']();if(_[_0x289a('0x34')](_0x346018,_0x3af0c4[_0x289a('0x35')])){return;}var _0x20a8ad=_[_0x289a('0x36')](_0x478eb9,[_0x289a('0x33'),_0x3af0c4[_0x289a('0x35')]])[_0x289a('0x37')];return db['UserProfileResource'][_0x289a('0x2a')]({'where':{'type':_0x20a8ad,'resourceId':_0x3af0c4['id']}})[_0x289a('0x29')](function(){return _0x3afd6b;});})[_0x289a('0x29')](function(){_0x26cc48[_0x289a('0x1f')](0xcc)[_0x289a('0x20')]();});}};}function handleEntityNotFound(_0x2c4c1c,_0x3f91c3){return function(_0x4d68ff){if(!_0x4d68ff){_0x2c4c1c[_0x289a('0x1e')](0x194);}return _0x4d68ff;};}function handleError(_0x437190,_0x3c8c39){_0x3c8c39=_0x3c8c39||0x1f4;return function(_0x15327d){logger[_0x289a('0x38')](_0x15327d['stack']);if(_0x15327d['name']){delete _0x15327d[_0x289a('0x37')];}_0x437190['status'](_0x3c8c39)['send'](_0x15327d);};}exports[_0x289a('0x39')]=function(_0xf844aa,_0x121092){var _0x338149={},_0x3c3843={},_0x1a8828={'count':0x0,'rows':[]};var _0x2372e4=_[_0x289a('0x3a')](db[_0x289a('0x3b')][_0x289a('0x3c')],function(_0xec74b4){return{'name':_0xec74b4[_0x289a('0x3d')],'type':_0xec74b4['type'][_0x289a('0x3e')]};});_0x3c3843[_0x289a('0x3f')]=_['map'](_0x2372e4,'name');_0x3c3843['query']=_[_0x289a('0x40')](_0xf844aa[_0x289a('0x41')]);_0x3c3843['filters']=_[_0x289a('0x42')](_0x3c3843[_0x289a('0x3f')],_0x3c3843[_0x289a('0x41')]);_0x338149['attributes']=_[_0x289a('0x42')](_0x3c3843[_0x289a('0x3f')],qs[_0x289a('0x43')](_0xf844aa['query'][_0x289a('0x43')]));_0x338149['attributes']=_0x338149['attributes'][_0x289a('0x44')]?_0x338149['attributes']:_0x3c3843[_0x289a('0x3f')];if(!_0xf844aa[_0x289a('0x41')][_0x289a('0x45')](_0x289a('0x46'))){_0x338149['limit']=qs[_0x289a('0x24')](_0xf844aa[_0x289a('0x41')][_0x289a('0x24')]);_0x338149['offset']=qs[_0x289a('0x23')](_0xf844aa['query'][_0x289a('0x23')]);}_0x338149[_0x289a('0x47')]=qs[_0x289a('0x48')](_0xf844aa[_0x289a('0x41')][_0x289a('0x48')]);_0x338149[_0x289a('0x49')]=qs['filters'](_['pick'](_0xf844aa[_0x289a('0x41')],_0x3c3843[_0x289a('0x4a')]),_0x2372e4);if(_0xf844aa['query'][_0x289a('0x31')]){_0x338149['where']=_[_0x289a('0x4b')](_0x338149['where'],{'$or':_[_0x289a('0x3a')](_0x2372e4,function(_0x1a70f9){if(_0x1a70f9[_0x289a('0x35')]!=='VIRTUAL'){var _0x3571b1={};_0x3571b1[_0x1a70f9[_0x289a('0x37')]]={'$like':'%'+_0xf844aa[_0x289a('0x41')][_0x289a('0x31')]+'%'};return _0x3571b1;}})});}_0x338149=_[_0x289a('0x4b')]({},_0x338149,_0xf844aa[_0x289a('0x4c')]);var _0x1108c4={'where':_0x338149[_0x289a('0x49')]};return db[_0x289a('0x3b')]['count'](_0x1108c4)[_0x289a('0x29')](function(_0x5ad4ab){_0x1a8828[_0x289a('0x22')]=_0x5ad4ab;if(_0xf844aa[_0x289a('0x41')][_0x289a('0x4d')]){_0x338149['include']=[{'all':!![]}];}return db['VoiceExtension'][_0x289a('0x4e')](_0x338149);})[_0x289a('0x29')](function(_0x2485c9){_0x1a8828[_0x289a('0x4f')]=_0x2485c9;return _0x1a8828;})[_0x289a('0x29')](respondWithFilteredResult(_0x121092,_0x338149))[_0x289a('0x50')](handleError(_0x121092,null));};exports[_0x289a('0x51')]=function(_0x386560,_0x319229){var _0xd73e1f={'raw':![],'where':{'id':_0x386560[_0x289a('0x52')]['id']}},_0x5e0a97={};_0x5e0a97[_0x289a('0x3f')]=_['keys'](db[_0x289a('0x3b')][_0x289a('0x3c')]);_0x5e0a97[_0x289a('0x41')]=_[_0x289a('0x40')](_0x386560[_0x289a('0x41')]);_0x5e0a97[_0x289a('0x4a')]=_[_0x289a('0x42')](_0x5e0a97[_0x289a('0x3f')],_0x5e0a97[_0x289a('0x41')]);_0xd73e1f[_0x289a('0x53')]=_[_0x289a('0x42')](_0x5e0a97[_0x289a('0x3f')],qs[_0x289a('0x43')](_0x386560[_0x289a('0x41')][_0x289a('0x43')]));_0xd73e1f[_0x289a('0x53')]=_0xd73e1f[_0x289a('0x53')]['length']?_0xd73e1f[_0x289a('0x53')]:_0x5e0a97[_0x289a('0x3f')];if(_0x386560[_0x289a('0x41')]['includeAll']){_0xd73e1f['include']=[{'all':!![]}];}_0xd73e1f=_['merge']({},_0xd73e1f,_0x386560[_0x289a('0x4c')]);return db['VoiceExtension'][_0x289a('0x36')](_0xd73e1f)[_0x289a('0x29')](handleEntityNotFound(_0x319229,null))[_0x289a('0x29')](respondWithResult(_0x319229,null))[_0x289a('0x50')](handleError(_0x319229,null));};exports['destroy']=function(_0x3c530a,_0x239e5a){return db[_0x289a('0x3b')][_0x289a('0x36')]({'where':{'id':_0x3c530a[_0x289a('0x52')]['id']}})['then'](handleEntityNotFound(_0x239e5a,null))['then'](removeEntity(_0x239e5a,null))[_0x289a('0x50')](handleError(_0x239e5a,null));};exports['create']=function(_0x35e361,_0x27095d){if(_0x35e361[_0x289a('0x54')][_0x289a('0x35')]===_0x289a('0x55')&&!_[_0x289a('0x56')](_0x35e361[_0x289a('0x54')][_0x289a('0x57')],'_')){_0x35e361[_0x289a('0x54')][_0x289a('0x57')]='_'['concat'](_0x35e361[_0x289a('0x54')][_0x289a('0x57')]);}return db['VoiceExtension'][_0x289a('0x58')](_0x35e361[_0x289a('0x54')],{'raw':![]})[_0x289a('0x29')](function(_0x2c0d91){var _0x38146b=_0x35e361[_0x289a('0x59')]['get']({'plain':!![]});if(!_0x38146b)throw new Error(_0x289a('0x5a'));if(_0x38146b[_0x289a('0x5b')]===_0x289a('0x59')){var _0x5cee65=_0x2c0d91[_0x289a('0x2b')]({'plain':!![]});var _0xd674eb=[{'name':'InboundRoutes','value':_0x289a('0x2d')},{'name':_0x289a('0x2e'),'value':'outbound'},{'name':'InternalRoutes','value':_0x289a('0x30')}];var _0x5dbbdf=_['find'](_0xd674eb,['value',_0x5cee65[_0x289a('0x35')]])[_0x289a('0x37')];return db[_0x289a('0x5c')][_0x289a('0x36')]({'where':{'name':_0x5dbbdf,'userProfileId':_0x38146b[_0x289a('0x5d')]},'raw':!![]})[_0x289a('0x29')](function(_0x5ed373){if(_0x5ed373&&_0x5ed373[_0x289a('0x5e')]===0x0){return db[_0x289a('0x5f')]['create']({'name':_0x5cee65['name'],'resourceId':_0x5cee65['id'],'type':_0x5ed373[_0x289a('0x37')],'sectionId':_0x5ed373['id']},{})[_0x289a('0x29')](function(){return _0x2c0d91;});}else{return _0x2c0d91;}})[_0x289a('0x50')](function(_0x3c0769){logger[_0x289a('0x38')](_0x289a('0x60'),_0x3c0769);throw _0x3c0769;});}return _0x2c0d91;})[_0x289a('0x29')](respondWithResult(_0x27095d,0xc9))[_0x289a('0x50')](handleError(_0x27095d,null));};exports[_0x289a('0x28')]=function(_0x1e31cc,_0x1c249b){if(_0x1e31cc[_0x289a('0x54')]['id']){delete _0x1e31cc[_0x289a('0x54')]['id'];}return db[_0x289a('0x3b')][_0x289a('0x36')]({'where':{'id':_0x1e31cc[_0x289a('0x52')]['id']}})[_0x289a('0x29')](handleEntityNotFound(_0x1c249b,null))[_0x289a('0x29')](function(_0x5a2911){if(_0x5a2911){return db[_0x289a('0x3b')][_0x289a('0x28')](_['pick'](_0x1e31cc[_0x289a('0x54')],['exten','context',_0x289a('0x61'),_0x289a('0x62'),_0x289a('0x63'),_0x289a('0x64')]),{'where':{'context':_0x5a2911[_0x289a('0x65')],'exten':_0x5a2911[_0x289a('0x57')]},'individualHooks':!![]})[_0x289a('0x29')](function(_0x22f0d3){return _0x22f0d3;});}return null;})['then'](respondWithStatusCode(_0x1c249b,null))[_0x289a('0x50')](handleError(_0x1c249b,null));};exports[_0x289a('0x66')]=function(_0x26f959,_0x4220a3,_0x22073b){return db[_0x289a('0x3b')]['findOne']({'where':{'id':_0x26f959[_0x289a('0x52')]['id']}})['then'](handleEntityNotFound(_0x4220a3,null))[_0x289a('0x29')](function(_0x545393){if(_0x545393){return db[_0x289a('0x67')]['transaction'](function(_0xb9233d){return db[_0x289a('0x3b')][_0x289a('0x2a')]({'where':{'VoiceExtensionId':_0x26f959['params']['id']},'transaction':_0xb9233d})[_0x289a('0x29')](function(_0x354973){var _0x1867b2=_['map'](_0x26f959['body'],function(_0x3870dd){_0x3870dd[_0x289a('0x68')]=_0x26f959[_0x289a('0x52')]['id'];return _0x3870dd;});return db[_0x289a('0x3b')][_0x289a('0x69')](_0x1867b2,{'transaction':_0xb9233d});});})[_0x289a('0x29')](function(){return db[_0x289a('0x3b')][_0x289a('0x6a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x26f959['params']['id']},'order':_0x289a('0x6b')});});}})[_0x289a('0x29')](respondWithResult(_0x4220a3,null))[_0x289a('0x50')](handleError(_0x4220a3,null));};