Built motion from commit (unavailable).|2.2.0
[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 _0x42e0=['pick','add','day','merge','filter','field','VoiceExtension','count','include','findAll','rows','show','params','length','includeAll','options','find','create','body','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description','recordingFormat','cutdigits','findOne','transaction','VoiceExtensionId','cast(priority\x20as\x20unsigned)','html-pdf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','register','sendStatus','status','json','offset','limit','set','apply','save','update','then','destroy','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','ignore','map','value','includes','type','name','UserProfileResource','end','index','rawAttributes','model','keys','query','dateStart','dateEnd','attributes','intersection','fields','nolimit','order','sort','where','filters'];(function(_0x47df54,_0x1aeb61){var _0x261b87=function(_0x54bc77){while(--_0x54bc77){_0x47df54['push'](_0x47df54['shift']());}};_0x261b87(++_0x1aeb61);}(_0x42e0,0x1bd));var _0x042e=function(_0x557b09,_0x40e462){_0x557b09=_0x557b09-0x0;var _0x2650c4=_0x42e0[_0x557b09];return _0x2650c4;};'use strict';var pdf=require(_0x042e('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x042e('0x1'));var jsonpatch=require(_0x042e('0x2'));var rp=require(_0x042e('0x3'));var moment=require(_0x042e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x042e('0x5'));var path=require(_0x042e('0x6'));var sox=require(_0x042e('0x7'));var csv=require(_0x042e('0x8'));var ejs=require(_0x042e('0x9'));var fs=require('fs');var _=require(_0x042e('0xa'));var squel=require(_0x042e('0xb'));var crypto=require('crypto');var jsforce=require(_0x042e('0xc'));var deskjs=require(_0x042e('0xd'));var toCsv=require(_0x042e('0x8'));var querystring=require(_0x042e('0xe'));var Papa=require(_0x042e('0xf'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x042e('0x10'))(_0x042e('0x11'));var utils=require(_0x042e('0x12'));var config=require(_0x042e('0x13'));var db=require(_0x042e('0x14'))['db'];config[_0x042e('0x15')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x042e('0x16'))(new Redis(config[_0x042e('0x15')]));require('./voiceExtension.socket')[_0x042e('0x17')](socket);function respondWithStatusCode(_0x51d895,_0x33c77d){_0x33c77d=_0x33c77d||0xcc;return function(_0x100fa5){if(_0x100fa5){return _0x51d895[_0x042e('0x18')](_0x33c77d);}return _0x51d895[_0x042e('0x19')](_0x33c77d)['end']();};}function respondWithResult(_0x149901,_0x4b220b){_0x4b220b=_0x4b220b||0xc8;return function(_0x125408){if(_0x125408){return _0x149901[_0x042e('0x19')](_0x4b220b)[_0x042e('0x1a')](_0x125408);}};}function respondWithFilteredResult(_0x2019d0,_0x3e816d){return function(_0x5190a6){if(_0x5190a6){var _0x5279c7=_0x5190a6['count'],_0x245e5d=_0x3e816d[_0x042e('0x1b')],_0x3e7767=_0x3e816d[_0x042e('0x1b')]+_0x3e816d[_0x042e('0x1c')],_0x5031e5;if(_0x3e7767>=_0x5279c7){_0x3e7767=_0x5279c7;_0x5031e5=0xc8;}else{_0x5031e5=0xce;}_0x2019d0[_0x042e('0x19')](_0x5031e5);return _0x2019d0[_0x042e('0x1d')]('Content-Range',_0x245e5d+'-'+_0x3e7767+'/'+_0x5279c7)[_0x042e('0x1a')](_0x5190a6);}return null;};}function patchUpdates(_0x4fe5d3){return function(_0x4964e8){try{jsonpatch[_0x042e('0x1e')](_0x4964e8,_0x4fe5d3,!![]);}catch(_0x52dc19){return BPromise['reject'](_0x52dc19);}return _0x4964e8[_0x042e('0x1f')]();};}function saveUpdates(_0x530c6c,_0x5245b8){return function(_0x10236e){if(_0x10236e){return _0x10236e[_0x042e('0x20')](_0x530c6c)[_0x042e('0x21')](function(_0x3c9e6f){return _0x3c9e6f;});}return null;};}function removeEntity(_0x5c1bd8,_0x5a52ed){return function(_0x22b83d){if(_0x22b83d){return _0x22b83d[_0x042e('0x22')]()['then'](function(){var _0x1fce9b=_0x22b83d[_0x042e('0x23')]({'plain':!![]});var _0x31ae03=[{'name':_0x042e('0x24'),'value':_0x042e('0x25'),'ignore':![]},{'name':_0x042e('0x26'),'value':_0x042e('0x27'),'ignore':![]},{'name':_0x042e('0x28'),'value':_0x042e('0x29'),'ignore':![]}];var _0x3f4ad0=_(_0x31ae03)['filter'](_0x042e('0x2a'))[_0x042e('0x2b')](_0x042e('0x2c'))[_0x042e('0x2c')]();if(_[_0x042e('0x2d')](_0x3f4ad0,_0x1fce9b[_0x042e('0x2e')])){return;}var _0x248ce3=_['find'](_0x31ae03,[_0x042e('0x2c'),_0x1fce9b[_0x042e('0x2e')]])[_0x042e('0x2f')];return db[_0x042e('0x30')]['destroy']({'where':{'type':_0x248ce3,'resourceId':_0x1fce9b['id']}})[_0x042e('0x21')](function(){return _0x22b83d;});})[_0x042e('0x21')](function(){_0x5c1bd8['status'](0xcc)[_0x042e('0x31')]();});}};}function handleEntityNotFound(_0x5e9c48,_0xcb7bce){return function(_0x25033c){if(!_0x25033c){_0x5e9c48['sendStatus'](0x194);}return _0x25033c;};}function handleError(_0x4bb36e,_0x5d3c16){_0x5d3c16=_0x5d3c16||0x1f4;return function(_0x286621){logger['error'](_0x286621['stack']);if(_0x286621[_0x042e('0x2f')]){delete _0x286621[_0x042e('0x2f')];}_0x4bb36e[_0x042e('0x19')](_0x5d3c16)['send'](_0x286621);};}exports[_0x042e('0x32')]=function(_0x2a0114,_0x3d56ba){var _0x40cec1={},_0x548572={},_0x69447e={'count':0x0,'rows':[]};var _0x58b43b=db['VoiceExtension'][_0x042e('0x33')];_0x548572[_0x042e('0x34')]=_[_0x042e('0x35')](_0x58b43b);var _0x2af529={'dateStart':_0x2a0114[_0x042e('0x36')][_0x042e('0x37')],'dateEnd':_0x2a0114[_0x042e('0x36')][_0x042e('0x38')]};delete _0x2a0114[_0x042e('0x36')]['dateStart'];delete _0x2a0114[_0x042e('0x36')][_0x042e('0x38')];_0x548572[_0x042e('0x36')]=_[_0x042e('0x35')](_0x2a0114[_0x042e('0x36')]);_0x548572['filters']=_['intersection'](_0x548572['model'],_0x548572[_0x042e('0x36')]);_0x40cec1[_0x042e('0x39')]=_[_0x042e('0x3a')](_0x548572['model'],qs[_0x042e('0x3b')](_0x2a0114['query'][_0x042e('0x3b')]));_0x40cec1[_0x042e('0x39')]=_0x40cec1[_0x042e('0x39')]['length']?_0x40cec1[_0x042e('0x39')]:_0x548572[_0x042e('0x34')];if(!_0x2a0114[_0x042e('0x36')]['hasOwnProperty'](_0x042e('0x3c'))){_0x40cec1[_0x042e('0x1c')]=qs[_0x042e('0x1c')](_0x2a0114[_0x042e('0x36')][_0x042e('0x1c')]);_0x40cec1['offset']=qs[_0x042e('0x1b')](_0x2a0114[_0x042e('0x36')][_0x042e('0x1b')]);}_0x40cec1[_0x042e('0x3d')]=qs[_0x042e('0x3e')](_0x2a0114[_0x042e('0x36')][_0x042e('0x3e')]);_0x40cec1[_0x042e('0x3f')]=qs[_0x042e('0x40')](_[_0x042e('0x41')](_0x2a0114[_0x042e('0x36')],_0x548572[_0x042e('0x40')]));if(_0x2af529[_0x042e('0x37')]){if(_0x2af529[_0x042e('0x38')]){_0x2af529[_0x042e('0x38')]=moment(_0x2af529[_0x042e('0x38')])[_0x042e('0x42')](0x1,_0x042e('0x43'));}else{_0x2af529[_0x042e('0x38')]=moment(_0x2af529['dateStart'])[_0x042e('0x42')](0x1,_0x042e('0x43'));}_[_0x042e('0x44')](_0x40cec1[_0x042e('0x3f')],{'createdAt':{'$gte':_0x2af529[_0x042e('0x37')],'$lte':_0x2af529[_0x042e('0x38')]}});}if(_0x2a0114['query'][_0x042e('0x45')]){_0x40cec1[_0x042e('0x3f')]=_[_0x042e('0x44')](_0x40cec1[_0x042e('0x3f')],{'$or':_[_0x042e('0x2b')](_0x58b43b,function(_0x6866a4){if(_0x6866a4['type']['key']!=='VIRTUAL'){var _0x21d937={};_0x21d937[_0x6866a4[_0x042e('0x46')]]={'$like':'%'+_0x2a0114[_0x042e('0x36')]['filter']+'%'};return _0x21d937;}})});}_0x40cec1=_[_0x042e('0x44')]({},_0x40cec1,_0x2a0114['options']);var _0x232e6f={'where':_0x40cec1[_0x042e('0x3f')]};return db[_0x042e('0x47')]['count'](_0x232e6f)[_0x042e('0x21')](function(_0x326d19){_0x69447e[_0x042e('0x48')]=_0x326d19;if(_0x2a0114[_0x042e('0x36')]['includeAll']){_0x40cec1[_0x042e('0x49')]=[{'all':!![]}];}return db[_0x042e('0x47')][_0x042e('0x4a')](_0x40cec1);})[_0x042e('0x21')](function(_0x402234){_0x69447e[_0x042e('0x4b')]=_0x402234;return _0x69447e;})[_0x042e('0x21')](respondWithFilteredResult(_0x3d56ba,_0x40cec1))['catch'](handleError(_0x3d56ba,null));};exports[_0x042e('0x4c')]=function(_0x254c8e,_0x39f33a){var _0x534dee={'raw':![],'where':{'id':_0x254c8e[_0x042e('0x4d')]['id']}},_0x56c1bb={};_0x56c1bb[_0x042e('0x34')]=_[_0x042e('0x35')](db[_0x042e('0x47')][_0x042e('0x33')]);_0x56c1bb[_0x042e('0x36')]=_[_0x042e('0x35')](_0x254c8e[_0x042e('0x36')]);_0x56c1bb['filters']=_['intersection'](_0x56c1bb[_0x042e('0x34')],_0x56c1bb[_0x042e('0x36')]);_0x534dee[_0x042e('0x39')]=_[_0x042e('0x3a')](_0x56c1bb[_0x042e('0x34')],qs[_0x042e('0x3b')](_0x254c8e[_0x042e('0x36')][_0x042e('0x3b')]));_0x534dee[_0x042e('0x39')]=_0x534dee[_0x042e('0x39')][_0x042e('0x4e')]?_0x534dee['attributes']:_0x56c1bb[_0x042e('0x34')];if(_0x254c8e[_0x042e('0x36')][_0x042e('0x4f')]){_0x534dee[_0x042e('0x49')]=[{'all':!![]}];}_0x534dee=_[_0x042e('0x44')]({},_0x534dee,_0x254c8e[_0x042e('0x50')]);return db[_0x042e('0x47')][_0x042e('0x51')](_0x534dee)[_0x042e('0x21')](handleEntityNotFound(_0x39f33a,null))[_0x042e('0x21')](respondWithResult(_0x39f33a,null))['catch'](handleError(_0x39f33a,null));};exports[_0x042e('0x22')]=function(_0x24ec5a,_0xc035d){return db[_0x042e('0x47')][_0x042e('0x51')]({'where':{'id':_0x24ec5a[_0x042e('0x4d')]['id']}})[_0x042e('0x21')](handleEntityNotFound(_0xc035d,null))[_0x042e('0x21')](removeEntity(_0xc035d,null))['catch'](handleError(_0xc035d,null));};exports[_0x042e('0x52')]=function(_0x2c01fd,_0x2c9709){if(_0x2c01fd[_0x042e('0x53')]['type']===_0x042e('0x27')&&!_['startsWith'](_0x2c01fd['body'][_0x042e('0x54')],'_')){_0x2c01fd[_0x042e('0x53')]['exten']='_'['concat'](_0x2c01fd[_0x042e('0x53')][_0x042e('0x54')]);}return db[_0x042e('0x47')]['create'](_0x2c01fd[_0x042e('0x53')],{'raw':![]})[_0x042e('0x21')](function(_0x44b35c){var _0x40c822=_0x2c01fd[_0x042e('0x55')][_0x042e('0x23')]({'plain':!![]});if(!_0x40c822)throw new Error(_0x042e('0x56'));if(_0x40c822[_0x042e('0x57')]==='user'){var _0x1f1660=_0x44b35c[_0x042e('0x23')]({'plain':!![]});var _0x1dbbd6=[{'name':'InboundRoutes','value':_0x042e('0x25')},{'name':_0x042e('0x26'),'value':_0x042e('0x27')},{'name':'InternalRoutes','value':'internal'}];var _0x1ff260=_['find'](_0x1dbbd6,['value',_0x1f1660[_0x042e('0x2e')]])[_0x042e('0x2f')];return db[_0x042e('0x58')][_0x042e('0x51')]({'where':{'name':_0x1ff260,'userProfileId':_0x40c822[_0x042e('0x59')]},'raw':!![]})[_0x042e('0x21')](function(_0x25fecb){if(_0x25fecb&&_0x25fecb[_0x042e('0x5a')]===0x0){return db[_0x042e('0x30')][_0x042e('0x52')]({'name':_0x1f1660['name'],'resourceId':_0x1f1660['id'],'type':_0x25fecb[_0x042e('0x2f')],'sectionId':_0x25fecb['id']},{})[_0x042e('0x21')](function(){return _0x44b35c;});}else{return _0x44b35c;}})[_0x042e('0x5b')](function(_0x18e79c){logger[_0x042e('0x5c')](_0x042e('0x5d'),_0x18e79c);throw _0x18e79c;});}return _0x44b35c;})[_0x042e('0x21')](respondWithResult(_0x2c9709,0xc9))[_0x042e('0x5b')](handleError(_0x2c9709,null));};exports[_0x042e('0x20')]=function(_0x13fd04,_0x54abea){if(_0x13fd04['body']['id']){delete _0x13fd04['body']['id'];}return db[_0x042e('0x47')][_0x042e('0x51')]({'where':{'id':_0x13fd04[_0x042e('0x4d')]['id']}})[_0x042e('0x21')](handleEntityNotFound(_0x54abea,null))[_0x042e('0x21')](function(_0x2620c5){if(_0x2620c5){return db[_0x042e('0x47')][_0x042e('0x20')](_[_0x042e('0x41')](_0x13fd04['body'],[_0x042e('0x54'),_0x042e('0x5e'),_0x042e('0x5f'),_0x042e('0x60'),_0x042e('0x61')]),{'where':{'context':_0x2620c5['context'],'exten':_0x2620c5['exten']},'individualHooks':!![]})[_0x042e('0x21')](function(_0x5ca746){return _0x5ca746;});}return null;})['then'](respondWithStatusCode(_0x54abea,null))[_0x042e('0x5b')](handleError(_0x54abea,null));};exports['addApplications']=function(_0x122cb4,_0x315edc,_0x1e00b8){return db[_0x042e('0x47')][_0x042e('0x62')]({'where':{'id':_0x122cb4['params']['id']}})[_0x042e('0x21')](handleEntityNotFound(_0x315edc,null))[_0x042e('0x21')](function(_0x4b66eb){if(_0x4b66eb){return db['sequelize'][_0x042e('0x63')](function(_0x4a78c7){return db['VoiceExtension'][_0x042e('0x22')]({'where':{'VoiceExtensionId':_0x122cb4[_0x042e('0x4d')]['id']},'transaction':_0x4a78c7})[_0x042e('0x21')](function(_0x5a04b1){var _0x23aedf=_[_0x042e('0x2b')](_0x122cb4[_0x042e('0x53')],function(_0x3306cb){_0x3306cb[_0x042e('0x64')]=_0x122cb4['params']['id'];return _0x3306cb;});return db[_0x042e('0x47')]['bulkCreate'](_0x23aedf,{'transaction':_0x4a78c7});});})['then'](function(){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x122cb4[_0x042e('0x4d')]['id']},'order':_0x042e('0x65')});});}})['then'](respondWithResult(_0x315edc,null))['catch'](handleError(_0x315edc,null));};