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 _0x3301=['body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','OutboundRoutes','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description','recordingFormat','cutdigits','mandatoryDisposition','addApplications','findOne','sequelize','VoiceExtensionId','bulkCreate','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./voiceExtension.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','InboundRoutes','inbound','outbound','InternalRoutes','internal','ignore','map','value','type','error','stack','name','send','VoiceExtension','rawAttributes','key','model','query','keys','filters','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','intersection','fields','find','params','create','startsWith','exten'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x3301,0x154));var _0x1330=function(_0x5cdae6,_0x50e1fc){_0x5cdae6=_0x5cdae6-0x0;var _0x18e71d=_0x3301[_0x5cdae6];return _0x18e71d;};'use strict';var pdf=require(_0x1330('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1330('0x1'));var jsonpatch=require(_0x1330('0x2'));var rp=require(_0x1330('0x3'));var moment=require(_0x1330('0x4'));var BPromise=require(_0x1330('0x5'));var Mustache=require(_0x1330('0x6'));var util=require(_0x1330('0x7'));var path=require(_0x1330('0x8'));var sox=require(_0x1330('0x9'));var csv=require(_0x1330('0xa'));var ejs=require(_0x1330('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1330('0xc'));var crypto=require(_0x1330('0xd'));var jsforce=require(_0x1330('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x1330('0xa'));var querystring=require(_0x1330('0xf'));var Papa=require(_0x1330('0x10'));var Redis=require(_0x1330('0x11'));var authService=require(_0x1330('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1330('0x13'));var logger=require(_0x1330('0x14'))(_0x1330('0x15'));var utils=require(_0x1330('0x16'));var config=require(_0x1330('0x17'));var licenseUtil=require(_0x1330('0x18'));var db=require(_0x1330('0x19'))['db'];config[_0x1330('0x1a')]=_['defaults'](config[_0x1330('0x1a')],{'host':_0x1330('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x1330('0x1c'))[_0x1330('0x1d')](socket);function respondWithStatusCode(_0x2534b3,_0x127be8){_0x127be8=_0x127be8||0xcc;return function(_0x5389f3){if(_0x5389f3){return _0x2534b3[_0x1330('0x1e')](_0x127be8);}return _0x2534b3[_0x1330('0x1f')](_0x127be8)[_0x1330('0x20')]();};}function respondWithResult(_0x596fc0,_0x43f357){_0x43f357=_0x43f357||0xc8;return function(_0xb08f7e){if(_0xb08f7e){return _0x596fc0[_0x1330('0x1f')](_0x43f357)[_0x1330('0x21')](_0xb08f7e);}};}function respondWithFilteredResult(_0x59b339,_0x249903){return function(_0x21c577){if(_0x21c577){var _0x2e6ca8=_0x21c577[_0x1330('0x22')],_0x30061e=_0x249903['offset'],_0x2d8301=_0x249903[_0x1330('0x23')]+_0x249903[_0x1330('0x24')],_0x28f426;if(_0x2d8301>=_0x2e6ca8){_0x2d8301=_0x2e6ca8;_0x28f426=0xc8;}else{_0x28f426=0xce;}_0x59b339[_0x1330('0x1f')](_0x28f426);return _0x59b339[_0x1330('0x25')](_0x1330('0x26'),_0x30061e+'-'+_0x2d8301+'/'+_0x2e6ca8)[_0x1330('0x21')](_0x21c577);}return null;};}function patchUpdates(_0x1ccb0e){return function(_0x270e7a){try{jsonpatch['apply'](_0x270e7a,_0x1ccb0e,!![]);}catch(_0x315ba6){return BPromise[_0x1330('0x27')](_0x315ba6);}return _0x270e7a[_0x1330('0x28')]();};}function saveUpdates(_0x56b5cb,_0x3cf492){return function(_0xf32d94){if(_0xf32d94){return _0xf32d94[_0x1330('0x29')](_0x56b5cb)[_0x1330('0x2a')](function(_0x26dfbd){return _0x26dfbd;});}return null;};}function removeEntity(_0x3ce2bb,_0x195b47){return function(_0x4067fc){if(_0x4067fc){return _0x4067fc[_0x1330('0x2b')]()['then'](function(){var _0x328604=_0x4067fc[_0x1330('0x2c')]({'plain':!![]});var _0x37b64b=[{'name':_0x1330('0x2d'),'value':_0x1330('0x2e'),'ignore':![]},{'name':'OutboundRoutes','value':_0x1330('0x2f'),'ignore':![]},{'name':_0x1330('0x30'),'value':_0x1330('0x31'),'ignore':![]}];var _0x1f4cfd=_(_0x37b64b)['filter'](_0x1330('0x32'))[_0x1330('0x33')](_0x1330('0x34'))[_0x1330('0x34')]();if(_['includes'](_0x1f4cfd,_0x328604['type'])){return;}var _0x29e276=_['find'](_0x37b64b,[_0x1330('0x34'),_0x328604[_0x1330('0x35')]])['name'];return db['UserProfileResource'][_0x1330('0x2b')]({'where':{'type':_0x29e276,'resourceId':_0x328604['id']}})['then'](function(){return _0x4067fc;});})[_0x1330('0x2a')](function(){_0x3ce2bb['status'](0xcc)[_0x1330('0x20')]();});}};}function handleEntityNotFound(_0x890e49,_0x3fe5ba){return function(_0x1969aa){if(!_0x1969aa){_0x890e49['sendStatus'](0x194);}return _0x1969aa;};}function handleError(_0x47bd80,_0x29fc8a){_0x29fc8a=_0x29fc8a||0x1f4;return function(_0x2f7224){logger[_0x1330('0x36')](_0x2f7224[_0x1330('0x37')]);if(_0x2f7224[_0x1330('0x38')]){delete _0x2f7224[_0x1330('0x38')];}_0x47bd80[_0x1330('0x1f')](_0x29fc8a)[_0x1330('0x39')](_0x2f7224);};}exports['index']=function(_0x46bd29,_0x19577f){var _0x5a87ba={},_0x3c414d={},_0x2913a5={'count':0x0,'rows':[]};var _0x395212=_[_0x1330('0x33')](db[_0x1330('0x3a')][_0x1330('0x3b')],function(_0x2ab7b1){return{'name':_0x2ab7b1['fieldName'],'type':_0x2ab7b1[_0x1330('0x35')][_0x1330('0x3c')]};});_0x3c414d[_0x1330('0x3d')]=_['map'](_0x395212,_0x1330('0x38'));_0x3c414d[_0x1330('0x3e')]=_[_0x1330('0x3f')](_0x46bd29[_0x1330('0x3e')]);_0x3c414d[_0x1330('0x40')]=_['intersection'](_0x3c414d[_0x1330('0x3d')],_0x3c414d[_0x1330('0x3e')]);_0x5a87ba['attributes']=_['intersection'](_0x3c414d[_0x1330('0x3d')],qs['fields'](_0x46bd29['query']['fields']));_0x5a87ba[_0x1330('0x41')]=_0x5a87ba[_0x1330('0x41')][_0x1330('0x42')]?_0x5a87ba[_0x1330('0x41')]:_0x3c414d[_0x1330('0x3d')];if(!_0x46bd29[_0x1330('0x3e')][_0x1330('0x43')](_0x1330('0x44'))){_0x5a87ba[_0x1330('0x24')]=qs[_0x1330('0x24')](_0x46bd29[_0x1330('0x3e')][_0x1330('0x24')]);_0x5a87ba['offset']=qs['offset'](_0x46bd29[_0x1330('0x3e')]['offset']);}_0x5a87ba['order']=qs[_0x1330('0x45')](_0x46bd29['query']['sort']);_0x5a87ba[_0x1330('0x46')]=qs['filters'](_[_0x1330('0x47')](_0x46bd29[_0x1330('0x3e')],_0x3c414d[_0x1330('0x40')]),_0x395212);if(_0x46bd29['query']['filter']){_0x5a87ba[_0x1330('0x46')]=_[_0x1330('0x48')](_0x5a87ba[_0x1330('0x46')],{'$or':_[_0x1330('0x33')](_0x395212,function(_0x15330d){if(_0x15330d[_0x1330('0x35')]!==_0x1330('0x49')){var _0x3b0c67={};_0x3b0c67[_0x15330d[_0x1330('0x38')]]={'$like':'%'+_0x46bd29[_0x1330('0x3e')][_0x1330('0x4a')]+'%'};return _0x3b0c67;}})});}_0x5a87ba=_[_0x1330('0x48')]({},_0x5a87ba,_0x46bd29[_0x1330('0x4b')]);var _0x2f2d8f={'where':_0x5a87ba['where']};return db[_0x1330('0x3a')][_0x1330('0x22')](_0x2f2d8f)[_0x1330('0x2a')](function(_0x3cbd7b){_0x2913a5[_0x1330('0x22')]=_0x3cbd7b;if(_0x46bd29[_0x1330('0x3e')][_0x1330('0x4c')]){_0x5a87ba[_0x1330('0x4d')]=[{'all':!![]}];}return db[_0x1330('0x3a')]['findAll'](_0x5a87ba);})[_0x1330('0x2a')](function(_0x1faa54){_0x2913a5[_0x1330('0x4e')]=_0x1faa54;return _0x2913a5;})['then'](respondWithFilteredResult(_0x19577f,_0x5a87ba))[_0x1330('0x4f')](handleError(_0x19577f,null));};exports[_0x1330('0x50')]=function(_0xbe9297,_0x2970ff){var _0x56d3eb={'raw':![],'where':{'id':_0xbe9297['params']['id']}},_0x811540={};_0x811540[_0x1330('0x3d')]=_[_0x1330('0x3f')](db[_0x1330('0x3a')]['rawAttributes']);_0x811540[_0x1330('0x3e')]=_[_0x1330('0x3f')](_0xbe9297[_0x1330('0x3e')]);_0x811540[_0x1330('0x40')]=_[_0x1330('0x51')](_0x811540[_0x1330('0x3d')],_0x811540[_0x1330('0x3e')]);_0x56d3eb[_0x1330('0x41')]=_[_0x1330('0x51')](_0x811540[_0x1330('0x3d')],qs[_0x1330('0x52')](_0xbe9297[_0x1330('0x3e')][_0x1330('0x52')]));_0x56d3eb['attributes']=_0x56d3eb[_0x1330('0x41')][_0x1330('0x42')]?_0x56d3eb[_0x1330('0x41')]:_0x811540[_0x1330('0x3d')];if(_0xbe9297[_0x1330('0x3e')][_0x1330('0x4c')]){_0x56d3eb['include']=[{'all':!![]}];}_0x56d3eb=_[_0x1330('0x48')]({},_0x56d3eb,_0xbe9297[_0x1330('0x4b')]);return db['VoiceExtension'][_0x1330('0x53')](_0x56d3eb)['then'](handleEntityNotFound(_0x2970ff,null))['then'](respondWithResult(_0x2970ff,null))[_0x1330('0x4f')](handleError(_0x2970ff,null));};exports['destroy']=function(_0x2ddc8c,_0x243b09){return db[_0x1330('0x3a')][_0x1330('0x53')]({'where':{'id':_0x2ddc8c[_0x1330('0x54')]['id']}})[_0x1330('0x2a')](handleEntityNotFound(_0x243b09,null))['then'](removeEntity(_0x243b09,null))[_0x1330('0x4f')](handleError(_0x243b09,null));};exports[_0x1330('0x55')]=function(_0x1de0fb,_0x3daf02){if(_0x1de0fb['body']['type']===_0x1330('0x2f')&&!_[_0x1330('0x56')](_0x1de0fb['body'][_0x1330('0x57')],'_')){_0x1de0fb[_0x1330('0x58')][_0x1330('0x57')]='_'['concat'](_0x1de0fb[_0x1330('0x58')][_0x1330('0x57')]);}return db[_0x1330('0x3a')][_0x1330('0x55')](_0x1de0fb['body'],{'raw':![]})[_0x1330('0x2a')](function(_0x1f3e28){var _0x2658b7=_0x1de0fb['user'][_0x1330('0x2c')]({'plain':!![]});if(!_0x2658b7)throw new Error(_0x1330('0x59'));if(_0x2658b7[_0x1330('0x5a')]===_0x1330('0x5b')){var _0x1230e4=_0x1f3e28[_0x1330('0x2c')]({'plain':!![]});var _0xb2d202=[{'name':'InboundRoutes','value':'inbound'},{'name':_0x1330('0x5c'),'value':_0x1330('0x2f')},{'name':_0x1330('0x30'),'value':'internal'}];var _0x30bdfd=_[_0x1330('0x53')](_0xb2d202,['value',_0x1230e4['type']])[_0x1330('0x38')];return db['UserProfileSection'][_0x1330('0x53')]({'where':{'name':_0x30bdfd,'userProfileId':_0x2658b7[_0x1330('0x5d')]},'raw':!![]})['then'](function(_0x4b627f){if(_0x4b627f&&_0x4b627f[_0x1330('0x5e')]===0x0){return db[_0x1330('0x5f')][_0x1330('0x55')]({'name':_0x1230e4[_0x1330('0x38')],'resourceId':_0x1230e4['id'],'type':_0x4b627f[_0x1330('0x38')],'sectionId':_0x4b627f['id']},{})[_0x1330('0x2a')](function(){return _0x1f3e28;});}else{return _0x1f3e28;}})[_0x1330('0x4f')](function(_0x4ea43d){logger[_0x1330('0x36')](_0x1330('0x60'),_0x4ea43d);throw _0x4ea43d;});}return _0x1f3e28;})[_0x1330('0x2a')](respondWithResult(_0x3daf02,0xc9))[_0x1330('0x4f')](handleError(_0x3daf02,null));};exports[_0x1330('0x29')]=function(_0x59be4f,_0x438a17){if(_0x59be4f[_0x1330('0x58')]['id']){delete _0x59be4f[_0x1330('0x58')]['id'];}return db['VoiceExtension'][_0x1330('0x53')]({'where':{'id':_0x59be4f[_0x1330('0x54')]['id']}})[_0x1330('0x2a')](handleEntityNotFound(_0x438a17,null))['then'](function(_0x1d3edb){if(_0x1d3edb){return db[_0x1330('0x3a')][_0x1330('0x29')](_[_0x1330('0x47')](_0x59be4f[_0x1330('0x58')],[_0x1330('0x57'),_0x1330('0x61'),_0x1330('0x62'),_0x1330('0x63'),_0x1330('0x64'),_0x1330('0x65')]),{'where':{'context':_0x1d3edb['context'],'exten':_0x1d3edb[_0x1330('0x57')]},'individualHooks':!![]})[_0x1330('0x2a')](function(_0x57bdf0){return _0x57bdf0;});}return null;})[_0x1330('0x2a')](respondWithStatusCode(_0x438a17,null))[_0x1330('0x4f')](handleError(_0x438a17,null));};exports[_0x1330('0x66')]=function(_0x5a5bb4,_0x5a8fa7,_0x5331e3){return db[_0x1330('0x3a')][_0x1330('0x67')]({'where':{'id':_0x5a5bb4[_0x1330('0x54')]['id']}})[_0x1330('0x2a')](handleEntityNotFound(_0x5a8fa7,null))[_0x1330('0x2a')](function(_0x2fda9a){if(_0x2fda9a){return db[_0x1330('0x68')]['transaction'](function(_0x541b17){return db['VoiceExtension'][_0x1330('0x2b')]({'where':{'VoiceExtensionId':_0x5a5bb4[_0x1330('0x54')]['id']},'transaction':_0x541b17})[_0x1330('0x2a')](function(_0x3ff686){var _0x3ee538=_['map'](_0x5a5bb4['body'],function(_0x43d2b4){_0x43d2b4[_0x1330('0x69')]=_0x5a5bb4[_0x1330('0x54')]['id'];return _0x43d2b4;});return db['VoiceExtension'][_0x1330('0x6a')](_0x3ee538,{'transaction':_0x541b17});});})['then'](function(){return db[_0x1330('0x3a')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x5a5bb4['params']['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0x5a8fa7,null))[_0x1330('0x4f')](handleError(_0x5a8fa7,null));};