15ed62d8bab967745069da6eda4422e7f1673faf
[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 _0x32b3=['../../mysqldb','client','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','update','destroy','Trunks','UserProfileResource','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','Trunk','findAll','rows','show','params','keys','length','includeAll','include','find','clone','get','omit','createdAt','updatedAt','body','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','utf8','writeFileSync','registry','render','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','/etc/asterisk/sip_xcally_trunks.conf','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x439bf5,_0x4aa8bf){var _0x452d97=function(_0x5152ad){while(--_0x5152ad){_0x439bf5['push'](_0x439bf5['shift']());}};_0x452d97(++_0x4aa8bf);}(_0x32b3,0x138));var _0x332b=function(_0x3e72da,_0x7909e3){_0x3e72da=_0x3e72da-0x0;var _0x20a27d=_0x32b3[_0x3e72da];return _0x20a27d;};'use strict';var pdf=require(_0x332b('0x0'));var emlformat=require(_0x332b('0x1'));var rimraf=require(_0x332b('0x2'));var zipdir=require(_0x332b('0x3'));var jsonpatch=require(_0x332b('0x4'));var rp=require(_0x332b('0x5'));var moment=require(_0x332b('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x332b('0x7'));var path=require(_0x332b('0x8'));var sox=require(_0x332b('0x9'));var csv=require(_0x332b('0xa'));var ejs=require(_0x332b('0xb'));var fs=require('fs');var _=require(_0x332b('0xc'));var squel=require(_0x332b('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x332b('0xe'));var toCsv=require(_0x332b('0xa'));var querystring=require('querystring');var Papa=require(_0x332b('0xf'));var Redis=require(_0x332b('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x332b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x332b('0x12'));var logger=require(_0x332b('0x13'))(_0x332b('0x14'));var utils=require(_0x332b('0x15'));var config=require(_0x332b('0x16'));var licenseUtil=require(_0x332b('0x17'));var db=require(_0x332b('0x18'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x332b('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0xe8ccb5,_0x25b066,_0x31a750,_0x1c08eb){return new BPromise(function(_0x448da4,_0x311920){var _0x5b91e9=_0x1c08eb||client;return _0x5b91e9[_0x332b('0x1a')](_0xe8ccb5,_0x31a750)[_0x332b('0x1b')](function(_0x558201){logger[_0x332b('0x1c')](_0x332b('0x1d'),_0x25b066,_0x332b('0x1e'));logger[_0x332b('0x1f')](_0x332b('0x20'),_0x25b066,_0x332b('0x1e'),JSON[_0x332b('0x21')](_0x558201));if(_0x558201[_0x332b('0x22')]){if(_0x558201[_0x332b('0x22')][_0x332b('0x23')]===0x1f4){logger[_0x332b('0x22')](_0x332b('0x1d'),_0x25b066,_0x558201['error'][_0x332b('0x24')]);return _0x311920(_0x558201[_0x332b('0x22')]['message']);}logger[_0x332b('0x22')](_0x332b('0x1d'),_0x25b066,_0x558201[_0x332b('0x22')]['message']);return _0x448da4(_0x558201[_0x332b('0x22')][_0x332b('0x24')]);}else{logger['info'](_0x332b('0x1d'),_0x25b066,_0x332b('0x1e'));_0x448da4(_0x558201['result'][_0x332b('0x24')]);}})[_0x332b('0x25')](function(_0x5162e9){logger[_0x332b('0x22')](_0x332b('0x1d'),_0x25b066,_0x5162e9);_0x311920(_0x5162e9);});});}function respondWithStatusCode(_0x408265,_0x3cd9b8){_0x3cd9b8=_0x3cd9b8||0xcc;return function(_0x6fa5b6){if(_0x6fa5b6){return _0x408265[_0x332b('0x26')](_0x3cd9b8);}return _0x408265[_0x332b('0x27')](_0x3cd9b8)[_0x332b('0x28')]();};}function respondWithResult(_0x36aaa4,_0x4838df){_0x4838df=_0x4838df||0xc8;return function(_0x1ae297){if(_0x1ae297){return _0x36aaa4[_0x332b('0x27')](_0x4838df)[_0x332b('0x29')](_0x1ae297);}};}function respondWithFilteredResult(_0x157aa7,_0x56595c){return function(_0xe8f848){if(_0xe8f848){var _0x557573=_0xe8f848[_0x332b('0x2a')],_0x2dc433=_0x56595c[_0x332b('0x2b')],_0x29d679=_0x56595c[_0x332b('0x2b')]+_0x56595c[_0x332b('0x2c')],_0x37a5d8;if(_0x29d679>=_0x557573){_0x29d679=_0x557573;_0x37a5d8=0xc8;}else{_0x37a5d8=0xce;}_0x157aa7['status'](_0x37a5d8);return _0x157aa7[_0x332b('0x2d')](_0x332b('0x2e'),_0x2dc433+'-'+_0x29d679+'/'+_0x557573)[_0x332b('0x29')](_0xe8f848);}return null;};}function patchUpdates(_0x49c4f3){return function(_0x28b7b5){try{jsonpatch[_0x332b('0x2f')](_0x28b7b5,_0x49c4f3,!![]);}catch(_0x1d02c2){return BPromise['reject'](_0x1d02c2);}return _0x28b7b5['save']();};}function saveUpdates(_0x4a691a,_0x5c6311){return function(_0x5b1b03){if(_0x5b1b03){return _0x5b1b03[_0x332b('0x30')](_0x4a691a)[_0x332b('0x1b')](function(_0x1c44b8){return _0x1c44b8;});}return null;};}function removeEntity(_0x375274,_0x425ffb){return function(_0x1f87df){if(_0x1f87df){return _0x1f87df[_0x332b('0x31')]()[_0x332b('0x1b')](function(){var _0x2b13cb=_0x1f87df['get']({'plain':!![]});var _0x322638=_0x332b('0x32');return db[_0x332b('0x33')][_0x332b('0x31')]({'where':{'type':_0x322638,'resourceId':_0x2b13cb['id']}})['then'](function(){return _0x1f87df;});})[_0x332b('0x1b')](function(){_0x375274[_0x332b('0x27')](0xcc)[_0x332b('0x28')]();});}};}function handleEntityNotFound(_0x544500,_0x462b2f){return function(_0x472394){if(!_0x472394){_0x544500[_0x332b('0x26')](0x194);}return _0x472394;};}function handleError(_0x315142,_0x2b0bb2){_0x2b0bb2=_0x2b0bb2||0x1f4;return function(_0x40195c){logger[_0x332b('0x22')](_0x40195c['stack']);if(_0x40195c[_0x332b('0x34')]){delete _0x40195c[_0x332b('0x34')];}_0x315142[_0x332b('0x27')](_0x2b0bb2)[_0x332b('0x35')](_0x40195c);};}exports['index']=function(_0x4786d5,_0x262ebf){var _0x583143={},_0x2a6c94={},_0x3514ee={'count':0x0,'rows':[]};var _0x2a1a83=_[_0x332b('0x36')](db['Trunk'][_0x332b('0x37')],function(_0x1ccb43){return{'name':_0x1ccb43[_0x332b('0x38')],'type':_0x1ccb43[_0x332b('0x39')][_0x332b('0x3a')]};});_0x2a6c94[_0x332b('0x3b')]=_[_0x332b('0x36')](_0x2a1a83,_0x332b('0x34'));_0x2a6c94[_0x332b('0x3c')]=_['keys'](_0x4786d5[_0x332b('0x3c')]);_0x2a6c94[_0x332b('0x3d')]=_[_0x332b('0x3e')](_0x2a6c94['model'],_0x2a6c94[_0x332b('0x3c')]);_0x583143[_0x332b('0x3f')]=_['intersection'](_0x2a6c94['model'],qs[_0x332b('0x40')](_0x4786d5[_0x332b('0x3c')][_0x332b('0x40')]));_0x583143[_0x332b('0x3f')]=_0x583143[_0x332b('0x3f')]['length']?_0x583143[_0x332b('0x3f')]:_0x2a6c94[_0x332b('0x3b')];if(!_0x4786d5[_0x332b('0x3c')][_0x332b('0x41')](_0x332b('0x42'))){_0x583143[_0x332b('0x2c')]=qs[_0x332b('0x2c')](_0x4786d5[_0x332b('0x3c')]['limit']);_0x583143[_0x332b('0x2b')]=qs['offset'](_0x4786d5[_0x332b('0x3c')][_0x332b('0x2b')]);}_0x583143[_0x332b('0x43')]=qs[_0x332b('0x44')](_0x4786d5['query']['sort']);_0x583143[_0x332b('0x45')]=qs[_0x332b('0x3d')](_[_0x332b('0x46')](_0x4786d5[_0x332b('0x3c')],_0x2a6c94[_0x332b('0x3d')]),_0x2a1a83);if(_0x4786d5['query'][_0x332b('0x47')]){_0x583143[_0x332b('0x45')]=_['merge'](_0x583143[_0x332b('0x45')],{'$or':_[_0x332b('0x36')](_0x2a1a83,function(_0x312a1e){if(_0x312a1e[_0x332b('0x39')]!==_0x332b('0x48')){var _0x12285d={};_0x12285d[_0x312a1e[_0x332b('0x34')]]={'$like':'%'+_0x4786d5[_0x332b('0x3c')][_0x332b('0x47')]+'%'};return _0x12285d;}})});}_0x583143=_[_0x332b('0x49')]({},_0x583143,_0x4786d5[_0x332b('0x4a')]);var _0x10a8a7={'where':_0x583143['where']};return db['Trunk'][_0x332b('0x2a')](_0x10a8a7)[_0x332b('0x1b')](function(_0x57c980){_0x3514ee[_0x332b('0x2a')]=_0x57c980;if(_0x4786d5[_0x332b('0x3c')]['includeAll']){_0x583143['include']=[{'all':!![]}];}return db[_0x332b('0x4b')][_0x332b('0x4c')](_0x583143);})[_0x332b('0x1b')](function(_0x21328a){_0x3514ee[_0x332b('0x4d')]=_0x21328a;return _0x3514ee;})['then'](respondWithFilteredResult(_0x262ebf,_0x583143))[_0x332b('0x25')](handleError(_0x262ebf,null));};exports[_0x332b('0x4e')]=function(_0x4cb0bc,_0x168828){var _0x398f59={'raw':![],'where':{'id':_0x4cb0bc[_0x332b('0x4f')]['id']}},_0x3ca711={};_0x3ca711[_0x332b('0x3b')]=_[_0x332b('0x50')](db[_0x332b('0x4b')][_0x332b('0x37')]);_0x3ca711[_0x332b('0x3c')]=_['keys'](_0x4cb0bc[_0x332b('0x3c')]);_0x3ca711[_0x332b('0x3d')]=_[_0x332b('0x3e')](_0x3ca711['model'],_0x3ca711[_0x332b('0x3c')]);_0x398f59[_0x332b('0x3f')]=_['intersection'](_0x3ca711['model'],qs[_0x332b('0x40')](_0x4cb0bc['query'][_0x332b('0x40')]));_0x398f59[_0x332b('0x3f')]=_0x398f59[_0x332b('0x3f')][_0x332b('0x51')]?_0x398f59[_0x332b('0x3f')]:_0x3ca711[_0x332b('0x3b')];if(_0x4cb0bc[_0x332b('0x3c')][_0x332b('0x52')]){_0x398f59[_0x332b('0x53')]=[{'all':!![]}];}_0x398f59=_['merge']({},_0x398f59,_0x4cb0bc[_0x332b('0x4a')]);return db[_0x332b('0x4b')][_0x332b('0x54')](_0x398f59)['then'](handleEntityNotFound(_0x168828,null))[_0x332b('0x1b')](respondWithResult(_0x168828,null))[_0x332b('0x25')](handleError(_0x168828,null));};exports[_0x332b('0x55')]=function(_0x9e861e,_0xb77e6d){var _0x31d5a2={'where':{'id':_0x9e861e[_0x332b('0x4f')]['id']}},_0x2a8770={};_0x2a8770['model']=_['keys'](db[_0x332b('0x4b')][_0x332b('0x37')]);_0x31d5a2[_0x332b('0x3f')]=_[_0x332b('0x3e')](_0x2a8770[_0x332b('0x3b')],qs[_0x332b('0x40')](_0x9e861e[_0x332b('0x3c')]['fields']));_0x31d5a2[_0x332b('0x3f')]=_0x31d5a2[_0x332b('0x3f')]['length']?_0x31d5a2['attributes']:_0x2a8770[_0x332b('0x3b')];if(_0x9e861e[_0x332b('0x3c')]['includeAll']){_0x31d5a2[_0x332b('0x53')]=[{'all':!![]}];}_0x31d5a2=_['merge']({},_0x31d5a2,_0x9e861e[_0x332b('0x4a')]);return db[_0x332b('0x4b')][_0x332b('0x54')](_0x31d5a2)['then'](handleEntityNotFound(_0xb77e6d,null))['then'](function(_0x525844){if(_0x525844){var _0x201719=_0x525844[_0x332b('0x56')]({'plain':!![]});_0x201719=qs[_0x332b('0x57')](_0x201719,['id',_0x332b('0x58'),_0x332b('0x59')]);_0x9e861e[_0x332b('0x5a')]=_['omit'](_0x9e861e[_0x332b('0x5a')],['id','createdAt',_0x332b('0x59')]);return db[_0x332b('0x4b')][_0x332b('0x5b')](_['merge'](_0x201719,_0x9e861e[_0x332b('0x5a')]),{'include':_0x9e861e['query'][_0x332b('0x52')]?[{'all':!![]}]:undefined})[_0x332b('0x1b')](function(_0x45b3df){var _0x5a7908=_0x9e861e['user'][_0x332b('0x56')]({'plain':!![]});if(!_0x5a7908)throw new Error(_0x332b('0x5c'));if(_0x5a7908[_0x332b('0x5d')]===_0x332b('0x5e')){var _0x19898a=_0x45b3df[_0x332b('0x56')]({'plain':!![]});var _0x18e297=_0x332b('0x32');return db[_0x332b('0x5f')]['find']({'where':{'name':_0x18e297,'userProfileId':_0x5a7908[_0x332b('0x60')]},'raw':!![]})[_0x332b('0x1b')](function(_0x3893fb){if(_0x3893fb&&_0x3893fb[_0x332b('0x61')]===0x0){return db[_0x332b('0x33')][_0x332b('0x5b')]({'name':_0x19898a['name'],'resourceId':_0x19898a['id'],'type':_0x3893fb[_0x332b('0x34')],'sectionId':_0x3893fb['id']},{})[_0x332b('0x1b')](function(){return _0x45b3df;});}else{return _0x45b3df;}})[_0x332b('0x25')](function(_0x374fec){logger[_0x332b('0x22')](_0x332b('0x62'),_0x374fec);throw _0x374fec;});}return _0x45b3df;});}})[_0x332b('0x1b')](respondWithResult(_0xb77e6d,0xc9))[_0x332b('0x25')](handleError(_0xb77e6d,null));};exports[_0x332b('0x5b')]=function(_0x7fc30d,_0x182349,_0x36fc08){var _0x120e3a;return db[_0x332b('0x4b')][_0x332b('0x5b')](_0x7fc30d[_0x332b('0x5a')],{'raw':!![]})[_0x332b('0x1b')](function(_0x554a86){_0x120e3a=_0x554a86;return db[_0x332b('0x4b')][_0x332b('0x4c')]({'raw':!![]});})[_0x332b('0x1b')](function(_0x8788b2){var _0xbc6253=fs[_0x332b('0x63')](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x66')),'utf8');var _0x303ebf=fs[_0x332b('0x63')](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x67')),_0x332b('0x68'));var _0x5212c1=ejs['render'](_0xbc6253,{'trunks':_0x8788b2||[]});fs[_0x332b('0x69')]('/etc/asterisk/sip_xcally_trunks.conf',_0x5212c1);if(_0x120e3a[_0x332b('0x6a')]){var _0x376941=ejs[_0x332b('0x6b')](_0x303ebf,{'trunks':_0x8788b2||[]});fs[_0x332b('0x69')](_0x332b('0x6c'),_0x376941);}})['then'](function(){return respondWithRpcPromise('Reload',_0x332b('0x5b'),{'module':'chan_sip.so'});})['then'](function(){var _0x54f553=_0x7fc30d['user'][_0x332b('0x56')]({'plain':!![]});if(!_0x54f553)throw new Error(_0x332b('0x5c'));if(_0x54f553[_0x332b('0x5d')]==='user'){var _0x4caa39=_0x120e3a[_0x332b('0x56')]({'plain':!![]});return db[_0x332b('0x5f')][_0x332b('0x54')]({'where':{'name':_0x332b('0x32'),'userProfileId':_0x54f553['userProfileId']},'raw':!![]})[_0x332b('0x1b')](function(_0x5d6e00){if(_0x5d6e00&&_0x5d6e00[_0x332b('0x61')]===0x0){return db[_0x332b('0x33')][_0x332b('0x5b')]({'name':_0x4caa39['name'],'resourceId':_0x4caa39['id'],'type':_0x5d6e00['name'],'sectionId':_0x5d6e00['id']},{})[_0x332b('0x1b')](function(){return _0x120e3a;});}else{return _0x120e3a;}})['catch'](function(_0x5312d5){logger[_0x332b('0x22')](_0x332b('0x62'),_0x5312d5);throw _0x5312d5;});}return _0x120e3a;})[_0x332b('0x1b')](respondWithResult(_0x182349,0xc9))['catch'](handleError(_0x182349,null));};exports[_0x332b('0x30')]=function(_0xe5f69e,_0x126fd3,_0x3d74f0){var _0x85ac78;return db[_0x332b('0x4b')][_0x332b('0x54')]({'where':{'id':_0xe5f69e[_0x332b('0x4f')]['id']}})[_0x332b('0x1b')](handleEntityNotFound(_0x126fd3,null))[_0x332b('0x1b')](saveUpdates(_0xe5f69e['body'],null))[_0x332b('0x1b')](function(_0x207f9c){if(_0x207f9c){_0x85ac78=_0x207f9c;return db[_0x332b('0x4b')]['findAll']({'raw':!![]});}})[_0x332b('0x1b')](function(_0x1494e4){if(_0x1494e4){var _0x330b0f=fs[_0x332b('0x63')](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x66')),_0x332b('0x68'));var _0x2f4c61=fs[_0x332b('0x63')](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x67')),_0x332b('0x68'));var _0x1a5713=ejs['render'](_0x330b0f,{'trunks':_0x1494e4||[]});fs[_0x332b('0x69')]('/etc/asterisk/sip_xcally_trunks.conf',_0x1a5713);var _0x1c7ed6=ejs[_0x332b('0x6b')](_0x2f4c61,{'trunks':_0x1494e4||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x1c7ed6);return respondWithRpcPromise(_0x332b('0x6d'),'update',{'module':_0x332b('0x6e')});}return null;})[_0x332b('0x1b')](function(_0x28981e){if(_0x28981e){return _0x85ac78;}})[_0x332b('0x1b')](respondWithResult(_0x126fd3,null))[_0x332b('0x25')](handleError(_0x126fd3,null));};exports['destroy']=function(_0x4157d9,_0x1e747e,_0x52e63e){var _0x539dd7;return db[_0x332b('0x4b')][_0x332b('0x54')]({'where':{'id':_0x4157d9[_0x332b('0x4f')]['id']}})[_0x332b('0x1b')](handleEntityNotFound(_0x1e747e,null))[_0x332b('0x1b')](removeEntity(_0x1e747e,null))[_0x332b('0x1b')](function(){return db['Trunk'][_0x332b('0x4c')]({'raw':!![]});})['then'](function(_0x57dc28){var _0x3d2512=fs[_0x332b('0x63')](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x66')),_0x332b('0x68'));var _0x282925=fs['readFileSync'](path[_0x332b('0x64')](config[_0x332b('0x65')],_0x332b('0x67')),_0x332b('0x68'));var _0xfd4a42=ejs[_0x332b('0x6b')](_0x3d2512,{'trunks':_0x57dc28});var _0x3f9136=ejs[_0x332b('0x6b')](_0x282925,{'trunks':_0x57dc28});fs['writeFileSync'](_0x332b('0x6f'),_0xfd4a42);fs['writeFileSync'](_0x332b('0x6c'),_0x3f9136);return respondWithRpcPromise('Reload','destroy',{'module':_0x332b('0x6e')});})['catch'](handleError(_0x1e747e,null));};