Built motion from commit (unavailable).|2.5.4
[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 _0x5fab=['query','filters','intersection','attributes','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','keys','fields','length','includeAll','include','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','addApplications','findOne','sequelize','transaction','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','register','sendStatus','status','count','offset','limit','set','json','reject','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','ignore','map','value','includes','type','find','name','UserProfileResource','destroy','end','stack','send','VoiceExtension','rawAttributes','key'];(function(_0x4e53dd,_0x44f0f2){var _0x181a81=function(_0x43ed0e){while(--_0x43ed0e){_0x4e53dd['push'](_0x4e53dd['shift']());}};_0x181a81(++_0x44f0f2);}(_0x5fab,0x177));var _0xb5fa=function(_0x89a001,_0x3a9a8c){_0x89a001=_0x89a001-0x0;var _0x5f3ec2=_0x5fab[_0x89a001];return _0x5f3ec2;};'use strict';var pdf=require(_0xb5fa('0x0'));var emlformat=require(_0xb5fa('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xb5fa('0x2'));var jsonpatch=require(_0xb5fa('0x3'));var rp=require(_0xb5fa('0x4'));var moment=require(_0xb5fa('0x5'));var BPromise=require(_0xb5fa('0x6'));var Mustache=require(_0xb5fa('0x7'));var util=require(_0xb5fa('0x8'));var path=require(_0xb5fa('0x9'));var sox=require(_0xb5fa('0xa'));var csv=require(_0xb5fa('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xb5fa('0xc'));var crypto=require(_0xb5fa('0xd'));var jsforce=require(_0xb5fa('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fa('0xb'));var querystring=require(_0xb5fa('0xf'));var Papa=require(_0xb5fa('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb5fa('0x11'));var as=require(_0xb5fa('0x12'));var hardwareService=require(_0xb5fa('0x13'));var logger=require(_0xb5fa('0x14'))(_0xb5fa('0x15'));var utils=require(_0xb5fa('0x16'));var config=require(_0xb5fa('0x17'));var db=require(_0xb5fa('0x18'))['db'];config[_0xb5fa('0x19')]=_['defaults'](config[_0xb5fa('0x19')],{'host':_0xb5fa('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb5fa('0x19')]));require('./voiceExtension.socket')[_0xb5fa('0x1b')](socket);function respondWithStatusCode(_0x3fc372,_0x40c914){_0x40c914=_0x40c914||0xcc;return function(_0xca8d82){if(_0xca8d82){return _0x3fc372[_0xb5fa('0x1c')](_0x40c914);}return _0x3fc372['status'](_0x40c914)['end']();};}function respondWithResult(_0x38e964,_0x587043){_0x587043=_0x587043||0xc8;return function(_0x31f252){if(_0x31f252){return _0x38e964[_0xb5fa('0x1d')](_0x587043)['json'](_0x31f252);}};}function respondWithFilteredResult(_0x4fabcc,_0x451a55){return function(_0x1f7f05){if(_0x1f7f05){var _0x32e9e5=_0x1f7f05[_0xb5fa('0x1e')],_0x46eef0=_0x451a55[_0xb5fa('0x1f')],_0x324ba5=_0x451a55[_0xb5fa('0x1f')]+_0x451a55[_0xb5fa('0x20')],_0x13e82b;if(_0x324ba5>=_0x32e9e5){_0x324ba5=_0x32e9e5;_0x13e82b=0xc8;}else{_0x13e82b=0xce;}_0x4fabcc[_0xb5fa('0x1d')](_0x13e82b);return _0x4fabcc[_0xb5fa('0x21')]('Content-Range',_0x46eef0+'-'+_0x324ba5+'/'+_0x32e9e5)[_0xb5fa('0x22')](_0x1f7f05);}return null;};}function patchUpdates(_0x519e20){return function(_0x37ae06){try{jsonpatch['apply'](_0x37ae06,_0x519e20,!![]);}catch(_0xd0fe2b){return BPromise[_0xb5fa('0x23')](_0xd0fe2b);}return _0x37ae06['save']();};}function saveUpdates(_0x40dfdf,_0x3a2ab9){return function(_0x283a56){if(_0x283a56){return _0x283a56['update'](_0x40dfdf)[_0xb5fa('0x24')](function(_0xec108f){return _0xec108f;});}return null;};}function removeEntity(_0x444237,_0x542348){return function(_0x224ec8){if(_0x224ec8){return _0x224ec8['destroy']()[_0xb5fa('0x24')](function(){var _0x264591=_0x224ec8[_0xb5fa('0x25')]({'plain':!![]});var _0x543edf=[{'name':_0xb5fa('0x26'),'value':_0xb5fa('0x27'),'ignore':![]},{'name':_0xb5fa('0x28'),'value':_0xb5fa('0x29'),'ignore':![]},{'name':'InternalRoutes','value':'internal','ignore':![]}];var _0x5bdf11=_(_0x543edf)['filter'](_0xb5fa('0x2a'))[_0xb5fa('0x2b')](_0xb5fa('0x2c'))[_0xb5fa('0x2c')]();if(_[_0xb5fa('0x2d')](_0x5bdf11,_0x264591[_0xb5fa('0x2e')])){return;}var _0x358549=_[_0xb5fa('0x2f')](_0x543edf,[_0xb5fa('0x2c'),_0x264591[_0xb5fa('0x2e')]])[_0xb5fa('0x30')];return db[_0xb5fa('0x31')][_0xb5fa('0x32')]({'where':{'type':_0x358549,'resourceId':_0x264591['id']}})[_0xb5fa('0x24')](function(){return _0x224ec8;});})[_0xb5fa('0x24')](function(){_0x444237[_0xb5fa('0x1d')](0xcc)[_0xb5fa('0x33')]();});}};}function handleEntityNotFound(_0x3fd1fb,_0x21fc7e){return function(_0x319c48){if(!_0x319c48){_0x3fd1fb[_0xb5fa('0x1c')](0x194);}return _0x319c48;};}function handleError(_0x370d95,_0x10fb43){_0x10fb43=_0x10fb43||0x1f4;return function(_0x25fc7c){logger['error'](_0x25fc7c[_0xb5fa('0x34')]);if(_0x25fc7c['name']){delete _0x25fc7c['name'];}_0x370d95['status'](_0x10fb43)[_0xb5fa('0x35')](_0x25fc7c);};}exports['index']=function(_0x3bb4de,_0x5876f1){var _0x5518b1={},_0x1847bc={},_0x934b49={'count':0x0,'rows':[]};var _0x4a4bff=_['map'](db[_0xb5fa('0x36')][_0xb5fa('0x37')],function(_0x252421){return{'name':_0x252421['fieldName'],'type':_0x252421[_0xb5fa('0x2e')][_0xb5fa('0x38')]};});_0x1847bc['model']=_[_0xb5fa('0x2b')](_0x4a4bff,_0xb5fa('0x30'));_0x1847bc[_0xb5fa('0x39')]=_['keys'](_0x3bb4de[_0xb5fa('0x39')]);_0x1847bc[_0xb5fa('0x3a')]=_[_0xb5fa('0x3b')](_0x1847bc['model'],_0x1847bc[_0xb5fa('0x39')]);_0x5518b1[_0xb5fa('0x3c')]=_[_0xb5fa('0x3b')](_0x1847bc[_0xb5fa('0x3d')],qs['fields'](_0x3bb4de['query']['fields']));_0x5518b1['attributes']=_0x5518b1['attributes']['length']?_0x5518b1[_0xb5fa('0x3c')]:_0x1847bc['model'];if(!_0x3bb4de[_0xb5fa('0x39')][_0xb5fa('0x3e')](_0xb5fa('0x3f'))){_0x5518b1[_0xb5fa('0x20')]=qs[_0xb5fa('0x20')](_0x3bb4de[_0xb5fa('0x39')]['limit']);_0x5518b1['offset']=qs['offset'](_0x3bb4de[_0xb5fa('0x39')]['offset']);}_0x5518b1[_0xb5fa('0x40')]=qs['sort'](_0x3bb4de['query'][_0xb5fa('0x41')]);_0x5518b1[_0xb5fa('0x42')]=qs[_0xb5fa('0x3a')](_[_0xb5fa('0x43')](_0x3bb4de[_0xb5fa('0x39')],_0x1847bc[_0xb5fa('0x3a')]),_0x4a4bff);if(_0x3bb4de[_0xb5fa('0x39')][_0xb5fa('0x44')]){_0x5518b1[_0xb5fa('0x42')]=_[_0xb5fa('0x45')](_0x5518b1['where'],{'$or':_[_0xb5fa('0x2b')](_0x4a4bff,function(_0x4bc9df){if(_0x4bc9df[_0xb5fa('0x2e')]!==_0xb5fa('0x46')){var _0x2c7c5f={};_0x2c7c5f[_0x4bc9df[_0xb5fa('0x30')]]={'$like':'%'+_0x3bb4de[_0xb5fa('0x39')][_0xb5fa('0x44')]+'%'};return _0x2c7c5f;}})});}_0x5518b1=_[_0xb5fa('0x45')]({},_0x5518b1,_0x3bb4de[_0xb5fa('0x47')]);var _0x4da448={'where':_0x5518b1[_0xb5fa('0x42')]};return db[_0xb5fa('0x36')]['count'](_0x4da448)[_0xb5fa('0x24')](function(_0x5a6ae3){_0x934b49[_0xb5fa('0x1e')]=_0x5a6ae3;if(_0x3bb4de[_0xb5fa('0x39')]['includeAll']){_0x5518b1['include']=[{'all':!![]}];}return db[_0xb5fa('0x36')][_0xb5fa('0x48')](_0x5518b1);})[_0xb5fa('0x24')](function(_0x19e662){_0x934b49[_0xb5fa('0x49')]=_0x19e662;return _0x934b49;})[_0xb5fa('0x24')](respondWithFilteredResult(_0x5876f1,_0x5518b1))[_0xb5fa('0x4a')](handleError(_0x5876f1,null));};exports[_0xb5fa('0x4b')]=function(_0x499d36,_0x13bf04){var _0x3e8b1d={'raw':![],'where':{'id':_0x499d36[_0xb5fa('0x4c')]['id']}},_0x4e0fe7={};_0x4e0fe7[_0xb5fa('0x3d')]=_[_0xb5fa('0x4d')](db[_0xb5fa('0x36')][_0xb5fa('0x37')]);_0x4e0fe7[_0xb5fa('0x39')]=_[_0xb5fa('0x4d')](_0x499d36[_0xb5fa('0x39')]);_0x4e0fe7[_0xb5fa('0x3a')]=_[_0xb5fa('0x3b')](_0x4e0fe7[_0xb5fa('0x3d')],_0x4e0fe7[_0xb5fa('0x39')]);_0x3e8b1d[_0xb5fa('0x3c')]=_[_0xb5fa('0x3b')](_0x4e0fe7[_0xb5fa('0x3d')],qs[_0xb5fa('0x4e')](_0x499d36['query']['fields']));_0x3e8b1d[_0xb5fa('0x3c')]=_0x3e8b1d['attributes'][_0xb5fa('0x4f')]?_0x3e8b1d[_0xb5fa('0x3c')]:_0x4e0fe7['model'];if(_0x499d36[_0xb5fa('0x39')][_0xb5fa('0x50')]){_0x3e8b1d[_0xb5fa('0x51')]=[{'all':!![]}];}_0x3e8b1d=_[_0xb5fa('0x45')]({},_0x3e8b1d,_0x499d36[_0xb5fa('0x47')]);return db[_0xb5fa('0x36')]['find'](_0x3e8b1d)[_0xb5fa('0x24')](handleEntityNotFound(_0x13bf04,null))['then'](respondWithResult(_0x13bf04,null))[_0xb5fa('0x4a')](handleError(_0x13bf04,null));};exports[_0xb5fa('0x32')]=function(_0x177c3b,_0x51f96a){return db[_0xb5fa('0x36')][_0xb5fa('0x2f')]({'where':{'id':_0x177c3b['params']['id']}})['then'](handleEntityNotFound(_0x51f96a,null))[_0xb5fa('0x24')](removeEntity(_0x51f96a,null))[_0xb5fa('0x4a')](handleError(_0x51f96a,null));};exports[_0xb5fa('0x52')]=function(_0x3ffdb5,_0x353fed){if(_0x3ffdb5[_0xb5fa('0x53')][_0xb5fa('0x2e')]===_0xb5fa('0x29')&&!_[_0xb5fa('0x54')](_0x3ffdb5[_0xb5fa('0x53')][_0xb5fa('0x55')],'_')){_0x3ffdb5[_0xb5fa('0x53')][_0xb5fa('0x55')]='_'[_0xb5fa('0x56')](_0x3ffdb5[_0xb5fa('0x53')][_0xb5fa('0x55')]);}return db[_0xb5fa('0x36')][_0xb5fa('0x52')](_0x3ffdb5['body'],{'raw':![]})[_0xb5fa('0x24')](function(_0x347791){var _0x222016=_0x3ffdb5[_0xb5fa('0x57')][_0xb5fa('0x25')]({'plain':!![]});if(!_0x222016)throw new Error(_0xb5fa('0x58'));if(_0x222016[_0xb5fa('0x59')]===_0xb5fa('0x57')){var _0x1cb39e=_0x347791[_0xb5fa('0x25')]({'plain':!![]});var _0x4ea97d=[{'name':'InboundRoutes','value':_0xb5fa('0x27')},{'name':_0xb5fa('0x28'),'value':_0xb5fa('0x29')},{'name':'InternalRoutes','value':_0xb5fa('0x5a')}];var _0x367f7a=_[_0xb5fa('0x2f')](_0x4ea97d,[_0xb5fa('0x2c'),_0x1cb39e[_0xb5fa('0x2e')]])[_0xb5fa('0x30')];return db[_0xb5fa('0x5b')]['find']({'where':{'name':_0x367f7a,'userProfileId':_0x222016[_0xb5fa('0x5c')]},'raw':!![]})[_0xb5fa('0x24')](function(_0x4afc02){if(_0x4afc02&&_0x4afc02[_0xb5fa('0x5d')]===0x0){return db[_0xb5fa('0x31')]['create']({'name':_0x1cb39e[_0xb5fa('0x30')],'resourceId':_0x1cb39e['id'],'type':_0x4afc02[_0xb5fa('0x30')],'sectionId':_0x4afc02['id']},{})[_0xb5fa('0x24')](function(){return _0x347791;});}else{return _0x347791;}})[_0xb5fa('0x4a')](function(_0x567d1c){logger[_0xb5fa('0x5e')](_0xb5fa('0x5f'),_0x567d1c);throw _0x567d1c;});}return _0x347791;})[_0xb5fa('0x24')](respondWithResult(_0x353fed,0xc9))[_0xb5fa('0x4a')](handleError(_0x353fed,null));};exports[_0xb5fa('0x60')]=function(_0xfb88cc,_0x3caf48){if(_0xfb88cc[_0xb5fa('0x53')]['id']){delete _0xfb88cc[_0xb5fa('0x53')]['id'];}return db[_0xb5fa('0x36')][_0xb5fa('0x2f')]({'where':{'id':_0xfb88cc[_0xb5fa('0x4c')]['id']}})[_0xb5fa('0x24')](handleEntityNotFound(_0x3caf48,null))[_0xb5fa('0x24')](function(_0x16b382){if(_0x16b382){return db[_0xb5fa('0x36')][_0xb5fa('0x60')](_['pick'](_0xfb88cc[_0xb5fa('0x53')],[_0xb5fa('0x55'),_0xb5fa('0x61'),'description',_0xb5fa('0x62'),_0xb5fa('0x63'),'mandatoryDisposition']),{'where':{'context':_0x16b382[_0xb5fa('0x61')],'exten':_0x16b382[_0xb5fa('0x55')]},'individualHooks':!![]})[_0xb5fa('0x24')](function(_0x571bb9){return _0x571bb9;});}return null;})['then'](respondWithStatusCode(_0x3caf48,null))[_0xb5fa('0x4a')](handleError(_0x3caf48,null));};exports[_0xb5fa('0x64')]=function(_0x432f04,_0x57d8b7,_0x597206){return db[_0xb5fa('0x36')][_0xb5fa('0x65')]({'where':{'id':_0x432f04[_0xb5fa('0x4c')]['id']}})['then'](handleEntityNotFound(_0x57d8b7,null))['then'](function(_0x5cec07){if(_0x5cec07){return db[_0xb5fa('0x66')][_0xb5fa('0x67')](function(_0x1872aa){return db['VoiceExtension'][_0xb5fa('0x32')]({'where':{'VoiceExtensionId':_0x432f04[_0xb5fa('0x4c')]['id']},'transaction':_0x1872aa})[_0xb5fa('0x24')](function(_0x42a763){var _0x2a1872=_[_0xb5fa('0x2b')](_0x432f04[_0xb5fa('0x53')],function(_0x144599){_0x144599[_0xb5fa('0x68')]=_0x432f04[_0xb5fa('0x4c')]['id'];return _0x144599;});return db[_0xb5fa('0x36')][_0xb5fa('0x69')](_0x2a1872,{'transaction':_0x1872aa});});})[_0xb5fa('0x24')](function(){return db[_0xb5fa('0x36')][_0xb5fa('0x6a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x432f04['params']['id']},'order':_0xb5fa('0x6b')});});}})['then'](respondWithResult(_0x57d8b7,null))[_0xb5fa('0x4a')](handleError(_0x57d8b7,null));};