6aa24b3e09bf611136961bf003e02b8101aa79c9
[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 _0x70b5=['limit','set','Content-Range','apply','reject','update','destroy','get','Trunks','UserProfileResource','end','stack','name','index','map','Trunk','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','options','count','includeAll','include','rows','show','params','rawAttributes','find','omit','createdAt','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','findAll','root','utf8','join','server/files/templates/registry.ejs','render','writeFileSync','registry','chan_sip.so','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','/etc/asterisk/sip_xcally_trunks.conf','Reload','/etc/asterisk/sip_xcally_registers.conf','html-pdf','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','client','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','status','json','offset'];(function(_0x57914d,_0x3a0591){var _0x4a558f=function(_0x8a39f9){while(--_0x8a39f9){_0x57914d['push'](_0x57914d['shift']());}};_0x4a558f(++_0x3a0591);}(_0x70b5,0x1f0));var _0x570b=function(_0x5491e5,_0x37a869){_0x5491e5=_0x5491e5-0x0;var _0x214eb5=_0x70b5[_0x5491e5];return _0x214eb5;};'use strict';var pdf=require(_0x570b('0x0'));var emlformat=require(_0x570b('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x570b('0x2'));var rp=require(_0x570b('0x3'));var moment=require('moment');var BPromise=require(_0x570b('0x4'));var Mustache=require(_0x570b('0x5'));var util=require(_0x570b('0x6'));var path=require(_0x570b('0x7'));var sox=require(_0x570b('0x8'));var csv=require(_0x570b('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x570b('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x570b('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x570b('0x9'));var querystring=require('querystring');var Papa=require(_0x570b('0xc'));var Redis=require(_0x570b('0xd'));var authService=require(_0x570b('0xe'));var qs=require(_0x570b('0xf'));var as=require(_0x570b('0x10'));var hardwareService=require(_0x570b('0x11'));var logger=require(_0x570b('0x12'))(_0x570b('0x13'));var utils=require(_0x570b('0x14'));var config=require(_0x570b('0x15'));var licenseUtil=require(_0x570b('0x16'));var db=require(_0x570b('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x570b('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x11fe61,_0x137894,_0x1c96cd,_0x1e631a){return new BPromise(function(_0x481903,_0x2213d3){var _0x52a920=_0x1e631a||client;return _0x52a920['request'](_0x11fe61,_0x1c96cd)[_0x570b('0x19')](function(_0x2c67e6){logger[_0x570b('0x1a')](_0x570b('0x1b'),_0x137894,_0x570b('0x1c'));logger[_0x570b('0x1d')](_0x570b('0x1e'),_0x137894,_0x570b('0x1c'),JSON[_0x570b('0x1f')](_0x2c67e6));if(_0x2c67e6[_0x570b('0x20')]){if(_0x2c67e6[_0x570b('0x20')][_0x570b('0x21')]===0x1f4){logger[_0x570b('0x20')](_0x570b('0x1b'),_0x137894,_0x2c67e6[_0x570b('0x20')][_0x570b('0x22')]);return _0x2213d3(_0x2c67e6[_0x570b('0x20')][_0x570b('0x22')]);}logger[_0x570b('0x20')](_0x570b('0x1b'),_0x137894,_0x2c67e6['error'][_0x570b('0x22')]);return _0x481903(_0x2c67e6[_0x570b('0x20')][_0x570b('0x22')]);}else{logger[_0x570b('0x1a')](_0x570b('0x1b'),_0x137894,_0x570b('0x1c'));_0x481903(_0x2c67e6['result'][_0x570b('0x22')]);}})[_0x570b('0x23')](function(_0x569a5f){logger['error'](_0x570b('0x1b'),_0x137894,_0x569a5f);_0x2213d3(_0x569a5f);});});}function respondWithStatusCode(_0x18ec52,_0x27c015){_0x27c015=_0x27c015||0xcc;return function(_0x5a3d1d){if(_0x5a3d1d){return _0x18ec52['sendStatus'](_0x27c015);}return _0x18ec52[_0x570b('0x24')](_0x27c015)['end']();};}function respondWithResult(_0x46e7d1,_0x12b2cd){_0x12b2cd=_0x12b2cd||0xc8;return function(_0x4f0aa3){if(_0x4f0aa3){return _0x46e7d1['status'](_0x12b2cd)[_0x570b('0x25')](_0x4f0aa3);}};}function respondWithFilteredResult(_0x313e23,_0xdbb64d){return function(_0x2e4257){if(_0x2e4257){var _0x49b6e3=_0x2e4257['count'],_0x24d01d=_0xdbb64d[_0x570b('0x26')],_0x32fbb0=_0xdbb64d[_0x570b('0x26')]+_0xdbb64d[_0x570b('0x27')],_0x45800d;if(_0x32fbb0>=_0x49b6e3){_0x32fbb0=_0x49b6e3;_0x45800d=0xc8;}else{_0x45800d=0xce;}_0x313e23[_0x570b('0x24')](_0x45800d);return _0x313e23[_0x570b('0x28')](_0x570b('0x29'),_0x24d01d+'-'+_0x32fbb0+'/'+_0x49b6e3)[_0x570b('0x25')](_0x2e4257);}return null;};}function patchUpdates(_0x4b3fe3){return function(_0x4f7a14){try{jsonpatch[_0x570b('0x2a')](_0x4f7a14,_0x4b3fe3,!![]);}catch(_0x418436){return BPromise[_0x570b('0x2b')](_0x418436);}return _0x4f7a14['save']();};}function saveUpdates(_0x2fea20,_0x2cedd5){return function(_0x19ab88){if(_0x19ab88){return _0x19ab88[_0x570b('0x2c')](_0x2fea20)[_0x570b('0x19')](function(_0x40b5d2){return _0x40b5d2;});}return null;};}function removeEntity(_0x1b24dc,_0x2b681d){return function(_0x5c6b71){if(_0x5c6b71){return _0x5c6b71[_0x570b('0x2d')]()['then'](function(){var _0x7b1df4=_0x5c6b71[_0x570b('0x2e')]({'plain':!![]});var _0x5cf0c9=_0x570b('0x2f');return db[_0x570b('0x30')][_0x570b('0x2d')]({'where':{'type':_0x5cf0c9,'resourceId':_0x7b1df4['id']}})[_0x570b('0x19')](function(){return _0x5c6b71;});})[_0x570b('0x19')](function(){_0x1b24dc[_0x570b('0x24')](0xcc)[_0x570b('0x31')]();});}};}function handleEntityNotFound(_0xa64b19,_0x17ab1d){return function(_0x404e94){if(!_0x404e94){_0xa64b19['sendStatus'](0x194);}return _0x404e94;};}function handleError(_0x4a3384,_0x417963){_0x417963=_0x417963||0x1f4;return function(_0x337d4e){logger[_0x570b('0x20')](_0x337d4e[_0x570b('0x32')]);if(_0x337d4e[_0x570b('0x33')]){delete _0x337d4e['name'];}_0x4a3384[_0x570b('0x24')](_0x417963)['send'](_0x337d4e);};}exports[_0x570b('0x34')]=function(_0x4b9928,_0x374cf4){var _0x34a6b9={},_0x47a88f={},_0x185a25={'count':0x0,'rows':[]};var _0x3a52a7=_[_0x570b('0x35')](db[_0x570b('0x36')]['rawAttributes'],function(_0x5e133d){return{'name':_0x5e133d[_0x570b('0x37')],'type':_0x5e133d[_0x570b('0x38')][_0x570b('0x39')]};});_0x47a88f[_0x570b('0x3a')]=_[_0x570b('0x35')](_0x3a52a7,_0x570b('0x33'));_0x47a88f[_0x570b('0x3b')]=_[_0x570b('0x3c')](_0x4b9928['query']);_0x47a88f[_0x570b('0x3d')]=_[_0x570b('0x3e')](_0x47a88f[_0x570b('0x3a')],_0x47a88f[_0x570b('0x3b')]);_0x34a6b9[_0x570b('0x3f')]=_[_0x570b('0x3e')](_0x47a88f[_0x570b('0x3a')],qs[_0x570b('0x40')](_0x4b9928[_0x570b('0x3b')][_0x570b('0x40')]));_0x34a6b9[_0x570b('0x3f')]=_0x34a6b9[_0x570b('0x3f')][_0x570b('0x41')]?_0x34a6b9[_0x570b('0x3f')]:_0x47a88f[_0x570b('0x3a')];if(!_0x4b9928[_0x570b('0x3b')][_0x570b('0x42')]('nolimit')){_0x34a6b9[_0x570b('0x27')]=qs[_0x570b('0x27')](_0x4b9928[_0x570b('0x3b')]['limit']);_0x34a6b9[_0x570b('0x26')]=qs[_0x570b('0x26')](_0x4b9928['query']['offset']);}_0x34a6b9[_0x570b('0x43')]=qs[_0x570b('0x44')](_0x4b9928[_0x570b('0x3b')][_0x570b('0x44')]);_0x34a6b9['where']=qs['filters'](_['pick'](_0x4b9928['query'],_0x47a88f[_0x570b('0x3d')]),_0x3a52a7);if(_0x4b9928[_0x570b('0x3b')]['filter']){_0x34a6b9[_0x570b('0x45')]=_[_0x570b('0x46')](_0x34a6b9[_0x570b('0x45')],{'$or':_[_0x570b('0x35')](_0x3a52a7,function(_0x1735b7){if(_0x1735b7[_0x570b('0x38')]!==_0x570b('0x47')){var _0x5e41dc={};_0x5e41dc[_0x1735b7[_0x570b('0x33')]]={'$like':'%'+_0x4b9928['query'][_0x570b('0x48')]+'%'};return _0x5e41dc;}})});}_0x34a6b9=_['merge']({},_0x34a6b9,_0x4b9928[_0x570b('0x49')]);var _0x57ca66={'where':_0x34a6b9[_0x570b('0x45')]};return db['Trunk']['count'](_0x57ca66)[_0x570b('0x19')](function(_0x230593){_0x185a25[_0x570b('0x4a')]=_0x230593;if(_0x4b9928['query'][_0x570b('0x4b')]){_0x34a6b9[_0x570b('0x4c')]=[{'all':!![]}];}return db['Trunk']['findAll'](_0x34a6b9);})['then'](function(_0x5d769e){_0x185a25[_0x570b('0x4d')]=_0x5d769e;return _0x185a25;})[_0x570b('0x19')](respondWithFilteredResult(_0x374cf4,_0x34a6b9))[_0x570b('0x23')](handleError(_0x374cf4,null));};exports[_0x570b('0x4e')]=function(_0x193906,_0x3afa1d){var _0x5cf20c={'raw':![],'where':{'id':_0x193906[_0x570b('0x4f')]['id']}},_0x3d3257={};_0x3d3257[_0x570b('0x3a')]=_[_0x570b('0x3c')](db['Trunk'][_0x570b('0x50')]);_0x3d3257[_0x570b('0x3b')]=_[_0x570b('0x3c')](_0x193906[_0x570b('0x3b')]);_0x3d3257[_0x570b('0x3d')]=_[_0x570b('0x3e')](_0x3d3257[_0x570b('0x3a')],_0x3d3257[_0x570b('0x3b')]);_0x5cf20c[_0x570b('0x3f')]=_[_0x570b('0x3e')](_0x3d3257[_0x570b('0x3a')],qs[_0x570b('0x40')](_0x193906[_0x570b('0x3b')]['fields']));_0x5cf20c[_0x570b('0x3f')]=_0x5cf20c[_0x570b('0x3f')]['length']?_0x5cf20c[_0x570b('0x3f')]:_0x3d3257[_0x570b('0x3a')];if(_0x193906['query'][_0x570b('0x4b')]){_0x5cf20c['include']=[{'all':!![]}];}_0x5cf20c=_[_0x570b('0x46')]({},_0x5cf20c,_0x193906[_0x570b('0x49')]);return db['Trunk'][_0x570b('0x51')](_0x5cf20c)[_0x570b('0x19')](handleEntityNotFound(_0x3afa1d,null))[_0x570b('0x19')](respondWithResult(_0x3afa1d,null))[_0x570b('0x23')](handleError(_0x3afa1d,null));};exports['clone']=function(_0x12a278,_0x468ac4){var _0x260a79={'where':{'id':_0x12a278[_0x570b('0x4f')]['id']}},_0x12c130={};_0x12c130[_0x570b('0x3a')]=_[_0x570b('0x3c')](db[_0x570b('0x36')][_0x570b('0x50')]);_0x260a79['attributes']=_[_0x570b('0x3e')](_0x12c130[_0x570b('0x3a')],qs[_0x570b('0x40')](_0x12a278[_0x570b('0x3b')]['fields']));_0x260a79['attributes']=_0x260a79['attributes'][_0x570b('0x41')]?_0x260a79[_0x570b('0x3f')]:_0x12c130[_0x570b('0x3a')];if(_0x12a278[_0x570b('0x3b')][_0x570b('0x4b')]){_0x260a79[_0x570b('0x4c')]=[{'all':!![]}];}_0x260a79=_['merge']({},_0x260a79,_0x12a278[_0x570b('0x49')]);return db[_0x570b('0x36')][_0x570b('0x51')](_0x260a79)[_0x570b('0x19')](handleEntityNotFound(_0x468ac4,null))['then'](function(_0x2f7b65){if(_0x2f7b65){var _0x43230a=_0x2f7b65[_0x570b('0x2e')]({'plain':!![]});_0x43230a=qs[_0x570b('0x52')](_0x43230a,['id',_0x570b('0x53'),_0x570b('0x54')]);_0x12a278[_0x570b('0x55')]=_[_0x570b('0x52')](_0x12a278[_0x570b('0x55')],['id',_0x570b('0x53'),_0x570b('0x54')]);return db['Trunk'][_0x570b('0x56')](_['merge'](_0x43230a,_0x12a278['body']),{'include':_0x12a278[_0x570b('0x3b')][_0x570b('0x4b')]?[{'all':!![]}]:undefined})['then'](function(_0x525adf){var _0x3d9d92=_0x12a278[_0x570b('0x57')][_0x570b('0x2e')]({'plain':!![]});if(!_0x3d9d92)throw new Error(_0x570b('0x58'));if(_0x3d9d92[_0x570b('0x59')]===_0x570b('0x57')){var _0x2be964=_0x525adf['get']({'plain':!![]});var _0x559315=_0x570b('0x2f');return db[_0x570b('0x5a')][_0x570b('0x51')]({'where':{'name':_0x559315,'userProfileId':_0x3d9d92[_0x570b('0x5b')]},'raw':!![]})[_0x570b('0x19')](function(_0x4bde5a){if(_0x4bde5a&&_0x4bde5a[_0x570b('0x5c')]===0x0){return db[_0x570b('0x30')][_0x570b('0x56')]({'name':_0x2be964[_0x570b('0x33')],'resourceId':_0x2be964['id'],'type':_0x4bde5a[_0x570b('0x33')],'sectionId':_0x4bde5a['id']},{})[_0x570b('0x19')](function(){return _0x525adf;});}else{return _0x525adf;}})[_0x570b('0x23')](function(_0x1033d3){logger[_0x570b('0x20')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1033d3);throw _0x1033d3;});}return _0x525adf;});}})['then'](respondWithResult(_0x468ac4,0xc9))[_0x570b('0x23')](handleError(_0x468ac4,null));};exports[_0x570b('0x56')]=function(_0x558472,_0x3a47b7,_0x3efbc4){var _0x466b6d;return db['Trunk'][_0x570b('0x56')](_0x558472[_0x570b('0x55')],{'raw':!![]})[_0x570b('0x19')](function(_0x174bf1){_0x466b6d=_0x174bf1;return db[_0x570b('0x36')][_0x570b('0x5d')]({'raw':!![]});})[_0x570b('0x19')](function(_0x5a82e4){var _0x3ce146=fs['readFileSync'](path['join'](config[_0x570b('0x5e')],'server/files/templates/trunk.ejs'),_0x570b('0x5f'));var _0x335276=fs['readFileSync'](path[_0x570b('0x60')](config[_0x570b('0x5e')],_0x570b('0x61')),_0x570b('0x5f'));var _0x408371=ejs[_0x570b('0x62')](_0x3ce146,{'trunks':_0x5a82e4||[]});fs[_0x570b('0x63')]('/etc/asterisk/sip_xcally_trunks.conf',_0x408371);if(_0x466b6d[_0x570b('0x64')]){var _0xfd1b03=ejs[_0x570b('0x62')](_0x335276,{'trunks':_0x5a82e4||[]});fs[_0x570b('0x63')]('/etc/asterisk/sip_xcally_registers.conf',_0xfd1b03);}})[_0x570b('0x19')](function(){return respondWithRpcPromise('Reload',_0x570b('0x56'),{'module':_0x570b('0x65')});})[_0x570b('0x19')](function(){var _0x15b6f4=_0x558472[_0x570b('0x57')]['get']({'plain':!![]});if(!_0x15b6f4)throw new Error(_0x570b('0x58'));if(_0x15b6f4[_0x570b('0x59')]==='user'){var _0x203e11=_0x466b6d[_0x570b('0x2e')]({'plain':!![]});return db['UserProfileSection'][_0x570b('0x51')]({'where':{'name':_0x570b('0x2f'),'userProfileId':_0x15b6f4['userProfileId']},'raw':!![]})[_0x570b('0x19')](function(_0x108f7c){if(_0x108f7c&&_0x108f7c[_0x570b('0x5c')]===0x0){return db[_0x570b('0x30')][_0x570b('0x56')]({'name':_0x203e11[_0x570b('0x33')],'resourceId':_0x203e11['id'],'type':_0x108f7c[_0x570b('0x33')],'sectionId':_0x108f7c['id']},{})[_0x570b('0x19')](function(){return _0x466b6d;});}else{return _0x466b6d;}})[_0x570b('0x23')](function(_0x485a0a){logger[_0x570b('0x20')](_0x570b('0x66'),_0x485a0a);throw _0x485a0a;});}return _0x466b6d;})[_0x570b('0x19')](respondWithResult(_0x3a47b7,0xc9))[_0x570b('0x23')](handleError(_0x3a47b7,null));};exports['update']=function(_0x5b44bd,_0x442403,_0x161295){var _0x3d1a6b;return db[_0x570b('0x36')]['find']({'where':{'id':_0x5b44bd[_0x570b('0x4f')]['id']}})['then'](handleEntityNotFound(_0x442403,null))[_0x570b('0x19')](saveUpdates(_0x5b44bd[_0x570b('0x55')],null))[_0x570b('0x19')](function(_0x3ffd2e){if(_0x3ffd2e){_0x3d1a6b=_0x3ffd2e;return db[_0x570b('0x36')]['findAll']({'raw':!![]});}})[_0x570b('0x19')](function(_0x24f97d){if(_0x24f97d){var _0x14b43b=fs[_0x570b('0x67')](path[_0x570b('0x60')](config[_0x570b('0x5e')],'server/files/templates/trunk.ejs'),_0x570b('0x5f'));var _0x42d6f3=fs[_0x570b('0x67')](path[_0x570b('0x60')](config['root'],_0x570b('0x61')),_0x570b('0x5f'));var _0x278e15=ejs[_0x570b('0x62')](_0x14b43b,{'trunks':_0x24f97d||[]});fs[_0x570b('0x63')](_0x570b('0x68'),_0x278e15);var _0x327510=ejs[_0x570b('0x62')](_0x42d6f3,{'trunks':_0x24f97d||[]});fs[_0x570b('0x63')]('/etc/asterisk/sip_xcally_registers.conf',_0x327510);return respondWithRpcPromise(_0x570b('0x69'),_0x570b('0x2c'),{'module':'chan_sip.so'});}return null;})[_0x570b('0x19')](function(_0x4dc735){if(_0x4dc735){return _0x3d1a6b;}})[_0x570b('0x19')](respondWithResult(_0x442403,null))['catch'](handleError(_0x442403,null));};exports['destroy']=function(_0x2011e9,_0x4c1f7d,_0x309d85){var _0x12f9e8;return db['Trunk'][_0x570b('0x51')]({'where':{'id':_0x2011e9[_0x570b('0x4f')]['id']}})[_0x570b('0x19')](handleEntityNotFound(_0x4c1f7d,null))[_0x570b('0x19')](removeEntity(_0x4c1f7d,null))[_0x570b('0x19')](function(){return db[_0x570b('0x36')][_0x570b('0x5d')]({'raw':!![]});})[_0x570b('0x19')](function(_0x5ddd62){var _0x2e8f8c=fs[_0x570b('0x67')](path[_0x570b('0x60')](config[_0x570b('0x5e')],'server/files/templates/trunk.ejs'),_0x570b('0x5f'));var _0x308284=fs[_0x570b('0x67')](path['join'](config['root'],_0x570b('0x61')),'utf8');var _0x4be5ef=ejs['render'](_0x2e8f8c,{'trunks':_0x5ddd62});var _0x4a5d9a=ejs['render'](_0x308284,{'trunks':_0x5ddd62});fs['writeFileSync'](_0x570b('0x68'),_0x4be5ef);fs[_0x570b('0x63')](_0x570b('0x6a'),_0x4a5d9a);return respondWithRpcPromise(_0x570b('0x69'),'destroy',{'module':_0x570b('0x65')});})[_0x570b('0x23')](handleError(_0x4c1f7d,null));};