Built motion from commit (unavailable).|2.4.18
[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 _0xaee6=['status','end','count','set','json','save','update','then','destroy','get','InboundRoutes','inbound','outbound','InternalRoutes','internal','filter','map','value','includes','type','find','name','UserProfileResource','sendStatus','error','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit','limit','offset','order','sort','pick','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','startsWith','exten','user','OutboundRoutes','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description','mandatoryDisposition','findOne','sequelize','transaction','bulkCreate','findAndCountAll','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceExtension.socket','register'];(function(_0x1c4b31,_0x33f926){var _0x429be1=function(_0x6826a6){while(--_0x6826a6){_0x1c4b31['push'](_0x1c4b31['shift']());}};_0x429be1(++_0x33f926);}(_0xaee6,0xb0));var _0x6aee=function(_0x18c255,_0x52c66b){_0x18c255=_0x18c255-0x0;var _0x534451=_0xaee6[_0x18c255];return _0x534451;};'use strict';var pdf=require(_0x6aee('0x0'));var emlformat=require(_0x6aee('0x1'));var rimraf=require(_0x6aee('0x2'));var zipdir=require(_0x6aee('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6aee('0x4'));var BPromise=require(_0x6aee('0x5'));var Mustache=require(_0x6aee('0x6'));var util=require(_0x6aee('0x7'));var path=require(_0x6aee('0x8'));var sox=require(_0x6aee('0x9'));var csv=require('to-csv');var ejs=require(_0x6aee('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6aee('0xb'));var crypto=require(_0x6aee('0xc'));var jsforce=require(_0x6aee('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x6aee('0xe'));var querystring=require(_0x6aee('0xf'));var Papa=require(_0x6aee('0x10'));var Redis=require(_0x6aee('0x11'));var authService=require(_0x6aee('0x12'));var qs=require(_0x6aee('0x13'));var as=require(_0x6aee('0x14'));var hardwareService=require(_0x6aee('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x6aee('0x16'));var config=require('../../config/environment');var db=require(_0x6aee('0x17'))['db'];config['redis']=_[_0x6aee('0x18')](config[_0x6aee('0x19')],{'host':_0x6aee('0x1a'),'port':0x18eb});var socket=require(_0x6aee('0x1b'))(new Redis(config['redis']));require(_0x6aee('0x1c'))[_0x6aee('0x1d')](socket);function respondWithStatusCode(_0x349a0c,_0x3c9604){_0x3c9604=_0x3c9604||0xcc;return function(_0x481615){if(_0x481615){return _0x349a0c['sendStatus'](_0x3c9604);}return _0x349a0c[_0x6aee('0x1e')](_0x3c9604)[_0x6aee('0x1f')]();};}function respondWithResult(_0x5b8f6d,_0x4bd2cf){_0x4bd2cf=_0x4bd2cf||0xc8;return function(_0x34935d){if(_0x34935d){return _0x5b8f6d[_0x6aee('0x1e')](_0x4bd2cf)['json'](_0x34935d);}};}function respondWithFilteredResult(_0x24263d,_0x3c370d){return function(_0xc9d7eb){if(_0xc9d7eb){var _0x1fd84e=_0xc9d7eb[_0x6aee('0x20')],_0x1c78c6=_0x3c370d['offset'],_0x3e9bad=_0x3c370d['offset']+_0x3c370d['limit'],_0xe9428a;if(_0x3e9bad>=_0x1fd84e){_0x3e9bad=_0x1fd84e;_0xe9428a=0xc8;}else{_0xe9428a=0xce;}_0x24263d['status'](_0xe9428a);return _0x24263d[_0x6aee('0x21')]('Content-Range',_0x1c78c6+'-'+_0x3e9bad+'/'+_0x1fd84e)[_0x6aee('0x22')](_0xc9d7eb);}return null;};}function patchUpdates(_0x360876){return function(_0x1b04d3){try{jsonpatch['apply'](_0x1b04d3,_0x360876,!![]);}catch(_0x2091ec){return BPromise['reject'](_0x2091ec);}return _0x1b04d3[_0x6aee('0x23')]();};}function saveUpdates(_0x541179,_0x512681){return function(_0x308888){if(_0x308888){return _0x308888[_0x6aee('0x24')](_0x541179)[_0x6aee('0x25')](function(_0x561780){return _0x561780;});}return null;};}function removeEntity(_0xa26cc3,_0x4e03a3){return function(_0x28cc27){if(_0x28cc27){return _0x28cc27[_0x6aee('0x26')]()[_0x6aee('0x25')](function(){var _0x706aad=_0x28cc27[_0x6aee('0x27')]({'plain':!![]});var _0x395e45=[{'name':_0x6aee('0x28'),'value':_0x6aee('0x29'),'ignore':![]},{'name':'OutboundRoutes','value':_0x6aee('0x2a'),'ignore':![]},{'name':_0x6aee('0x2b'),'value':_0x6aee('0x2c'),'ignore':![]}];var _0x2eff8b=_(_0x395e45)[_0x6aee('0x2d')]('ignore')[_0x6aee('0x2e')](_0x6aee('0x2f'))[_0x6aee('0x2f')]();if(_[_0x6aee('0x30')](_0x2eff8b,_0x706aad[_0x6aee('0x31')])){return;}var _0x3f832e=_[_0x6aee('0x32')](_0x395e45,['value',_0x706aad['type']])[_0x6aee('0x33')];return db[_0x6aee('0x34')][_0x6aee('0x26')]({'where':{'type':_0x3f832e,'resourceId':_0x706aad['id']}})[_0x6aee('0x25')](function(){return _0x28cc27;});})['then'](function(){_0xa26cc3[_0x6aee('0x1e')](0xcc)[_0x6aee('0x1f')]();});}};}function handleEntityNotFound(_0x1a8948,_0x2647c0){return function(_0x5dbddf){if(!_0x5dbddf){_0x1a8948[_0x6aee('0x35')](0x194);}return _0x5dbddf;};}function handleError(_0x245911,_0x35a66d){_0x35a66d=_0x35a66d||0x1f4;return function(_0x56d1a4){logger[_0x6aee('0x36')](_0x56d1a4[_0x6aee('0x37')]);if(_0x56d1a4[_0x6aee('0x33')]){delete _0x56d1a4[_0x6aee('0x33')];}_0x245911['status'](_0x35a66d)[_0x6aee('0x38')](_0x56d1a4);};}exports[_0x6aee('0x39')]=function(_0x571b53,_0x3ca4d1){var _0x2d145b={},_0x462788={},_0x944a51={'count':0x0,'rows':[]};var _0x3929e3=_[_0x6aee('0x2e')](db[_0x6aee('0x3a')][_0x6aee('0x3b')],function(_0x24b74f){return{'name':_0x24b74f[_0x6aee('0x3c')],'type':_0x24b74f['type'][_0x6aee('0x3d')]};});_0x462788['model']=_[_0x6aee('0x2e')](_0x3929e3,'name');_0x462788[_0x6aee('0x3e')]=_[_0x6aee('0x3f')](_0x571b53[_0x6aee('0x3e')]);_0x462788[_0x6aee('0x40')]=_[_0x6aee('0x41')](_0x462788[_0x6aee('0x42')],_0x462788[_0x6aee('0x3e')]);_0x2d145b['attributes']=_['intersection'](_0x462788[_0x6aee('0x42')],qs[_0x6aee('0x43')](_0x571b53[_0x6aee('0x3e')][_0x6aee('0x43')]));_0x2d145b[_0x6aee('0x44')]=_0x2d145b[_0x6aee('0x44')][_0x6aee('0x45')]?_0x2d145b[_0x6aee('0x44')]:_0x462788['model'];if(!_0x571b53[_0x6aee('0x3e')]['hasOwnProperty'](_0x6aee('0x46'))){_0x2d145b[_0x6aee('0x47')]=qs[_0x6aee('0x47')](_0x571b53[_0x6aee('0x3e')][_0x6aee('0x47')]);_0x2d145b['offset']=qs['offset'](_0x571b53[_0x6aee('0x3e')][_0x6aee('0x48')]);}_0x2d145b[_0x6aee('0x49')]=qs[_0x6aee('0x4a')](_0x571b53[_0x6aee('0x3e')][_0x6aee('0x4a')]);_0x2d145b['where']=qs[_0x6aee('0x40')](_[_0x6aee('0x4b')](_0x571b53[_0x6aee('0x3e')],_0x462788[_0x6aee('0x40')]));if(_0x571b53[_0x6aee('0x3e')][_0x6aee('0x2d')]){_0x2d145b[_0x6aee('0x4c')]=_[_0x6aee('0x4d')](_0x2d145b[_0x6aee('0x4c')],{'$or':_['map'](_0x3929e3,function(_0x32fbe6){if(_0x32fbe6['type']!==_0x6aee('0x4e')){var _0x2a01bc={};_0x2a01bc[_0x32fbe6[_0x6aee('0x33')]]={'$like':'%'+_0x571b53[_0x6aee('0x3e')][_0x6aee('0x2d')]+'%'};return _0x2a01bc;}})});}_0x2d145b=_['merge']({},_0x2d145b,_0x571b53[_0x6aee('0x4f')]);var _0x41beea={'where':_0x2d145b[_0x6aee('0x4c')]};return db[_0x6aee('0x3a')]['count'](_0x41beea)[_0x6aee('0x25')](function(_0xfbdfb8){_0x944a51[_0x6aee('0x20')]=_0xfbdfb8;if(_0x571b53[_0x6aee('0x3e')][_0x6aee('0x50')]){_0x2d145b[_0x6aee('0x51')]=[{'all':!![]}];}return db['VoiceExtension'][_0x6aee('0x52')](_0x2d145b);})[_0x6aee('0x25')](function(_0x54478e){_0x944a51[_0x6aee('0x53')]=_0x54478e;return _0x944a51;})[_0x6aee('0x25')](respondWithFilteredResult(_0x3ca4d1,_0x2d145b))[_0x6aee('0x54')](handleError(_0x3ca4d1,null));};exports[_0x6aee('0x55')]=function(_0x31b06c,_0x164242){var _0xca54cb={'raw':![],'where':{'id':_0x31b06c['params']['id']}},_0x186638={};_0x186638['model']=_[_0x6aee('0x3f')](db[_0x6aee('0x3a')][_0x6aee('0x3b')]);_0x186638[_0x6aee('0x3e')]=_[_0x6aee('0x3f')](_0x31b06c['query']);_0x186638[_0x6aee('0x40')]=_[_0x6aee('0x41')](_0x186638['model'],_0x186638[_0x6aee('0x3e')]);_0xca54cb[_0x6aee('0x44')]=_[_0x6aee('0x41')](_0x186638[_0x6aee('0x42')],qs['fields'](_0x31b06c['query'][_0x6aee('0x43')]));_0xca54cb[_0x6aee('0x44')]=_0xca54cb['attributes'][_0x6aee('0x45')]?_0xca54cb[_0x6aee('0x44')]:_0x186638[_0x6aee('0x42')];if(_0x31b06c[_0x6aee('0x3e')][_0x6aee('0x50')]){_0xca54cb[_0x6aee('0x51')]=[{'all':!![]}];}_0xca54cb=_['merge']({},_0xca54cb,_0x31b06c[_0x6aee('0x4f')]);return db[_0x6aee('0x3a')][_0x6aee('0x32')](_0xca54cb)[_0x6aee('0x25')](handleEntityNotFound(_0x164242,null))['then'](respondWithResult(_0x164242,null))[_0x6aee('0x54')](handleError(_0x164242,null));};exports[_0x6aee('0x26')]=function(_0x2593e6,_0x2d9d05){return db[_0x6aee('0x3a')][_0x6aee('0x32')]({'where':{'id':_0x2593e6[_0x6aee('0x56')]['id']}})[_0x6aee('0x25')](handleEntityNotFound(_0x2d9d05,null))['then'](removeEntity(_0x2d9d05,null))[_0x6aee('0x54')](handleError(_0x2d9d05,null));};exports[_0x6aee('0x57')]=function(_0x5b04cb,_0x2d6ed5){if(_0x5b04cb[_0x6aee('0x58')][_0x6aee('0x31')]===_0x6aee('0x2a')&&!_[_0x6aee('0x59')](_0x5b04cb[_0x6aee('0x58')][_0x6aee('0x5a')],'_')){_0x5b04cb['body'][_0x6aee('0x5a')]='_'['concat'](_0x5b04cb[_0x6aee('0x58')][_0x6aee('0x5a')]);}return db['VoiceExtension'][_0x6aee('0x57')](_0x5b04cb[_0x6aee('0x58')],{'raw':![]})['then'](function(_0x5e81b5){var _0x45c870=_0x5b04cb[_0x6aee('0x5b')]['get']({'plain':!![]});if(!_0x45c870)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x45c870['role']==='user'){var _0x5e2a80=_0x5e81b5[_0x6aee('0x27')]({'plain':!![]});var _0x320486=[{'name':_0x6aee('0x28'),'value':_0x6aee('0x29')},{'name':_0x6aee('0x5c'),'value':_0x6aee('0x2a')},{'name':_0x6aee('0x2b'),'value':_0x6aee('0x2c')}];var _0x309e60=_[_0x6aee('0x32')](_0x320486,[_0x6aee('0x2f'),_0x5e2a80[_0x6aee('0x31')]])['name'];return db[_0x6aee('0x5d')][_0x6aee('0x32')]({'where':{'name':_0x309e60,'userProfileId':_0x45c870['userProfileId']},'raw':!![]})[_0x6aee('0x25')](function(_0xe8c4cf){if(_0xe8c4cf&&_0xe8c4cf['autoAssociation']===0x0){return db[_0x6aee('0x34')][_0x6aee('0x57')]({'name':_0x5e2a80['name'],'resourceId':_0x5e2a80['id'],'type':_0xe8c4cf['name'],'sectionId':_0xe8c4cf['id']},{})['then'](function(){return _0x5e81b5;});}else{return _0x5e81b5;}})[_0x6aee('0x54')](function(_0x5da807){logger[_0x6aee('0x36')](_0x6aee('0x5e'),_0x5da807);throw _0x5da807;});}return _0x5e81b5;})[_0x6aee('0x25')](respondWithResult(_0x2d6ed5,0xc9))[_0x6aee('0x54')](handleError(_0x2d6ed5,null));};exports[_0x6aee('0x24')]=function(_0xe3af4c,_0x20900c){if(_0xe3af4c['body']['id']){delete _0xe3af4c[_0x6aee('0x58')]['id'];}return db[_0x6aee('0x3a')][_0x6aee('0x32')]({'where':{'id':_0xe3af4c[_0x6aee('0x56')]['id']}})[_0x6aee('0x25')](handleEntityNotFound(_0x20900c,null))['then'](function(_0xb58906){if(_0xb58906){return db['VoiceExtension'][_0x6aee('0x24')](_[_0x6aee('0x4b')](_0xe3af4c[_0x6aee('0x58')],[_0x6aee('0x5a'),_0x6aee('0x5f'),_0x6aee('0x60'),'recordingFormat','cutdigits',_0x6aee('0x61')]),{'where':{'context':_0xb58906[_0x6aee('0x5f')],'exten':_0xb58906[_0x6aee('0x5a')]},'individualHooks':!![]})[_0x6aee('0x25')](function(_0x239e8e){return _0x239e8e;});}return null;})[_0x6aee('0x25')](respondWithStatusCode(_0x20900c,null))[_0x6aee('0x54')](handleError(_0x20900c,null));};exports['addApplications']=function(_0x4a2b21,_0x269b75,_0x28baf3){return db[_0x6aee('0x3a')][_0x6aee('0x62')]({'where':{'id':_0x4a2b21['params']['id']}})['then'](handleEntityNotFound(_0x269b75,null))[_0x6aee('0x25')](function(_0xfcb511){if(_0xfcb511){return db[_0x6aee('0x63')][_0x6aee('0x64')](function(_0x23491a){return db[_0x6aee('0x3a')][_0x6aee('0x26')]({'where':{'VoiceExtensionId':_0x4a2b21[_0x6aee('0x56')]['id']},'transaction':_0x23491a})[_0x6aee('0x25')](function(_0x45b4ca){var _0x16eb9e=_[_0x6aee('0x2e')](_0x4a2b21[_0x6aee('0x58')],function(_0x131c1b){_0x131c1b['VoiceExtensionId']=_0x4a2b21[_0x6aee('0x56')]['id'];return _0x131c1b;});return db['VoiceExtension'][_0x6aee('0x65')](_0x16eb9e,{'transaction':_0x23491a});});})['then'](function(){return db[_0x6aee('0x3a')][_0x6aee('0x66')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4a2b21['params']['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})[_0x6aee('0x25')](respondWithResult(_0x269b75,null))[_0x6aee('0x54')](handleError(_0x269b75,null));};