Built motion from commit (unavailable).|2.5.12
[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 _0x4dbf=['model','query','keys','intersection','fields','attributes','length','nolimit','order','filters','pick','where','VIRTUAL','merge','options','includeAll','findAll','rows','catch','VoiceExtension','include','params','create','body','startsWith','exten','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','inbound','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','recordingFormat','cutdigits','mandatoryDisposition','addApplications','transaction','VoiceExtensionId','cast(priority\x20as\x20unsigned)','html-pdf','zip-dir','moment','mustache','util','sox','to-csv','ejs','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','defaults','localhost','socket.io-emitter','redis','./voiceExtension.socket','register','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','then','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','name','sendStatus','error','stack','send','index','rawAttributes','fieldName','key'];(function(_0x3c95e1,_0x51dd0d){var _0x3e7514=function(_0x19d619){while(--_0x19d619){_0x3c95e1['push'](_0x3c95e1['shift']());}};_0x3e7514(++_0x51dd0d);}(_0x4dbf,0x158));var _0xf4db=function(_0x5538d5,_0x190032){_0x5538d5=_0x5538d5-0x0;var _0x323b1a=_0x4dbf[_0x5538d5];return _0x323b1a;};'use strict';var pdf=require(_0xf4db('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf4db('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xf4db('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xf4db('0x3'));var util=require(_0xf4db('0x4'));var path=require('path');var sox=require(_0xf4db('0x5'));var csv=require(_0xf4db('0x6'));var ejs=require(_0xf4db('0x7'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xf4db('0x8'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf4db('0x6'));var querystring=require('querystring');var Papa=require(_0xf4db('0x9'));var Redis=require(_0xf4db('0xa'));var authService=require(_0xf4db('0xb'));var qs=require(_0xf4db('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf4db('0xd'))('api');var utils=require(_0xf4db('0xe'));var config=require(_0xf4db('0xf'));var licenseUtil=require(_0xf4db('0x10'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xf4db('0x11')](config['redis'],{'host':_0xf4db('0x12'),'port':0x18eb});var socket=require(_0xf4db('0x13'))(new Redis(config[_0xf4db('0x14')]));require(_0xf4db('0x15'))[_0xf4db('0x16')](socket);function respondWithStatusCode(_0x741907,_0x24c5d6){_0x24c5d6=_0x24c5d6||0xcc;return function(_0x6c9883){if(_0x6c9883){return _0x741907['sendStatus'](_0x24c5d6);}return _0x741907[_0xf4db('0x17')](_0x24c5d6)[_0xf4db('0x18')]();};}function respondWithResult(_0x39790e,_0x4ee01a){_0x4ee01a=_0x4ee01a||0xc8;return function(_0x2c8f42){if(_0x2c8f42){return _0x39790e['status'](_0x4ee01a)[_0xf4db('0x19')](_0x2c8f42);}};}function respondWithFilteredResult(_0x3545cf,_0x186692){return function(_0x1b7372){if(_0x1b7372){var _0x390f0c=_0x1b7372[_0xf4db('0x1a')],_0x1fe9cc=_0x186692[_0xf4db('0x1b')],_0x340edd=_0x186692[_0xf4db('0x1b')]+_0x186692[_0xf4db('0x1c')],_0x53095b;if(_0x340edd>=_0x390f0c){_0x340edd=_0x390f0c;_0x53095b=0xc8;}else{_0x53095b=0xce;}_0x3545cf['status'](_0x53095b);return _0x3545cf[_0xf4db('0x1d')]('Content-Range',_0x1fe9cc+'-'+_0x340edd+'/'+_0x390f0c)[_0xf4db('0x19')](_0x1b7372);}return null;};}function patchUpdates(_0x226ecf){return function(_0x17759f){try{jsonpatch[_0xf4db('0x1e')](_0x17759f,_0x226ecf,!![]);}catch(_0x330fd5){return BPromise[_0xf4db('0x1f')](_0x330fd5);}return _0x17759f[_0xf4db('0x20')]();};}function saveUpdates(_0x47fad8,_0x5effdf){return function(_0x5a2db5){if(_0x5a2db5){return _0x5a2db5[_0xf4db('0x21')](_0x47fad8)['then'](function(_0x25b76a){return _0x25b76a;});}return null;};}function removeEntity(_0x3b637a,_0x4d125e){return function(_0x18dd6e){if(_0x18dd6e){return _0x18dd6e[_0xf4db('0x22')]()[_0xf4db('0x23')](function(){var _0x564663=_0x18dd6e['get']({'plain':!![]});var _0xab68b5=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0xf4db('0x24'),'value':_0xf4db('0x25'),'ignore':![]},{'name':_0xf4db('0x26'),'value':_0xf4db('0x27'),'ignore':![]}];var _0x45886b=_(_0xab68b5)[_0xf4db('0x28')](_0xf4db('0x29'))[_0xf4db('0x2a')](_0xf4db('0x2b'))['value']();if(_[_0xf4db('0x2c')](_0x45886b,_0x564663[_0xf4db('0x2d')])){return;}var _0x19f7f7=_[_0xf4db('0x2e')](_0xab68b5,['value',_0x564663['type']])[_0xf4db('0x2f')];return db['UserProfileResource']['destroy']({'where':{'type':_0x19f7f7,'resourceId':_0x564663['id']}})[_0xf4db('0x23')](function(){return _0x18dd6e;});})['then'](function(){_0x3b637a[_0xf4db('0x17')](0xcc)[_0xf4db('0x18')]();});}};}function handleEntityNotFound(_0x426ef5,_0x566bea){return function(_0x4f7425){if(!_0x4f7425){_0x426ef5[_0xf4db('0x30')](0x194);}return _0x4f7425;};}function handleError(_0x1810d5,_0x1e8950){_0x1e8950=_0x1e8950||0x1f4;return function(_0x432686){logger[_0xf4db('0x31')](_0x432686[_0xf4db('0x32')]);if(_0x432686[_0xf4db('0x2f')]){delete _0x432686['name'];}_0x1810d5['status'](_0x1e8950)[_0xf4db('0x33')](_0x432686);};}exports[_0xf4db('0x34')]=function(_0x121be8,_0x5f2295){var _0x1ff072={},_0x452c2f={},_0x2de8ac={'count':0x0,'rows':[]};var _0x3ed43f=_[_0xf4db('0x2a')](db['VoiceExtension'][_0xf4db('0x35')],function(_0x29f4a8){return{'name':_0x29f4a8[_0xf4db('0x36')],'type':_0x29f4a8[_0xf4db('0x2d')][_0xf4db('0x37')]};});_0x452c2f[_0xf4db('0x38')]=_[_0xf4db('0x2a')](_0x3ed43f,'name');_0x452c2f[_0xf4db('0x39')]=_[_0xf4db('0x3a')](_0x121be8[_0xf4db('0x39')]);_0x452c2f['filters']=_[_0xf4db('0x3b')](_0x452c2f['model'],_0x452c2f[_0xf4db('0x39')]);_0x1ff072['attributes']=_[_0xf4db('0x3b')](_0x452c2f[_0xf4db('0x38')],qs['fields'](_0x121be8['query'][_0xf4db('0x3c')]));_0x1ff072[_0xf4db('0x3d')]=_0x1ff072['attributes'][_0xf4db('0x3e')]?_0x1ff072[_0xf4db('0x3d')]:_0x452c2f[_0xf4db('0x38')];if(!_0x121be8[_0xf4db('0x39')]['hasOwnProperty'](_0xf4db('0x3f'))){_0x1ff072[_0xf4db('0x1c')]=qs[_0xf4db('0x1c')](_0x121be8[_0xf4db('0x39')]['limit']);_0x1ff072[_0xf4db('0x1b')]=qs[_0xf4db('0x1b')](_0x121be8[_0xf4db('0x39')]['offset']);}_0x1ff072[_0xf4db('0x40')]=qs['sort'](_0x121be8[_0xf4db('0x39')]['sort']);_0x1ff072['where']=qs[_0xf4db('0x41')](_[_0xf4db('0x42')](_0x121be8[_0xf4db('0x39')],_0x452c2f[_0xf4db('0x41')]),_0x3ed43f);if(_0x121be8['query']['filter']){_0x1ff072['where']=_['merge'](_0x1ff072[_0xf4db('0x43')],{'$or':_[_0xf4db('0x2a')](_0x3ed43f,function(_0x37a9a9){if(_0x37a9a9[_0xf4db('0x2d')]!==_0xf4db('0x44')){var _0x5debca={};_0x5debca[_0x37a9a9['name']]={'$like':'%'+_0x121be8[_0xf4db('0x39')][_0xf4db('0x28')]+'%'};return _0x5debca;}})});}_0x1ff072=_[_0xf4db('0x45')]({},_0x1ff072,_0x121be8[_0xf4db('0x46')]);var _0xf86404={'where':_0x1ff072[_0xf4db('0x43')]};return db['VoiceExtension'][_0xf4db('0x1a')](_0xf86404)[_0xf4db('0x23')](function(_0x367950){_0x2de8ac[_0xf4db('0x1a')]=_0x367950;if(_0x121be8[_0xf4db('0x39')][_0xf4db('0x47')]){_0x1ff072['include']=[{'all':!![]}];}return db['VoiceExtension'][_0xf4db('0x48')](_0x1ff072);})[_0xf4db('0x23')](function(_0x27a94e){_0x2de8ac[_0xf4db('0x49')]=_0x27a94e;return _0x2de8ac;})[_0xf4db('0x23')](respondWithFilteredResult(_0x5f2295,_0x1ff072))[_0xf4db('0x4a')](handleError(_0x5f2295,null));};exports['show']=function(_0x4c159d,_0x2a6555){var _0x293e8d={'raw':![],'where':{'id':_0x4c159d['params']['id']}},_0xde50cc={};_0xde50cc['model']=_[_0xf4db('0x3a')](db[_0xf4db('0x4b')][_0xf4db('0x35')]);_0xde50cc[_0xf4db('0x39')]=_['keys'](_0x4c159d[_0xf4db('0x39')]);_0xde50cc[_0xf4db('0x41')]=_['intersection'](_0xde50cc[_0xf4db('0x38')],_0xde50cc['query']);_0x293e8d['attributes']=_['intersection'](_0xde50cc['model'],qs[_0xf4db('0x3c')](_0x4c159d[_0xf4db('0x39')][_0xf4db('0x3c')]));_0x293e8d[_0xf4db('0x3d')]=_0x293e8d[_0xf4db('0x3d')][_0xf4db('0x3e')]?_0x293e8d[_0xf4db('0x3d')]:_0xde50cc[_0xf4db('0x38')];if(_0x4c159d['query'][_0xf4db('0x47')]){_0x293e8d[_0xf4db('0x4c')]=[{'all':!![]}];}_0x293e8d=_[_0xf4db('0x45')]({},_0x293e8d,_0x4c159d[_0xf4db('0x46')]);return db['VoiceExtension']['find'](_0x293e8d)[_0xf4db('0x23')](handleEntityNotFound(_0x2a6555,null))['then'](respondWithResult(_0x2a6555,null))['catch'](handleError(_0x2a6555,null));};exports[_0xf4db('0x22')]=function(_0x406ea1,_0x251d7b){return db[_0xf4db('0x4b')][_0xf4db('0x2e')]({'where':{'id':_0x406ea1[_0xf4db('0x4d')]['id']}})[_0xf4db('0x23')](handleEntityNotFound(_0x251d7b,null))[_0xf4db('0x23')](removeEntity(_0x251d7b,null))['catch'](handleError(_0x251d7b,null));};exports[_0xf4db('0x4e')]=function(_0x60eed,_0xb58a66){if(_0x60eed[_0xf4db('0x4f')][_0xf4db('0x2d')]==='outbound'&&!_[_0xf4db('0x50')](_0x60eed[_0xf4db('0x4f')]['exten'],'_')){_0x60eed[_0xf4db('0x4f')]['exten']='_'['concat'](_0x60eed['body'][_0xf4db('0x51')]);}return db[_0xf4db('0x4b')][_0xf4db('0x4e')](_0x60eed['body'],{'raw':![]})[_0xf4db('0x23')](function(_0x55316e){var _0x14c7e1=_0x60eed[_0xf4db('0x52')][_0xf4db('0x53')]({'plain':!![]});if(!_0x14c7e1)throw new Error(_0xf4db('0x54'));if(_0x14c7e1[_0xf4db('0x55')]==='user'){var _0x5d8e8=_0x55316e[_0xf4db('0x53')]({'plain':!![]});var _0x1f09d2=[{'name':'InboundRoutes','value':_0xf4db('0x56')},{'name':_0xf4db('0x24'),'value':_0xf4db('0x25')},{'name':'InternalRoutes','value':_0xf4db('0x27')}];var _0x1d4378=_[_0xf4db('0x2e')](_0x1f09d2,['value',_0x5d8e8[_0xf4db('0x2d')]])[_0xf4db('0x2f')];return db[_0xf4db('0x57')][_0xf4db('0x2e')]({'where':{'name':_0x1d4378,'userProfileId':_0x14c7e1[_0xf4db('0x58')]},'raw':!![]})['then'](function(_0xc8a75b){if(_0xc8a75b&&_0xc8a75b[_0xf4db('0x59')]===0x0){return db[_0xf4db('0x5a')][_0xf4db('0x4e')]({'name':_0x5d8e8[_0xf4db('0x2f')],'resourceId':_0x5d8e8['id'],'type':_0xc8a75b['name'],'sectionId':_0xc8a75b['id']},{})[_0xf4db('0x23')](function(){return _0x55316e;});}else{return _0x55316e;}})[_0xf4db('0x4a')](function(_0x4aaea7){logger[_0xf4db('0x31')](_0xf4db('0x5b'),_0x4aaea7);throw _0x4aaea7;});}return _0x55316e;})[_0xf4db('0x23')](respondWithResult(_0xb58a66,0xc9))[_0xf4db('0x4a')](handleError(_0xb58a66,null));};exports[_0xf4db('0x21')]=function(_0xb54f94,_0x3c7bb8){if(_0xb54f94[_0xf4db('0x4f')]['id']){delete _0xb54f94['body']['id'];}return db[_0xf4db('0x4b')][_0xf4db('0x2e')]({'where':{'id':_0xb54f94[_0xf4db('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3c7bb8,null))[_0xf4db('0x23')](function(_0xbd8a1b){if(_0xbd8a1b){return db['VoiceExtension'][_0xf4db('0x21')](_['pick'](_0xb54f94[_0xf4db('0x4f')],[_0xf4db('0x51'),'context',_0xf4db('0x5c'),_0xf4db('0x5d'),_0xf4db('0x5e'),_0xf4db('0x5f')]),{'where':{'context':_0xbd8a1b['context'],'exten':_0xbd8a1b['exten']},'individualHooks':!![]})['then'](function(_0x1ef8ce){return _0x1ef8ce;});}return null;})['then'](respondWithStatusCode(_0x3c7bb8,null))[_0xf4db('0x4a')](handleError(_0x3c7bb8,null));};exports[_0xf4db('0x60')]=function(_0x437a7f,_0x13578c,_0x75e71d){return db[_0xf4db('0x4b')]['findOne']({'where':{'id':_0x437a7f[_0xf4db('0x4d')]['id']}})[_0xf4db('0x23')](handleEntityNotFound(_0x13578c,null))[_0xf4db('0x23')](function(_0x54b929){if(_0x54b929){return db['sequelize'][_0xf4db('0x61')](function(_0xb798a5){return db[_0xf4db('0x4b')][_0xf4db('0x22')]({'where':{'VoiceExtensionId':_0x437a7f[_0xf4db('0x4d')]['id']},'transaction':_0xb798a5})['then'](function(_0x40a39b){var _0x41a31e=_[_0xf4db('0x2a')](_0x437a7f[_0xf4db('0x4f')],function(_0x8832f4){_0x8832f4[_0xf4db('0x62')]=_0x437a7f[_0xf4db('0x4d')]['id'];return _0x8832f4;});return db['VoiceExtension']['bulkCreate'](_0x41a31e,{'transaction':_0xb798a5});});})[_0xf4db('0x23')](function(){return db[_0xf4db('0x4b')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x437a7f[_0xf4db('0x4d')]['id']},'order':_0xf4db('0x63')});});}})[_0xf4db('0x23')](respondWithResult(_0x13578c,null))[_0xf4db('0x4a')](handleError(_0x13578c,null));};