Built motion from commit (unavailable).|2.3.7
[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 _0x7cdf=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','type','key','VIRTUAL','field','options','Trunk','includeAll','include','rows','show','params','find','clone','omit','createdAt','body','updatedAt','create','user','role','UserProfileSection','userProfileId','autoAssociation','readFileSync','root','utf8','join','render','writeFileSync','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_trunks.conf','findAll','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','Trunk,\x20%s,\x20%s','catch','status','end','count','offset','limit','json','reject','destroy','get','Trunks','UserProfileResource','sendStatus','name','send','rawAttributes','model','keys','query','filters','intersection','attributes'];(function(_0x53b55f,_0x7980d0){var _0x71d9fa=function(_0x1c30c2){while(--_0x1c30c2){_0x53b55f['push'](_0x53b55f['shift']());}};_0x71d9fa(++_0x7980d0);}(_0x7cdf,0x169));var _0xf7cd=function(_0x5f0a4c,_0x6d8485){_0x5f0a4c=_0x5f0a4c-0x0;var _0x2632a2=_0x7cdf[_0x5f0a4c];return _0x2632a2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf7cd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf7cd('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf7cd('0x2'));var moment=require(_0xf7cd('0x3'));var BPromise=require(_0xf7cd('0x4'));var Mustache=require(_0xf7cd('0x5'));var util=require(_0xf7cd('0x6'));var path=require(_0xf7cd('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf7cd('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xf7cd('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf7cd('0xa'));var querystring=require(_0xf7cd('0xb'));var Papa=require(_0xf7cd('0xc'));var authService=require(_0xf7cd('0xd'));var hardwareService=require(_0xf7cd('0xe'));var Redis=require(_0xf7cd('0xf'));var qs=require(_0xf7cd('0x10'));var logger=require('../../config/logger')(_0xf7cd('0x11'));var utils=require(_0xf7cd('0x12'));var config=require(_0xf7cd('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0xf7cd('0x14'));var client=jayson[_0xf7cd('0x15')][_0xf7cd('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x5df539,_0x49f092,_0xce30ab,_0x276d85){return new BPromise(function(_0x8ff623,_0x57d8e1){var _0x2e745c=_0x276d85||client;return _0x2e745c['request'](_0x5df539,_0xce30ab)[_0xf7cd('0x17')](function(_0x17542f){logger[_0xf7cd('0x18')]('Trunk,\x20%s,\x20%s',_0x49f092,'request\x20sent');logger[_0xf7cd('0x19')](_0xf7cd('0x1a'),_0x49f092,_0xf7cd('0x1b'),JSON[_0xf7cd('0x1c')](_0x17542f));if(_0x17542f[_0xf7cd('0x1d')]){if(_0x17542f[_0xf7cd('0x1d')][_0xf7cd('0x1e')]===0x1f4){logger[_0xf7cd('0x1d')]('Trunk,\x20%s,\x20%s',_0x49f092,_0x17542f[_0xf7cd('0x1d')][_0xf7cd('0x1f')]);return _0x57d8e1(_0x17542f[_0xf7cd('0x1d')][_0xf7cd('0x1f')]);}logger[_0xf7cd('0x1d')](_0xf7cd('0x20'),_0x49f092,_0x17542f['error'][_0xf7cd('0x1f')]);return _0x8ff623(_0x17542f[_0xf7cd('0x1d')][_0xf7cd('0x1f')]);}else{logger[_0xf7cd('0x18')](_0xf7cd('0x20'),_0x49f092,_0xf7cd('0x1b'));_0x8ff623(_0x17542f['result']['message']);}})[_0xf7cd('0x21')](function(_0x137698){logger[_0xf7cd('0x1d')](_0xf7cd('0x20'),_0x49f092,_0x137698);_0x57d8e1(_0x137698);});});}function respondWithStatusCode(_0xf2d6d3,_0xbf605){_0xbf605=_0xbf605||0xcc;return function(_0x3eded1){if(_0x3eded1){return _0xf2d6d3['sendStatus'](_0xbf605);}return _0xf2d6d3[_0xf7cd('0x22')](_0xbf605)[_0xf7cd('0x23')]();};}function respondWithResult(_0x2a214d,_0x4cfcd5){_0x4cfcd5=_0x4cfcd5||0xc8;return function(_0x472156){if(_0x472156){return _0x2a214d[_0xf7cd('0x22')](_0x4cfcd5)['json'](_0x472156);}};}function respondWithFilteredResult(_0x3f5583,_0x745edd){return function(_0x5f320b){if(_0x5f320b){var _0x2685d2=_0x5f320b[_0xf7cd('0x24')],_0x470537=_0x745edd[_0xf7cd('0x25')],_0x1a9243=_0x745edd[_0xf7cd('0x25')]+_0x745edd[_0xf7cd('0x26')],_0x3c95e7;if(_0x1a9243>=_0x2685d2){_0x1a9243=_0x2685d2;_0x3c95e7=0xc8;}else{_0x3c95e7=0xce;}_0x3f5583[_0xf7cd('0x22')](_0x3c95e7);return _0x3f5583['set']('Content-Range',_0x470537+'-'+_0x1a9243+'/'+_0x2685d2)[_0xf7cd('0x27')](_0x5f320b);}return null;};}function patchUpdates(_0x5907ad){return function(_0x3f2da4){try{jsonpatch['apply'](_0x3f2da4,_0x5907ad,!![]);}catch(_0x1a037e){return BPromise[_0xf7cd('0x28')](_0x1a037e);}return _0x3f2da4['save']();};}function saveUpdates(_0x168aea,_0xbb8f18){return function(_0x4c186c){if(_0x4c186c){return _0x4c186c['update'](_0x168aea)[_0xf7cd('0x17')](function(_0x3450d5){return _0x3450d5;});}return null;};}function removeEntity(_0x37d8a1,_0x5067ae){return function(_0x457ea4){if(_0x457ea4){return _0x457ea4[_0xf7cd('0x29')]()[_0xf7cd('0x17')](function(){var _0x5ced00=_0x457ea4[_0xf7cd('0x2a')]({'plain':!![]});var _0x586e80=_0xf7cd('0x2b');return db[_0xf7cd('0x2c')][_0xf7cd('0x29')]({'where':{'type':_0x586e80,'resourceId':_0x5ced00['id']}})[_0xf7cd('0x17')](function(){return _0x457ea4;});})[_0xf7cd('0x17')](function(){_0x37d8a1[_0xf7cd('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x49ef0c,_0x34cdf1){return function(_0x21d418){if(!_0x21d418){_0x49ef0c[_0xf7cd('0x2d')](0x194);}return _0x21d418;};}function handleError(_0x672b6f,_0x24a98d){_0x24a98d=_0x24a98d||0x1f4;return function(_0x9c107b){logger['error'](_0x9c107b['stack']);if(_0x9c107b['name']){delete _0x9c107b[_0xf7cd('0x2e')];}_0x672b6f[_0xf7cd('0x22')](_0x24a98d)[_0xf7cd('0x2f')](_0x9c107b);};}exports['index']=function(_0x3fdffd,_0x5937cf){var _0x2d04b1={},_0x4f293e={},_0x21b7be={'count':0x0,'rows':[]};var _0x4ba2b2=db['Trunk'][_0xf7cd('0x30')];_0x4f293e[_0xf7cd('0x31')]=_[_0xf7cd('0x32')](_0x4ba2b2);_0x4f293e[_0xf7cd('0x33')]=_[_0xf7cd('0x32')](_0x3fdffd[_0xf7cd('0x33')]);_0x4f293e[_0xf7cd('0x34')]=_[_0xf7cd('0x35')](_0x4f293e['model'],_0x4f293e[_0xf7cd('0x33')]);_0x2d04b1[_0xf7cd('0x36')]=_[_0xf7cd('0x35')](_0x4f293e[_0xf7cd('0x31')],qs[_0xf7cd('0x37')](_0x3fdffd[_0xf7cd('0x33')]['fields']));_0x2d04b1[_0xf7cd('0x36')]=_0x2d04b1[_0xf7cd('0x36')][_0xf7cd('0x38')]?_0x2d04b1['attributes']:_0x4f293e[_0xf7cd('0x31')];if(!_0x3fdffd['query'][_0xf7cd('0x39')](_0xf7cd('0x3a'))){_0x2d04b1['limit']=qs[_0xf7cd('0x26')](_0x3fdffd[_0xf7cd('0x33')][_0xf7cd('0x26')]);_0x2d04b1[_0xf7cd('0x25')]=qs[_0xf7cd('0x25')](_0x3fdffd['query'][_0xf7cd('0x25')]);}_0x2d04b1[_0xf7cd('0x3b')]=qs['sort'](_0x3fdffd['query'][_0xf7cd('0x3c')]);_0x2d04b1[_0xf7cd('0x3d')]=qs[_0xf7cd('0x34')](_[_0xf7cd('0x3e')](_0x3fdffd['query'],_0x4f293e[_0xf7cd('0x34')]));if(_0x3fdffd[_0xf7cd('0x33')][_0xf7cd('0x3f')]){_0x2d04b1[_0xf7cd('0x3d')]=_[_0xf7cd('0x40')](_0x2d04b1[_0xf7cd('0x3d')],{'$or':_[_0xf7cd('0x41')](_0x4ba2b2,function(_0x4d97e1){if(_0x4d97e1[_0xf7cd('0x42')][_0xf7cd('0x43')]!==_0xf7cd('0x44')){var _0x515000={};_0x515000[_0x4d97e1[_0xf7cd('0x45')]]={'$like':'%'+_0x3fdffd[_0xf7cd('0x33')][_0xf7cd('0x3f')]+'%'};return _0x515000;}})});}_0x2d04b1=_[_0xf7cd('0x40')]({},_0x2d04b1,_0x3fdffd[_0xf7cd('0x46')]);var _0x544a2b={'where':_0x2d04b1[_0xf7cd('0x3d')]};return db[_0xf7cd('0x47')][_0xf7cd('0x24')](_0x544a2b)['then'](function(_0xc74cad){_0x21b7be[_0xf7cd('0x24')]=_0xc74cad;if(_0x3fdffd['query'][_0xf7cd('0x48')]){_0x2d04b1[_0xf7cd('0x49')]=[{'all':!![]}];}return db['Trunk']['findAll'](_0x2d04b1);})['then'](function(_0x2b4d1d){_0x21b7be[_0xf7cd('0x4a')]=_0x2b4d1d;return _0x21b7be;})[_0xf7cd('0x17')](respondWithFilteredResult(_0x5937cf,_0x2d04b1))[_0xf7cd('0x21')](handleError(_0x5937cf,null));};exports[_0xf7cd('0x4b')]=function(_0x4b4fb2,_0x2b7a67){var _0x326888={'raw':![],'where':{'id':_0x4b4fb2[_0xf7cd('0x4c')]['id']}},_0x20f35b={};_0x20f35b[_0xf7cd('0x31')]=_['keys'](db[_0xf7cd('0x47')][_0xf7cd('0x30')]);_0x20f35b['query']=_[_0xf7cd('0x32')](_0x4b4fb2['query']);_0x20f35b[_0xf7cd('0x34')]=_['intersection'](_0x20f35b['model'],_0x20f35b[_0xf7cd('0x33')]);_0x326888[_0xf7cd('0x36')]=_[_0xf7cd('0x35')](_0x20f35b['model'],qs[_0xf7cd('0x37')](_0x4b4fb2['query']['fields']));_0x326888[_0xf7cd('0x36')]=_0x326888[_0xf7cd('0x36')][_0xf7cd('0x38')]?_0x326888[_0xf7cd('0x36')]:_0x20f35b[_0xf7cd('0x31')];if(_0x4b4fb2['query'][_0xf7cd('0x48')]){_0x326888['include']=[{'all':!![]}];}_0x326888=_['merge']({},_0x326888,_0x4b4fb2[_0xf7cd('0x46')]);return db['Trunk'][_0xf7cd('0x4d')](_0x326888)[_0xf7cd('0x17')](handleEntityNotFound(_0x2b7a67,null))['then'](respondWithResult(_0x2b7a67,null))[_0xf7cd('0x21')](handleError(_0x2b7a67,null));};exports[_0xf7cd('0x4e')]=function(_0x1b98a1,_0x3c2ebe){var _0x4a9407={'raw':![],'where':{'id':_0x1b98a1[_0xf7cd('0x4c')]['id']}},_0x2eb025={};_0x2eb025[_0xf7cd('0x31')]=_[_0xf7cd('0x32')](db[_0xf7cd('0x47')][_0xf7cd('0x30')]);_0x4a9407['attributes']=_[_0xf7cd('0x35')](_0x2eb025['model'],qs['fields'](_0x1b98a1[_0xf7cd('0x33')][_0xf7cd('0x37')]));_0x4a9407[_0xf7cd('0x36')]=_0x4a9407['attributes']['length']?_0x4a9407[_0xf7cd('0x36')]:_0x2eb025[_0xf7cd('0x31')];if(_0x1b98a1[_0xf7cd('0x33')][_0xf7cd('0x48')]){_0x4a9407['include']=[{'all':!![]}];}_0x4a9407=_[_0xf7cd('0x40')]({},_0x4a9407,_0x1b98a1[_0xf7cd('0x46')]);return db[_0xf7cd('0x47')][_0xf7cd('0x4d')](_0x4a9407)['then'](handleEntityNotFound(_0x3c2ebe,null))[_0xf7cd('0x17')](function(_0x3dac8e){if(_0x3dac8e){var _0xf5d5af=_0x3dac8e['get']({'plain':!![]});_0xf5d5af=qs[_0xf7cd('0x4f')](_0xf5d5af,['id',_0xf7cd('0x50'),'updatedAt']);_0x1b98a1[_0xf7cd('0x51')]=_[_0xf7cd('0x4f')](_0x1b98a1['body'],['id',_0xf7cd('0x50'),_0xf7cd('0x52')]);return db['Trunk'][_0xf7cd('0x53')](_[_0xf7cd('0x40')](_0xf5d5af,_0x1b98a1[_0xf7cd('0x51')]),{'include':_0x1b98a1[_0xf7cd('0x33')]['includeAll']?[{'all':!![]}]:undefined})[_0xf7cd('0x17')](function(_0x28c9ad){var _0x553d7c=_0x1b98a1[_0xf7cd('0x54')][_0xf7cd('0x2a')]({'plain':!![]});if(!_0x553d7c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x553d7c[_0xf7cd('0x55')]===_0xf7cd('0x54')){var _0x5f02f0=_0x28c9ad['get']({'plain':!![]});var _0x5a9357=_0xf7cd('0x2b');return db[_0xf7cd('0x56')][_0xf7cd('0x4d')]({'where':{'name':_0x5a9357,'userProfileId':_0x553d7c[_0xf7cd('0x57')]},'raw':!![]})['then'](function(_0x48913a){if(_0x48913a&&_0x48913a[_0xf7cd('0x58')]===0x0){return db[_0xf7cd('0x2c')]['create']({'name':_0x5f02f0['name'],'resourceId':_0x5f02f0['id'],'type':_0x48913a['name'],'sectionId':_0x48913a['id']},{})[_0xf7cd('0x17')](function(){return _0x28c9ad;});}else{return _0x28c9ad;}})[_0xf7cd('0x21')](function(_0x36db51){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x36db51);throw _0x36db51;});}return _0x28c9ad;});}})['then'](respondWithResult(_0x3c2ebe,0xc9))['catch'](handleError(_0x3c2ebe,null));};exports[_0xf7cd('0x53')]=function(_0x158a84,_0x236892,_0x1deb14){var _0x4f7e11;return db[_0xf7cd('0x47')][_0xf7cd('0x53')](_0x158a84[_0xf7cd('0x51')],{'raw':!![]})[_0xf7cd('0x17')](function(_0x494f8a){_0x4f7e11=_0x494f8a;return db[_0xf7cd('0x47')]['findAll']({'raw':!![]});})['then'](function(_0x1a6c83){var _0x22c163=fs[_0xf7cd('0x59')](path['join'](config[_0xf7cd('0x5a')],'server/files/templates/trunk.ejs'),_0xf7cd('0x5b'));var _0x42c196=fs[_0xf7cd('0x59')](path[_0xf7cd('0x5c')](config['root'],'server/files/templates/registry.ejs'),_0xf7cd('0x5b'));var _0x255e8c=ejs[_0xf7cd('0x5d')](_0x22c163,{'trunks':_0x1a6c83||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_trunks.conf',_0x255e8c);if(_0x4f7e11['registry']){var _0x2505ae=ejs[_0xf7cd('0x5d')](_0x42c196,{'trunks':_0x1a6c83||[]});fs[_0xf7cd('0x5e')](_0xf7cd('0x5f'),_0x2505ae);}})[_0xf7cd('0x17')](function(){return respondWithRpcPromise(_0xf7cd('0x60'),_0xf7cd('0x53'),{'module':_0xf7cd('0x61')});})['then'](function(){var _0x5b30af=_0x158a84[_0xf7cd('0x54')]['get']({'plain':!![]});if(!_0x5b30af)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5b30af[_0xf7cd('0x55')]===_0xf7cd('0x54')){var _0x4a1442=_0x4f7e11[_0xf7cd('0x2a')]({'plain':!![]});return db[_0xf7cd('0x56')][_0xf7cd('0x4d')]({'where':{'name':_0xf7cd('0x2b'),'userProfileId':_0x5b30af[_0xf7cd('0x57')]},'raw':!![]})[_0xf7cd('0x17')](function(_0x4c98f5){if(_0x4c98f5&&_0x4c98f5[_0xf7cd('0x58')]===0x0){return db[_0xf7cd('0x2c')][_0xf7cd('0x53')]({'name':_0x4a1442[_0xf7cd('0x2e')],'resourceId':_0x4a1442['id'],'type':_0x4c98f5[_0xf7cd('0x2e')],'sectionId':_0x4c98f5['id']},{})[_0xf7cd('0x17')](function(){return _0x4f7e11;});}else{return _0x4f7e11;}})[_0xf7cd('0x21')](function(_0x365caa){logger[_0xf7cd('0x1d')](_0xf7cd('0x62'),_0x365caa);throw _0x365caa;});}return _0x4f7e11;})[_0xf7cd('0x17')](respondWithResult(_0x236892,0xc9))[_0xf7cd('0x21')](handleError(_0x236892,null));};exports[_0xf7cd('0x63')]=function(_0x4e2824,_0x521234,_0x4f4f4f){var _0x1931ba;return db[_0xf7cd('0x47')][_0xf7cd('0x4d')]({'where':{'id':_0x4e2824['params']['id']}})[_0xf7cd('0x17')](handleEntityNotFound(_0x521234,null))[_0xf7cd('0x17')](saveUpdates(_0x4e2824[_0xf7cd('0x51')],null))[_0xf7cd('0x17')](function(_0x2e6990){if(_0x2e6990){_0x1931ba=_0x2e6990;return db[_0xf7cd('0x47')]['findAll']({'raw':!![]});}})['then'](function(_0x53279e){if(_0x53279e){var _0x264f63=fs[_0xf7cd('0x59')](path[_0xf7cd('0x5c')](config[_0xf7cd('0x5a')],_0xf7cd('0x64')),_0xf7cd('0x5b'));var _0x3ac885=fs['readFileSync'](path['join'](config[_0xf7cd('0x5a')],_0xf7cd('0x65')),_0xf7cd('0x5b'));var _0x406480=ejs[_0xf7cd('0x5d')](_0x264f63,{'trunks':_0x53279e||[]});fs[_0xf7cd('0x5e')](_0xf7cd('0x66'),_0x406480);var _0x417355=ejs['render'](_0x3ac885,{'trunks':_0x53279e||[]});fs[_0xf7cd('0x5e')](_0xf7cd('0x5f'),_0x417355);return respondWithRpcPromise('Reload',_0xf7cd('0x63'),{'module':_0xf7cd('0x61')});}return null;})[_0xf7cd('0x17')](function(_0x538b49){if(_0x538b49){return _0x1931ba;}})[_0xf7cd('0x17')](respondWithResult(_0x521234,null))['catch'](handleError(_0x521234,null));};exports[_0xf7cd('0x29')]=function(_0x5ca254,_0x18e1e4,_0x4386dd){var _0x49cf49;return db['Trunk'][_0xf7cd('0x4d')]({'where':{'id':_0x5ca254[_0xf7cd('0x4c')]['id']}})['then'](handleEntityNotFound(_0x18e1e4,null))[_0xf7cd('0x17')](removeEntity(_0x18e1e4,null))['then'](function(){return db[_0xf7cd('0x47')][_0xf7cd('0x67')]({'raw':!![]});})[_0xf7cd('0x17')](function(_0x5cac5){var _0x1fb6d6=fs['readFileSync'](path[_0xf7cd('0x5c')](config[_0xf7cd('0x5a')],'server/files/templates/trunk.ejs'),_0xf7cd('0x5b'));var _0x5621bd=fs[_0xf7cd('0x59')](path[_0xf7cd('0x5c')](config[_0xf7cd('0x5a')],_0xf7cd('0x65')),_0xf7cd('0x5b'));var _0x219f89=ejs[_0xf7cd('0x5d')](_0x1fb6d6,{'trunks':_0x5cac5});var _0x35f3ce=ejs[_0xf7cd('0x5d')](_0x5621bd,{'trunks':_0x5cac5});fs[_0xf7cd('0x5e')](_0xf7cd('0x66'),_0x219f89);fs[_0xf7cd('0x5e')](_0xf7cd('0x5f'),_0x35f3ce);return respondWithRpcPromise('Reload','destroy',{'module':_0xf7cd('0x61')});})[_0xf7cd('0x21')](handleError(_0x18e1e4,null));};