Built motion from commit (unavailable).|2.5.23
[motion2.git] / server / api / trunk / trunk.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 _0x9b55=['order','sort','where','filter','merge','options','includeAll','include','findAll','rows','show','params','keys','find','clone','omit','createdAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Trunks','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','root','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','readFileSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','map','Trunk','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','nolimit'];(function(_0x2d4132,_0x16e982){var _0x4a0a1b=function(_0x5ed24d){while(--_0x5ed24d){_0x2d4132['push'](_0x2d4132['shift']());}};_0x4a0a1b(++_0x16e982);}(_0x9b55,0x17b));var _0x59b5=function(_0x4984f9,_0x3ecd89){_0x4984f9=_0x4984f9-0x0;var _0x139702=_0x9b55[_0x4984f9];return _0x139702;};'use strict';var pdf=require(_0x59b5('0x0'));var emlformat=require(_0x59b5('0x1'));var rimraf=require(_0x59b5('0x2'));var zipdir=require(_0x59b5('0x3'));var jsonpatch=require(_0x59b5('0x4'));var rp=require(_0x59b5('0x5'));var moment=require(_0x59b5('0x6'));var BPromise=require(_0x59b5('0x7'));var Mustache=require(_0x59b5('0x8'));var util=require(_0x59b5('0x9'));var path=require(_0x59b5('0xa'));var sox=require(_0x59b5('0xb'));var csv=require('to-csv');var ejs=require(_0x59b5('0xc'));var fs=require('fs');var _=require(_0x59b5('0xd'));var squel=require(_0x59b5('0xe'));var crypto=require(_0x59b5('0xf'));var jsforce=require(_0x59b5('0x10'));var deskjs=require(_0x59b5('0x11'));var toCsv=require(_0x59b5('0x12'));var querystring=require(_0x59b5('0x13'));var Papa=require(_0x59b5('0x14'));var Redis=require(_0x59b5('0x15'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x59b5('0x16'));var hardwareService=require(_0x59b5('0x17'));var logger=require(_0x59b5('0x18'))('api');var utils=require(_0x59b5('0x19'));var config=require(_0x59b5('0x1a'));var licenseUtil=require(_0x59b5('0x1b'));var db=require(_0x59b5('0x1c'))['db'];var jayson=require(_0x59b5('0x1d'));var client=jayson[_0x59b5('0x1e')][_0x59b5('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x56b10a,_0x2d2c5a,_0x1584e0,_0x523726){return new BPromise(function(_0x1e9682,_0x216b4b){var _0x77ecf2=_0x523726||client;return _0x77ecf2['request'](_0x56b10a,_0x1584e0)[_0x59b5('0x20')](function(_0x2d6b59){logger[_0x59b5('0x21')](_0x59b5('0x22'),_0x2d2c5a,_0x59b5('0x23'));logger[_0x59b5('0x24')]('Trunk,\x20%s,\x20%s,\x20%s',_0x2d2c5a,_0x59b5('0x23'),JSON[_0x59b5('0x25')](_0x2d6b59));if(_0x2d6b59[_0x59b5('0x26')]){if(_0x2d6b59[_0x59b5('0x26')]['code']===0x1f4){logger[_0x59b5('0x26')](_0x59b5('0x22'),_0x2d2c5a,_0x2d6b59[_0x59b5('0x26')][_0x59b5('0x27')]);return _0x216b4b(_0x2d6b59['error'][_0x59b5('0x27')]);}logger[_0x59b5('0x26')]('Trunk,\x20%s,\x20%s',_0x2d2c5a,_0x2d6b59[_0x59b5('0x26')]['message']);return _0x1e9682(_0x2d6b59['error'][_0x59b5('0x27')]);}else{logger[_0x59b5('0x21')](_0x59b5('0x22'),_0x2d2c5a,_0x59b5('0x23'));_0x1e9682(_0x2d6b59[_0x59b5('0x28')]['message']);}})[_0x59b5('0x29')](function(_0x45bf55){logger['error']('Trunk,\x20%s,\x20%s',_0x2d2c5a,_0x45bf55);_0x216b4b(_0x45bf55);});});}function respondWithStatusCode(_0x4b0d1e,_0x52e314){_0x52e314=_0x52e314||0xcc;return function(_0x3aa49d){if(_0x3aa49d){return _0x4b0d1e[_0x59b5('0x2a')](_0x52e314);}return _0x4b0d1e[_0x59b5('0x2b')](_0x52e314)[_0x59b5('0x2c')]();};}function respondWithResult(_0x48dbca,_0x3ac102){_0x3ac102=_0x3ac102||0xc8;return function(_0x5402c1){if(_0x5402c1){return _0x48dbca['status'](_0x3ac102)['json'](_0x5402c1);}};}function respondWithFilteredResult(_0x6b3868,_0x92de9c){return function(_0x279f40){if(_0x279f40){var _0x69ccb3=_0x279f40[_0x59b5('0x2d')],_0x17d0dc=_0x92de9c['offset'],_0x4f2edf=_0x92de9c[_0x59b5('0x2e')]+_0x92de9c[_0x59b5('0x2f')],_0x5659bd;if(_0x4f2edf>=_0x69ccb3){_0x4f2edf=_0x69ccb3;_0x5659bd=0xc8;}else{_0x5659bd=0xce;}_0x6b3868['status'](_0x5659bd);return _0x6b3868[_0x59b5('0x30')](_0x59b5('0x31'),_0x17d0dc+'-'+_0x4f2edf+'/'+_0x69ccb3)[_0x59b5('0x32')](_0x279f40);}return null;};}function patchUpdates(_0x36c0f7){return function(_0xa457d2){try{jsonpatch[_0x59b5('0x33')](_0xa457d2,_0x36c0f7,!![]);}catch(_0x1dcf17){return BPromise[_0x59b5('0x34')](_0x1dcf17);}return _0xa457d2[_0x59b5('0x35')]();};}function saveUpdates(_0x562328,_0x590bb1){return function(_0x452475){if(_0x452475){return _0x452475[_0x59b5('0x36')](_0x562328)[_0x59b5('0x20')](function(_0x336da6){return _0x336da6;});}return null;};}function removeEntity(_0x3e88d5,_0x105b40){return function(_0x54568a){if(_0x54568a){return _0x54568a[_0x59b5('0x37')]()[_0x59b5('0x20')](function(){var _0x15ddfe=_0x54568a[_0x59b5('0x38')]({'plain':!![]});var _0x4c2a8d='Trunks';return db[_0x59b5('0x39')]['destroy']({'where':{'type':_0x4c2a8d,'resourceId':_0x15ddfe['id']}})[_0x59b5('0x20')](function(){return _0x54568a;});})[_0x59b5('0x20')](function(){_0x3e88d5[_0x59b5('0x2b')](0xcc)[_0x59b5('0x2c')]();});}};}function handleEntityNotFound(_0x56b9f2,_0x5db40d){return function(_0x220ca6){if(!_0x220ca6){_0x56b9f2['sendStatus'](0x194);}return _0x220ca6;};}function handleError(_0x9f3806,_0x49a9f0){_0x49a9f0=_0x49a9f0||0x1f4;return function(_0x4ae3a9){logger[_0x59b5('0x26')](_0x4ae3a9[_0x59b5('0x3a')]);if(_0x4ae3a9[_0x59b5('0x3b')]){delete _0x4ae3a9[_0x59b5('0x3b')];}_0x9f3806[_0x59b5('0x2b')](_0x49a9f0)['send'](_0x4ae3a9);};}exports['index']=function(_0x1d4ae1,_0x4d8104){var _0xe60347={},_0x241656={},_0x26c09b={'count':0x0,'rows':[]};var _0x143244=_[_0x59b5('0x3c')](db[_0x59b5('0x3d')][_0x59b5('0x3e')],function(_0x4f6713){return{'name':_0x4f6713['fieldName'],'type':_0x4f6713[_0x59b5('0x3f')][_0x59b5('0x40')]};});_0x241656[_0x59b5('0x41')]=_['map'](_0x143244,'name');_0x241656[_0x59b5('0x42')]=_['keys'](_0x1d4ae1[_0x59b5('0x42')]);_0x241656[_0x59b5('0x43')]=_[_0x59b5('0x44')](_0x241656[_0x59b5('0x41')],_0x241656[_0x59b5('0x42')]);_0xe60347[_0x59b5('0x45')]=_[_0x59b5('0x44')](_0x241656[_0x59b5('0x41')],qs[_0x59b5('0x46')](_0x1d4ae1[_0x59b5('0x42')][_0x59b5('0x46')]));_0xe60347['attributes']=_0xe60347[_0x59b5('0x45')][_0x59b5('0x47')]?_0xe60347[_0x59b5('0x45')]:_0x241656[_0x59b5('0x41')];if(!_0x1d4ae1[_0x59b5('0x42')]['hasOwnProperty'](_0x59b5('0x48'))){_0xe60347[_0x59b5('0x2f')]=qs[_0x59b5('0x2f')](_0x1d4ae1[_0x59b5('0x42')][_0x59b5('0x2f')]);_0xe60347[_0x59b5('0x2e')]=qs[_0x59b5('0x2e')](_0x1d4ae1[_0x59b5('0x42')]['offset']);}_0xe60347[_0x59b5('0x49')]=qs['sort'](_0x1d4ae1[_0x59b5('0x42')][_0x59b5('0x4a')]);_0xe60347[_0x59b5('0x4b')]=qs[_0x59b5('0x43')](_['pick'](_0x1d4ae1[_0x59b5('0x42')],_0x241656[_0x59b5('0x43')]),_0x143244);if(_0x1d4ae1[_0x59b5('0x42')][_0x59b5('0x4c')]){_0xe60347[_0x59b5('0x4b')]=_[_0x59b5('0x4d')](_0xe60347[_0x59b5('0x4b')],{'$or':_[_0x59b5('0x3c')](_0x143244,function(_0x3570e6){if(_0x3570e6[_0x59b5('0x3f')]!=='VIRTUAL'){var _0x2a2295={};_0x2a2295[_0x3570e6[_0x59b5('0x3b')]]={'$like':'%'+_0x1d4ae1[_0x59b5('0x42')]['filter']+'%'};return _0x2a2295;}})});}_0xe60347=_['merge']({},_0xe60347,_0x1d4ae1[_0x59b5('0x4e')]);var _0x4a6dac={'where':_0xe60347[_0x59b5('0x4b')]};return db['Trunk']['count'](_0x4a6dac)[_0x59b5('0x20')](function(_0x3d894e){_0x26c09b[_0x59b5('0x2d')]=_0x3d894e;if(_0x1d4ae1[_0x59b5('0x42')][_0x59b5('0x4f')]){_0xe60347[_0x59b5('0x50')]=[{'all':!![]}];}return db[_0x59b5('0x3d')][_0x59b5('0x51')](_0xe60347);})['then'](function(_0x132f93){_0x26c09b[_0x59b5('0x52')]=_0x132f93;return _0x26c09b;})[_0x59b5('0x20')](respondWithFilteredResult(_0x4d8104,_0xe60347))['catch'](handleError(_0x4d8104,null));};exports[_0x59b5('0x53')]=function(_0x2d0a37,_0x265243){var _0x536da2={'raw':![],'where':{'id':_0x2d0a37[_0x59b5('0x54')]['id']}},_0x563ee8={};_0x563ee8['model']=_[_0x59b5('0x55')](db[_0x59b5('0x3d')][_0x59b5('0x3e')]);_0x563ee8['query']=_[_0x59b5('0x55')](_0x2d0a37[_0x59b5('0x42')]);_0x563ee8[_0x59b5('0x43')]=_['intersection'](_0x563ee8[_0x59b5('0x41')],_0x563ee8['query']);_0x536da2[_0x59b5('0x45')]=_[_0x59b5('0x44')](_0x563ee8[_0x59b5('0x41')],qs[_0x59b5('0x46')](_0x2d0a37[_0x59b5('0x42')][_0x59b5('0x46')]));_0x536da2[_0x59b5('0x45')]=_0x536da2['attributes'][_0x59b5('0x47')]?_0x536da2[_0x59b5('0x45')]:_0x563ee8[_0x59b5('0x41')];if(_0x2d0a37[_0x59b5('0x42')]['includeAll']){_0x536da2[_0x59b5('0x50')]=[{'all':!![]}];}_0x536da2=_[_0x59b5('0x4d')]({},_0x536da2,_0x2d0a37['options']);return db[_0x59b5('0x3d')][_0x59b5('0x56')](_0x536da2)[_0x59b5('0x20')](handleEntityNotFound(_0x265243,null))[_0x59b5('0x20')](respondWithResult(_0x265243,null))[_0x59b5('0x29')](handleError(_0x265243,null));};exports[_0x59b5('0x57')]=function(_0x3c7e3c,_0x58fc01){var _0x332ba8={'where':{'id':_0x3c7e3c[_0x59b5('0x54')]['id']}},_0x5cf7b3={};_0x5cf7b3[_0x59b5('0x41')]=_[_0x59b5('0x55')](db[_0x59b5('0x3d')]['rawAttributes']);_0x332ba8[_0x59b5('0x45')]=_[_0x59b5('0x44')](_0x5cf7b3[_0x59b5('0x41')],qs[_0x59b5('0x46')](_0x3c7e3c[_0x59b5('0x42')]['fields']));_0x332ba8['attributes']=_0x332ba8['attributes'][_0x59b5('0x47')]?_0x332ba8[_0x59b5('0x45')]:_0x5cf7b3[_0x59b5('0x41')];if(_0x3c7e3c[_0x59b5('0x42')][_0x59b5('0x4f')]){_0x332ba8[_0x59b5('0x50')]=[{'all':!![]}];}_0x332ba8=_[_0x59b5('0x4d')]({},_0x332ba8,_0x3c7e3c[_0x59b5('0x4e')]);return db['Trunk'][_0x59b5('0x56')](_0x332ba8)[_0x59b5('0x20')](handleEntityNotFound(_0x58fc01,null))[_0x59b5('0x20')](function(_0x6d1b6){if(_0x6d1b6){var _0xb1c41d=_0x6d1b6['get']({'plain':!![]});_0xb1c41d=qs[_0x59b5('0x58')](_0xb1c41d,['id',_0x59b5('0x59'),'updatedAt']);_0x3c7e3c['body']=_[_0x59b5('0x58')](_0x3c7e3c['body'],['id',_0x59b5('0x59'),'updatedAt']);return db[_0x59b5('0x3d')][_0x59b5('0x5a')](_['merge'](_0xb1c41d,_0x3c7e3c[_0x59b5('0x5b')]),{'include':_0x3c7e3c[_0x59b5('0x42')]['includeAll']?[{'all':!![]}]:undefined})[_0x59b5('0x20')](function(_0x1acfa6){var _0x47038e=_0x3c7e3c[_0x59b5('0x5c')]['get']({'plain':!![]});if(!_0x47038e)throw new Error(_0x59b5('0x5d'));if(_0x47038e[_0x59b5('0x5e')]==='user'){var _0x5a88ff=_0x1acfa6[_0x59b5('0x38')]({'plain':!![]});var _0x25cb1a=_0x59b5('0x5f');return db[_0x59b5('0x60')][_0x59b5('0x56')]({'where':{'name':_0x25cb1a,'userProfileId':_0x47038e[_0x59b5('0x61')]},'raw':!![]})[_0x59b5('0x20')](function(_0x295626){if(_0x295626&&_0x295626[_0x59b5('0x62')]===0x0){return db[_0x59b5('0x39')][_0x59b5('0x5a')]({'name':_0x5a88ff[_0x59b5('0x3b')],'resourceId':_0x5a88ff['id'],'type':_0x295626['name'],'sectionId':_0x295626['id']},{})[_0x59b5('0x20')](function(){return _0x1acfa6;});}else{return _0x1acfa6;}})[_0x59b5('0x29')](function(_0x5214aa){logger[_0x59b5('0x26')](_0x59b5('0x63'),_0x5214aa);throw _0x5214aa;});}return _0x1acfa6;});}})[_0x59b5('0x20')](respondWithResult(_0x58fc01,0xc9))[_0x59b5('0x29')](handleError(_0x58fc01,null));};exports[_0x59b5('0x5a')]=function(_0x2e80b8,_0x49a3c2,_0x5649ae){var _0x8b2441;return db['Trunk'][_0x59b5('0x5a')](_0x2e80b8[_0x59b5('0x5b')],{'raw':!![]})[_0x59b5('0x20')](function(_0x3fe616){_0x8b2441=_0x3fe616;return db['Trunk'][_0x59b5('0x51')]({'raw':!![]});})['then'](function(_0x51ef87){var _0x32c29d=fs['readFileSync'](path[_0x59b5('0x64')](config[_0x59b5('0x65')],_0x59b5('0x66')),'utf8');var _0x3372ab=fs['readFileSync'](path[_0x59b5('0x64')](config['root'],_0x59b5('0x67')),_0x59b5('0x68'));var _0x2bfcce=ejs[_0x59b5('0x69')](_0x32c29d,{'trunks':_0x51ef87||[]});fs[_0x59b5('0x6a')](_0x59b5('0x6b'),_0x2bfcce);if(_0x8b2441[_0x59b5('0x6c')]){var _0x28f536=ejs[_0x59b5('0x69')](_0x3372ab,{'trunks':_0x51ef87||[]});fs[_0x59b5('0x6a')](_0x59b5('0x6d'),_0x28f536);}})[_0x59b5('0x20')](function(){return respondWithRpcPromise(_0x59b5('0x6e'),_0x59b5('0x5a'),{'module':_0x59b5('0x6f')});})[_0x59b5('0x20')](function(){var _0x181acf=_0x2e80b8[_0x59b5('0x5c')][_0x59b5('0x38')]({'plain':!![]});if(!_0x181acf)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x181acf[_0x59b5('0x5e')]==='user'){var _0x4ce852=_0x8b2441['get']({'plain':!![]});return db[_0x59b5('0x60')][_0x59b5('0x56')]({'where':{'name':_0x59b5('0x5f'),'userProfileId':_0x181acf['userProfileId']},'raw':!![]})['then'](function(_0x324f89){if(_0x324f89&&_0x324f89[_0x59b5('0x62')]===0x0){return db[_0x59b5('0x39')][_0x59b5('0x5a')]({'name':_0x4ce852[_0x59b5('0x3b')],'resourceId':_0x4ce852['id'],'type':_0x324f89['name'],'sectionId':_0x324f89['id']},{})[_0x59b5('0x20')](function(){return _0x8b2441;});}else{return _0x8b2441;}})[_0x59b5('0x29')](function(_0xc2db7e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xc2db7e);throw _0xc2db7e;});}return _0x8b2441;})['then'](respondWithResult(_0x49a3c2,0xc9))[_0x59b5('0x29')](handleError(_0x49a3c2,null));};exports['update']=function(_0x16cdfe,_0x5256ef,_0x3b093f){var _0x212025;return db[_0x59b5('0x3d')][_0x59b5('0x56')]({'where':{'id':_0x16cdfe[_0x59b5('0x54')]['id']}})['then'](handleEntityNotFound(_0x5256ef,null))[_0x59b5('0x20')](saveUpdates(_0x16cdfe[_0x59b5('0x5b')],null))[_0x59b5('0x20')](function(_0x3aabda){if(_0x3aabda){_0x212025=_0x3aabda;return db['Trunk'][_0x59b5('0x51')]({'raw':!![]});}})[_0x59b5('0x20')](function(_0x64d179){if(_0x64d179){var _0x3c23c5=fs[_0x59b5('0x70')](path[_0x59b5('0x64')](config[_0x59b5('0x65')],'server/files/templates/trunk.ejs'),'utf8');var _0x1d6660=fs[_0x59b5('0x70')](path[_0x59b5('0x64')](config[_0x59b5('0x65')],_0x59b5('0x67')),'utf8');var _0x4080eb=ejs[_0x59b5('0x69')](_0x3c23c5,{'trunks':_0x64d179||[]});fs[_0x59b5('0x6a')](_0x59b5('0x6b'),_0x4080eb);var _0xcf780e=ejs[_0x59b5('0x69')](_0x1d6660,{'trunks':_0x64d179||[]});fs[_0x59b5('0x6a')](_0x59b5('0x6d'),_0xcf780e);return respondWithRpcPromise('Reload',_0x59b5('0x36'),{'module':_0x59b5('0x6f')});}return null;})[_0x59b5('0x20')](function(_0x158858){if(_0x158858){return _0x212025;}})[_0x59b5('0x20')](respondWithResult(_0x5256ef,null))['catch'](handleError(_0x5256ef,null));};exports[_0x59b5('0x37')]=function(_0x108221,_0x44b37d,_0x23ee9d){var _0x3a2695;return db['Trunk'][_0x59b5('0x56')]({'where':{'id':_0x108221[_0x59b5('0x54')]['id']}})[_0x59b5('0x20')](handleEntityNotFound(_0x44b37d,null))['then'](removeEntity(_0x44b37d,null))[_0x59b5('0x20')](function(){return db[_0x59b5('0x3d')][_0x59b5('0x51')]({'raw':!![]});})[_0x59b5('0x20')](function(_0x167c88){var _0x27dab8=fs[_0x59b5('0x70')](path[_0x59b5('0x64')](config[_0x59b5('0x65')],_0x59b5('0x66')),_0x59b5('0x68'));var _0x5dc30d=fs['readFileSync'](path['join'](config[_0x59b5('0x65')],_0x59b5('0x67')),_0x59b5('0x68'));var _0x24ea33=ejs['render'](_0x27dab8,{'trunks':_0x167c88});var _0x35f720=ejs[_0x59b5('0x69')](_0x5dc30d,{'trunks':_0x167c88});fs[_0x59b5('0x6a')](_0x59b5('0x6b'),_0x24ea33);fs[_0x59b5('0x6a')](_0x59b5('0x6d'),_0x35f720);return respondWithRpcPromise(_0x59b5('0x6e'),_0x59b5('0x37'),{'module':_0x59b5('0x6f')});})[_0x59b5('0x29')](handleError(_0x44b37d,null));};