Built motion from commit (unavailable).|2.5.14
[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 _0xcedb=['recordingFormat','cutdigits','sequelize','transaction','VoiceExtensionId','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','value','includes','type','name','UserProfileResource','end','stack','send','VoiceExtension','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','VIRTUAL','options','includeAll','findAll','rows','params','include','find','catch','create','body','startsWith','exten','user','role','InboundRoutes','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xcedb,0x1b7));var _0xbced=function(_0xf11126,_0x1eac80){_0xf11126=_0xf11126-0x0;var _0x216602=_0xcedb[_0xf11126];return _0x216602;};'use strict';var pdf=require(_0xbced('0x0'));var emlformat=require(_0xbced('0x1'));var rimraf=require(_0xbced('0x2'));var zipdir=require(_0xbced('0x3'));var jsonpatch=require(_0xbced('0x4'));var rp=require(_0xbced('0x5'));var moment=require(_0xbced('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xbced('0x7'));var util=require(_0xbced('0x8'));var path=require('path');var sox=require(_0xbced('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xbced('0xa'));var squel=require(_0xbced('0xb'));var crypto=require('crypto');var jsforce=require(_0xbced('0xc'));var deskjs=require(_0xbced('0xd'));var toCsv=require('to-csv');var querystring=require(_0xbced('0xe'));var Papa=require(_0xbced('0xf'));var Redis=require(_0xbced('0x10'));var authService=require(_0xbced('0x11'));var qs=require(_0xbced('0x12'));var as=require(_0xbced('0x13'));var hardwareService=require(_0xbced('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xbced('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xbced('0x16'));var db=require(_0xbced('0x17'))['db'];config[_0xbced('0x18')]=_[_0xbced('0x19')](config[_0xbced('0x18')],{'host':_0xbced('0x1a'),'port':0x18eb});var socket=require(_0xbced('0x1b'))(new Redis(config[_0xbced('0x18')]));require(_0xbced('0x1c'))[_0xbced('0x1d')](socket);function respondWithStatusCode(_0x57ec7b,_0x4502ae){_0x4502ae=_0x4502ae||0xcc;return function(_0x11ea96){if(_0x11ea96){return _0x57ec7b['sendStatus'](_0x4502ae);}return _0x57ec7b[_0xbced('0x1e')](_0x4502ae)['end']();};}function respondWithResult(_0x18cc9b,_0x23219a){_0x23219a=_0x23219a||0xc8;return function(_0x367533){if(_0x367533){return _0x18cc9b[_0xbced('0x1e')](_0x23219a)[_0xbced('0x1f')](_0x367533);}};}function respondWithFilteredResult(_0x40cfcf,_0x4f891d){return function(_0x250ff4){if(_0x250ff4){var _0x41353f=_0x250ff4[_0xbced('0x20')],_0x52efc6=_0x4f891d[_0xbced('0x21')],_0x252f7f=_0x4f891d['offset']+_0x4f891d[_0xbced('0x22')],_0x168acd;if(_0x252f7f>=_0x41353f){_0x252f7f=_0x41353f;_0x168acd=0xc8;}else{_0x168acd=0xce;}_0x40cfcf[_0xbced('0x1e')](_0x168acd);return _0x40cfcf[_0xbced('0x23')](_0xbced('0x24'),_0x52efc6+'-'+_0x252f7f+'/'+_0x41353f)[_0xbced('0x1f')](_0x250ff4);}return null;};}function patchUpdates(_0x1d304c){return function(_0x339ad9){try{jsonpatch[_0xbced('0x25')](_0x339ad9,_0x1d304c,!![]);}catch(_0xb775ae){return BPromise[_0xbced('0x26')](_0xb775ae);}return _0x339ad9[_0xbced('0x27')]();};}function saveUpdates(_0x4c25e0,_0x471939){return function(_0x4434a6){if(_0x4434a6){return _0x4434a6[_0xbced('0x28')](_0x4c25e0)['then'](function(_0x8af517){return _0x8af517;});}return null;};}function removeEntity(_0x35006d,_0x31cc28){return function(_0x3e66a7){if(_0x3e66a7){return _0x3e66a7[_0xbced('0x29')]()[_0xbced('0x2a')](function(){var _0x26054a=_0x3e66a7[_0xbced('0x2b')]({'plain':!![]});var _0x8def3c=[{'name':'InboundRoutes','value':_0xbced('0x2c'),'ignore':![]},{'name':_0xbced('0x2d'),'value':_0xbced('0x2e'),'ignore':![]},{'name':_0xbced('0x2f'),'value':_0xbced('0x30'),'ignore':![]}];var _0x501220=_(_0x8def3c)[_0xbced('0x31')](_0xbced('0x32'))['map'](_0xbced('0x33'))[_0xbced('0x33')]();if(_[_0xbced('0x34')](_0x501220,_0x26054a['type'])){return;}var _0x2d4d44=_['find'](_0x8def3c,[_0xbced('0x33'),_0x26054a[_0xbced('0x35')]])[_0xbced('0x36')];return db[_0xbced('0x37')]['destroy']({'where':{'type':_0x2d4d44,'resourceId':_0x26054a['id']}})['then'](function(){return _0x3e66a7;});})[_0xbced('0x2a')](function(){_0x35006d[_0xbced('0x1e')](0xcc)[_0xbced('0x38')]();});}};}function handleEntityNotFound(_0x11b799,_0x1ee21c){return function(_0x35ed59){if(!_0x35ed59){_0x11b799['sendStatus'](0x194);}return _0x35ed59;};}function handleError(_0x4760a3,_0x366edc){_0x366edc=_0x366edc||0x1f4;return function(_0xe7f5ae){logger['error'](_0xe7f5ae[_0xbced('0x39')]);if(_0xe7f5ae[_0xbced('0x36')]){delete _0xe7f5ae[_0xbced('0x36')];}_0x4760a3[_0xbced('0x1e')](_0x366edc)[_0xbced('0x3a')](_0xe7f5ae);};}exports['index']=function(_0x51192c,_0x6067b9){var _0x2a5f2a={},_0x334406={},_0x5397b2={'count':0x0,'rows':[]};var _0x2c599e=_['map'](db[_0xbced('0x3b')]['rawAttributes'],function(_0x33c5e4){return{'name':_0x33c5e4[_0xbced('0x3c')],'type':_0x33c5e4['type'][_0xbced('0x3d')]};});_0x334406[_0xbced('0x3e')]=_['map'](_0x2c599e,_0xbced('0x36'));_0x334406[_0xbced('0x3f')]=_[_0xbced('0x40')](_0x51192c['query']);_0x334406[_0xbced('0x41')]=_['intersection'](_0x334406[_0xbced('0x3e')],_0x334406[_0xbced('0x3f')]);_0x2a5f2a['attributes']=_[_0xbced('0x42')](_0x334406[_0xbced('0x3e')],qs[_0xbced('0x43')](_0x51192c['query'][_0xbced('0x43')]));_0x2a5f2a['attributes']=_0x2a5f2a[_0xbced('0x44')][_0xbced('0x45')]?_0x2a5f2a['attributes']:_0x334406[_0xbced('0x3e')];if(!_0x51192c[_0xbced('0x3f')][_0xbced('0x46')](_0xbced('0x47'))){_0x2a5f2a[_0xbced('0x22')]=qs[_0xbced('0x22')](_0x51192c[_0xbced('0x3f')]['limit']);_0x2a5f2a[_0xbced('0x21')]=qs[_0xbced('0x21')](_0x51192c[_0xbced('0x3f')]['offset']);}_0x2a5f2a[_0xbced('0x48')]=qs[_0xbced('0x49')](_0x51192c['query']['sort']);_0x2a5f2a[_0xbced('0x4a')]=qs[_0xbced('0x41')](_[_0xbced('0x4b')](_0x51192c[_0xbced('0x3f')],_0x334406[_0xbced('0x41')]),_0x2c599e);if(_0x51192c[_0xbced('0x3f')][_0xbced('0x31')]){_0x2a5f2a[_0xbced('0x4a')]=_[_0xbced('0x4c')](_0x2a5f2a[_0xbced('0x4a')],{'$or':_[_0xbced('0x4d')](_0x2c599e,function(_0x464dcc){if(_0x464dcc['type']!==_0xbced('0x4e')){var _0x432f9c={};_0x432f9c[_0x464dcc[_0xbced('0x36')]]={'$like':'%'+_0x51192c['query'][_0xbced('0x31')]+'%'};return _0x432f9c;}})});}_0x2a5f2a=_[_0xbced('0x4c')]({},_0x2a5f2a,_0x51192c[_0xbced('0x4f')]);var _0x10bcee={'where':_0x2a5f2a[_0xbced('0x4a')]};return db[_0xbced('0x3b')][_0xbced('0x20')](_0x10bcee)[_0xbced('0x2a')](function(_0x3edd3c){_0x5397b2[_0xbced('0x20')]=_0x3edd3c;if(_0x51192c[_0xbced('0x3f')][_0xbced('0x50')]){_0x2a5f2a['include']=[{'all':!![]}];}return db['VoiceExtension'][_0xbced('0x51')](_0x2a5f2a);})['then'](function(_0x20480c){_0x5397b2[_0xbced('0x52')]=_0x20480c;return _0x5397b2;})[_0xbced('0x2a')](respondWithFilteredResult(_0x6067b9,_0x2a5f2a))['catch'](handleError(_0x6067b9,null));};exports['show']=function(_0x411bf6,_0x2165b4){var _0x161f4f={'raw':![],'where':{'id':_0x411bf6[_0xbced('0x53')]['id']}},_0x2b3176={};_0x2b3176[_0xbced('0x3e')]=_[_0xbced('0x40')](db[_0xbced('0x3b')]['rawAttributes']);_0x2b3176['query']=_[_0xbced('0x40')](_0x411bf6['query']);_0x2b3176[_0xbced('0x41')]=_['intersection'](_0x2b3176[_0xbced('0x3e')],_0x2b3176[_0xbced('0x3f')]);_0x161f4f[_0xbced('0x44')]=_['intersection'](_0x2b3176['model'],qs[_0xbced('0x43')](_0x411bf6[_0xbced('0x3f')][_0xbced('0x43')]));_0x161f4f[_0xbced('0x44')]=_0x161f4f[_0xbced('0x44')][_0xbced('0x45')]?_0x161f4f['attributes']:_0x2b3176[_0xbced('0x3e')];if(_0x411bf6['query'][_0xbced('0x50')]){_0x161f4f[_0xbced('0x54')]=[{'all':!![]}];}_0x161f4f=_[_0xbced('0x4c')]({},_0x161f4f,_0x411bf6[_0xbced('0x4f')]);return db['VoiceExtension'][_0xbced('0x55')](_0x161f4f)[_0xbced('0x2a')](handleEntityNotFound(_0x2165b4,null))[_0xbced('0x2a')](respondWithResult(_0x2165b4,null))['catch'](handleError(_0x2165b4,null));};exports['destroy']=function(_0x5e8248,_0x4291ea){return db['VoiceExtension'][_0xbced('0x55')]({'where':{'id':_0x5e8248[_0xbced('0x53')]['id']}})['then'](handleEntityNotFound(_0x4291ea,null))[_0xbced('0x2a')](removeEntity(_0x4291ea,null))[_0xbced('0x56')](handleError(_0x4291ea,null));};exports[_0xbced('0x57')]=function(_0x41c268,_0x36a882){if(_0x41c268[_0xbced('0x58')][_0xbced('0x35')]===_0xbced('0x2e')&&!_[_0xbced('0x59')](_0x41c268['body'][_0xbced('0x5a')],'_')){_0x41c268['body'][_0xbced('0x5a')]='_'['concat'](_0x41c268['body'][_0xbced('0x5a')]);}return db[_0xbced('0x3b')][_0xbced('0x57')](_0x41c268[_0xbced('0x58')],{'raw':![]})[_0xbced('0x2a')](function(_0x4a515c){var _0x49301c=_0x41c268[_0xbced('0x5b')]['get']({'plain':!![]});if(!_0x49301c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x49301c[_0xbced('0x5c')]===_0xbced('0x5b')){var _0x196da2=_0x4a515c[_0xbced('0x2b')]({'plain':!![]});var _0x215618=[{'name':_0xbced('0x5d'),'value':_0xbced('0x2c')},{'name':_0xbced('0x2d'),'value':_0xbced('0x2e')},{'name':_0xbced('0x2f'),'value':_0xbced('0x30')}];var _0x5f075a=_[_0xbced('0x55')](_0x215618,['value',_0x196da2[_0xbced('0x35')]])[_0xbced('0x36')];return db[_0xbced('0x5e')][_0xbced('0x55')]({'where':{'name':_0x5f075a,'userProfileId':_0x49301c[_0xbced('0x5f')]},'raw':!![]})[_0xbced('0x2a')](function(_0x11a360){if(_0x11a360&&_0x11a360[_0xbced('0x60')]===0x0){return db[_0xbced('0x37')]['create']({'name':_0x196da2['name'],'resourceId':_0x196da2['id'],'type':_0x11a360[_0xbced('0x36')],'sectionId':_0x11a360['id']},{})['then'](function(){return _0x4a515c;});}else{return _0x4a515c;}})[_0xbced('0x56')](function(_0x36f55f){logger[_0xbced('0x61')](_0xbced('0x62'),_0x36f55f);throw _0x36f55f;});}return _0x4a515c;})[_0xbced('0x2a')](respondWithResult(_0x36a882,0xc9))[_0xbced('0x56')](handleError(_0x36a882,null));};exports[_0xbced('0x28')]=function(_0x353081,_0x47caa2){if(_0x353081[_0xbced('0x58')]['id']){delete _0x353081[_0xbced('0x58')]['id'];}return db[_0xbced('0x3b')][_0xbced('0x55')]({'where':{'id':_0x353081[_0xbced('0x53')]['id']}})[_0xbced('0x2a')](handleEntityNotFound(_0x47caa2,null))[_0xbced('0x2a')](function(_0x8eeb8a){if(_0x8eeb8a){return db['VoiceExtension']['update'](_[_0xbced('0x4b')](_0x353081['body'],[_0xbced('0x5a'),_0xbced('0x63'),_0xbced('0x64'),_0xbced('0x65'),_0xbced('0x66'),'mandatoryDisposition']),{'where':{'context':_0x8eeb8a['context'],'exten':_0x8eeb8a[_0xbced('0x5a')]},'individualHooks':!![]})[_0xbced('0x2a')](function(_0x265ab6){return _0x265ab6;});}return null;})[_0xbced('0x2a')](respondWithStatusCode(_0x47caa2,null))['catch'](handleError(_0x47caa2,null));};exports['addApplications']=function(_0x22e078,_0x43c8b3,_0x36f83b){return db[_0xbced('0x3b')]['findOne']({'where':{'id':_0x22e078[_0xbced('0x53')]['id']}})[_0xbced('0x2a')](handleEntityNotFound(_0x43c8b3,null))[_0xbced('0x2a')](function(_0x176d3a){if(_0x176d3a){return db[_0xbced('0x67')][_0xbced('0x68')](function(_0x43e4b8){return db['VoiceExtension'][_0xbced('0x29')]({'where':{'VoiceExtensionId':_0x22e078['params']['id']},'transaction':_0x43e4b8})[_0xbced('0x2a')](function(_0xa1ce5d){var _0x404170=_['map'](_0x22e078[_0xbced('0x58')],function(_0x1c58f3){_0x1c58f3[_0xbced('0x69')]=_0x22e078[_0xbced('0x53')]['id'];return _0x1c58f3;});return db[_0xbced('0x3b')]['bulkCreate'](_0x404170,{'transaction':_0x43e4b8});});})[_0xbced('0x2a')](function(){return db[_0xbced('0x3b')][_0xbced('0x6a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x22e078['params']['id']},'order':_0xbced('0x6b')});});}})['then'](respondWithResult(_0x43c8b3,null))[_0xbced('0x56')](handleError(_0x43c8b3,null));};