Built motion from commit (unavailable).|2.5.11
[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 _0x3e21=['../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','end','json','count','limit','status','set','apply','reject','save','update','then','destroy','get','OutboundRoutes','InternalRoutes','internal','ignore','map','value','includes','type','find','error','stack','name','send','index','VoiceExtension','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','offset','order','sort','where','filter','VIRTUAL','merge','findAll','rows','catch','rawAttributes','includeAll','include','params','body','outbound','exten','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','inbound','userProfileId','autoAssociation','UserProfileResource','pick','recordingFormat','cutdigits','mandatoryDisposition','context','addApplications','findOne','sequelize','VoiceExtensionId','bulkCreate','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x33f750,_0x3a0638){var _0xd2186a=function(_0x20b011){while(--_0x20b011){_0x33f750['push'](_0x33f750['shift']());}};_0xd2186a(++_0x3a0638);}(_0x3e21,0xc0));var _0x13e2=function(_0x2274f2,_0x71d568){_0x2274f2=_0x2274f2-0x0;var _0x25fd42=_0x3e21[_0x2274f2];return _0x25fd42;};'use strict';var pdf=require(_0x13e2('0x0'));var emlformat=require(_0x13e2('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x13e2('0x2'));var jsonpatch=require(_0x13e2('0x3'));var rp=require(_0x13e2('0x4'));var moment=require(_0x13e2('0x5'));var BPromise=require(_0x13e2('0x6'));var Mustache=require(_0x13e2('0x7'));var util=require(_0x13e2('0x8'));var path=require(_0x13e2('0x9'));var sox=require(_0x13e2('0xa'));var csv=require(_0x13e2('0xb'));var ejs=require(_0x13e2('0xc'));var fs=require('fs');var _=require(_0x13e2('0xd'));var squel=require(_0x13e2('0xe'));var crypto=require(_0x13e2('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x13e2('0x10'));var toCsv=require('to-csv');var querystring=require(_0x13e2('0x11'));var Papa=require('papaparse');var Redis=require(_0x13e2('0x12'));var authService=require(_0x13e2('0x13'));var qs=require(_0x13e2('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x13e2('0x15'));var logger=require(_0x13e2('0x16'))(_0x13e2('0x17'));var utils=require('../../config/utils');var config=require(_0x13e2('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x13e2('0x19'))['db'];config[_0x13e2('0x1a')]=_[_0x13e2('0x1b')](config[_0x13e2('0x1a')],{'host':_0x13e2('0x1c'),'port':0x18eb});var socket=require(_0x13e2('0x1d'))(new Redis(config['redis']));require(_0x13e2('0x1e'))[_0x13e2('0x1f')](socket);function respondWithStatusCode(_0x42342c,_0x4c2db5){_0x4c2db5=_0x4c2db5||0xcc;return function(_0x46f552){if(_0x46f552){return _0x42342c[_0x13e2('0x20')](_0x4c2db5);}return _0x42342c['status'](_0x4c2db5)[_0x13e2('0x21')]();};}function respondWithResult(_0x1128d8,_0x1aa92e){_0x1aa92e=_0x1aa92e||0xc8;return function(_0x540ef4){if(_0x540ef4){return _0x1128d8['status'](_0x1aa92e)[_0x13e2('0x22')](_0x540ef4);}};}function respondWithFilteredResult(_0x5a3493,_0x12f5a5){return function(_0x1bdb93){if(_0x1bdb93){var _0x2692cd=_0x1bdb93[_0x13e2('0x23')],_0x4f529c=_0x12f5a5['offset'],_0x1eec1b=_0x12f5a5['offset']+_0x12f5a5[_0x13e2('0x24')],_0x3bb061;if(_0x1eec1b>=_0x2692cd){_0x1eec1b=_0x2692cd;_0x3bb061=0xc8;}else{_0x3bb061=0xce;}_0x5a3493[_0x13e2('0x25')](_0x3bb061);return _0x5a3493[_0x13e2('0x26')]('Content-Range',_0x4f529c+'-'+_0x1eec1b+'/'+_0x2692cd)[_0x13e2('0x22')](_0x1bdb93);}return null;};}function patchUpdates(_0x4d3898){return function(_0x5f5a79){try{jsonpatch[_0x13e2('0x27')](_0x5f5a79,_0x4d3898,!![]);}catch(_0x1a1948){return BPromise[_0x13e2('0x28')](_0x1a1948);}return _0x5f5a79[_0x13e2('0x29')]();};}function saveUpdates(_0x22cda6,_0x26742f){return function(_0x321672){if(_0x321672){return _0x321672[_0x13e2('0x2a')](_0x22cda6)[_0x13e2('0x2b')](function(_0xc52cdf){return _0xc52cdf;});}return null;};}function removeEntity(_0x5641ea,_0x38ef5e){return function(_0x298aeb){if(_0x298aeb){return _0x298aeb[_0x13e2('0x2c')]()[_0x13e2('0x2b')](function(){var _0x2c7d4e=_0x298aeb[_0x13e2('0x2d')]({'plain':!![]});var _0x4cdf4f=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0x13e2('0x2e'),'value':'outbound','ignore':![]},{'name':_0x13e2('0x2f'),'value':_0x13e2('0x30'),'ignore':![]}];var _0x596fd6=_(_0x4cdf4f)['filter'](_0x13e2('0x31'))[_0x13e2('0x32')](_0x13e2('0x33'))[_0x13e2('0x33')]();if(_[_0x13e2('0x34')](_0x596fd6,_0x2c7d4e[_0x13e2('0x35')])){return;}var _0x105e50=_[_0x13e2('0x36')](_0x4cdf4f,[_0x13e2('0x33'),_0x2c7d4e[_0x13e2('0x35')]])['name'];return db['UserProfileResource'][_0x13e2('0x2c')]({'where':{'type':_0x105e50,'resourceId':_0x2c7d4e['id']}})[_0x13e2('0x2b')](function(){return _0x298aeb;});})[_0x13e2('0x2b')](function(){_0x5641ea['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4dde74,_0x71fed9){return function(_0x492123){if(!_0x492123){_0x4dde74[_0x13e2('0x20')](0x194);}return _0x492123;};}function handleError(_0x1490e2,_0x55cb3f){_0x55cb3f=_0x55cb3f||0x1f4;return function(_0x2e5e9f){logger[_0x13e2('0x37')](_0x2e5e9f[_0x13e2('0x38')]);if(_0x2e5e9f[_0x13e2('0x39')]){delete _0x2e5e9f['name'];}_0x1490e2[_0x13e2('0x25')](_0x55cb3f)[_0x13e2('0x3a')](_0x2e5e9f);};}exports[_0x13e2('0x3b')]=function(_0x41c618,_0x266564){var _0x5b32f0={},_0x41cb7e={},_0x1f836f={'count':0x0,'rows':[]};var _0x25f898=_[_0x13e2('0x32')](db[_0x13e2('0x3c')]['rawAttributes'],function(_0x1a10ef){return{'name':_0x1a10ef[_0x13e2('0x3d')],'type':_0x1a10ef[_0x13e2('0x35')][_0x13e2('0x3e')]};});_0x41cb7e[_0x13e2('0x3f')]=_[_0x13e2('0x32')](_0x25f898,_0x13e2('0x39'));_0x41cb7e[_0x13e2('0x40')]=_[_0x13e2('0x41')](_0x41c618[_0x13e2('0x40')]);_0x41cb7e[_0x13e2('0x42')]=_[_0x13e2('0x43')](_0x41cb7e[_0x13e2('0x3f')],_0x41cb7e['query']);_0x5b32f0[_0x13e2('0x44')]=_[_0x13e2('0x43')](_0x41cb7e[_0x13e2('0x3f')],qs[_0x13e2('0x45')](_0x41c618[_0x13e2('0x40')]['fields']));_0x5b32f0[_0x13e2('0x44')]=_0x5b32f0[_0x13e2('0x44')][_0x13e2('0x46')]?_0x5b32f0[_0x13e2('0x44')]:_0x41cb7e[_0x13e2('0x3f')];if(!_0x41c618[_0x13e2('0x40')][_0x13e2('0x47')]('nolimit')){_0x5b32f0[_0x13e2('0x24')]=qs[_0x13e2('0x24')](_0x41c618[_0x13e2('0x40')][_0x13e2('0x24')]);_0x5b32f0[_0x13e2('0x48')]=qs['offset'](_0x41c618['query'][_0x13e2('0x48')]);}_0x5b32f0[_0x13e2('0x49')]=qs[_0x13e2('0x4a')](_0x41c618[_0x13e2('0x40')][_0x13e2('0x4a')]);_0x5b32f0[_0x13e2('0x4b')]=qs[_0x13e2('0x42')](_['pick'](_0x41c618['query'],_0x41cb7e[_0x13e2('0x42')]),_0x25f898);if(_0x41c618[_0x13e2('0x40')][_0x13e2('0x4c')]){_0x5b32f0['where']=_['merge'](_0x5b32f0[_0x13e2('0x4b')],{'$or':_['map'](_0x25f898,function(_0x3a0fd9){if(_0x3a0fd9['type']!==_0x13e2('0x4d')){var _0x2e1ff6={};_0x2e1ff6[_0x3a0fd9[_0x13e2('0x39')]]={'$like':'%'+_0x41c618['query'][_0x13e2('0x4c')]+'%'};return _0x2e1ff6;}})});}_0x5b32f0=_[_0x13e2('0x4e')]({},_0x5b32f0,_0x41c618['options']);var _0x2ce3bc={'where':_0x5b32f0['where']};return db[_0x13e2('0x3c')]['count'](_0x2ce3bc)[_0x13e2('0x2b')](function(_0x41dec0){_0x1f836f[_0x13e2('0x23')]=_0x41dec0;if(_0x41c618['query']['includeAll']){_0x5b32f0['include']=[{'all':!![]}];}return db[_0x13e2('0x3c')][_0x13e2('0x4f')](_0x5b32f0);})[_0x13e2('0x2b')](function(_0x35088e){_0x1f836f[_0x13e2('0x50')]=_0x35088e;return _0x1f836f;})[_0x13e2('0x2b')](respondWithFilteredResult(_0x266564,_0x5b32f0))[_0x13e2('0x51')](handleError(_0x266564,null));};exports['show']=function(_0x23868a,_0x51f843){var _0x370ea6={'raw':![],'where':{'id':_0x23868a['params']['id']}},_0x25b0ef={};_0x25b0ef[_0x13e2('0x3f')]=_['keys'](db[_0x13e2('0x3c')][_0x13e2('0x52')]);_0x25b0ef['query']=_[_0x13e2('0x41')](_0x23868a[_0x13e2('0x40')]);_0x25b0ef['filters']=_['intersection'](_0x25b0ef['model'],_0x25b0ef[_0x13e2('0x40')]);_0x370ea6[_0x13e2('0x44')]=_[_0x13e2('0x43')](_0x25b0ef[_0x13e2('0x3f')],qs[_0x13e2('0x45')](_0x23868a[_0x13e2('0x40')][_0x13e2('0x45')]));_0x370ea6['attributes']=_0x370ea6[_0x13e2('0x44')][_0x13e2('0x46')]?_0x370ea6[_0x13e2('0x44')]:_0x25b0ef[_0x13e2('0x3f')];if(_0x23868a[_0x13e2('0x40')][_0x13e2('0x53')]){_0x370ea6[_0x13e2('0x54')]=[{'all':!![]}];}_0x370ea6=_[_0x13e2('0x4e')]({},_0x370ea6,_0x23868a['options']);return db[_0x13e2('0x3c')][_0x13e2('0x36')](_0x370ea6)[_0x13e2('0x2b')](handleEntityNotFound(_0x51f843,null))['then'](respondWithResult(_0x51f843,null))['catch'](handleError(_0x51f843,null));};exports['destroy']=function(_0x58ac69,_0x5c2914){return db['VoiceExtension'][_0x13e2('0x36')]({'where':{'id':_0x58ac69[_0x13e2('0x55')]['id']}})['then'](handleEntityNotFound(_0x5c2914,null))[_0x13e2('0x2b')](removeEntity(_0x5c2914,null))[_0x13e2('0x51')](handleError(_0x5c2914,null));};exports['create']=function(_0x2ebff9,_0x5b4a90){if(_0x2ebff9[_0x13e2('0x56')][_0x13e2('0x35')]===_0x13e2('0x57')&&!_['startsWith'](_0x2ebff9[_0x13e2('0x56')]['exten'],'_')){_0x2ebff9[_0x13e2('0x56')][_0x13e2('0x58')]='_'[_0x13e2('0x59')](_0x2ebff9['body'][_0x13e2('0x58')]);}return db['VoiceExtension'][_0x13e2('0x5a')](_0x2ebff9[_0x13e2('0x56')],{'raw':![]})[_0x13e2('0x2b')](function(_0x11a710){var _0x1a93ea=_0x2ebff9[_0x13e2('0x5b')][_0x13e2('0x2d')]({'plain':!![]});if(!_0x1a93ea)throw new Error(_0x13e2('0x5c'));if(_0x1a93ea['role']==='user'){var _0x491e10=_0x11a710[_0x13e2('0x2d')]({'plain':!![]});var _0x525e29=[{'name':'InboundRoutes','value':_0x13e2('0x5d')},{'name':'OutboundRoutes','value':_0x13e2('0x57')},{'name':'InternalRoutes','value':_0x13e2('0x30')}];var _0xfae8c3=_[_0x13e2('0x36')](_0x525e29,['value',_0x491e10[_0x13e2('0x35')]])['name'];return db['UserProfileSection'][_0x13e2('0x36')]({'where':{'name':_0xfae8c3,'userProfileId':_0x1a93ea[_0x13e2('0x5e')]},'raw':!![]})[_0x13e2('0x2b')](function(_0x313d0a){if(_0x313d0a&&_0x313d0a[_0x13e2('0x5f')]===0x0){return db[_0x13e2('0x60')][_0x13e2('0x5a')]({'name':_0x491e10[_0x13e2('0x39')],'resourceId':_0x491e10['id'],'type':_0x313d0a['name'],'sectionId':_0x313d0a['id']},{})[_0x13e2('0x2b')](function(){return _0x11a710;});}else{return _0x11a710;}})['catch'](function(_0x2cb748){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2cb748);throw _0x2cb748;});}return _0x11a710;})[_0x13e2('0x2b')](respondWithResult(_0x5b4a90,0xc9))[_0x13e2('0x51')](handleError(_0x5b4a90,null));};exports[_0x13e2('0x2a')]=function(_0x429cdc,_0x4372b5){if(_0x429cdc[_0x13e2('0x56')]['id']){delete _0x429cdc[_0x13e2('0x56')]['id'];}return db[_0x13e2('0x3c')][_0x13e2('0x36')]({'where':{'id':_0x429cdc[_0x13e2('0x55')]['id']}})['then'](handleEntityNotFound(_0x4372b5,null))[_0x13e2('0x2b')](function(_0x5b265e){if(_0x5b265e){return db[_0x13e2('0x3c')][_0x13e2('0x2a')](_[_0x13e2('0x61')](_0x429cdc[_0x13e2('0x56')],[_0x13e2('0x58'),'context','description',_0x13e2('0x62'),_0x13e2('0x63'),_0x13e2('0x64')]),{'where':{'context':_0x5b265e[_0x13e2('0x65')],'exten':_0x5b265e[_0x13e2('0x58')]},'individualHooks':!![]})[_0x13e2('0x2b')](function(_0xb54374){return _0xb54374;});}return null;})[_0x13e2('0x2b')](respondWithStatusCode(_0x4372b5,null))[_0x13e2('0x51')](handleError(_0x4372b5,null));};exports[_0x13e2('0x66')]=function(_0x271494,_0x11be58,_0x38199a){return db[_0x13e2('0x3c')][_0x13e2('0x67')]({'where':{'id':_0x271494[_0x13e2('0x55')]['id']}})[_0x13e2('0x2b')](handleEntityNotFound(_0x11be58,null))[_0x13e2('0x2b')](function(_0x3bdf26){if(_0x3bdf26){return db[_0x13e2('0x68')]['transaction'](function(_0x2521ea){return db[_0x13e2('0x3c')]['destroy']({'where':{'VoiceExtensionId':_0x271494[_0x13e2('0x55')]['id']},'transaction':_0x2521ea})[_0x13e2('0x2b')](function(_0x1e2427){var _0x5d221e=_[_0x13e2('0x32')](_0x271494[_0x13e2('0x56')],function(_0x337763){_0x337763[_0x13e2('0x69')]=_0x271494[_0x13e2('0x55')]['id'];return _0x337763;});return db[_0x13e2('0x3c')][_0x13e2('0x6a')](_0x5d221e,{'transaction':_0x2521ea});});})[_0x13e2('0x2b')](function(){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x271494[_0x13e2('0x55')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0x11be58,null))[_0x13e2('0x51')](handleError(_0x11be58,null));};