Built motion from commit (unavailable).|2.3.4
[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 _0xa5ef=['index','rawAttributes','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','type','key','field','options','count','includeAll','include','Trunk','rows','show','params','length','find','clone','get','omit','createdAt','updatedAt','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Trunks','UserProfileSection','autoAssociation','create','server/files/templates/trunk.ejs','readFileSync','join','root','server/files/templates/registry.ejs','utf8','render','writeFileSync','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','/etc/asterisk/sip_xcally_trunks.conf','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','request','info','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','name'];(function(_0x43dd40,_0x431145){var _0x200de4=function(_0x2d485b){while(--_0x2d485b){_0x43dd40['push'](_0x43dd40['shift']());}};_0x200de4(++_0x431145);}(_0xa5ef,0x120));var _0xfa5e=function(_0x4ead23,_0x537fec){_0x4ead23=_0x4ead23-0x0;var _0x36bcae=_0xa5ef[_0x4ead23];return _0x36bcae;};'use strict';var pdf=require(_0xfa5e('0x0'));var emlformat=require(_0xfa5e('0x1'));var rimraf=require(_0xfa5e('0x2'));var zipdir=require(_0xfa5e('0x3'));var jsonpatch=require(_0xfa5e('0x4'));var rp=require('request-promise');var moment=require(_0xfa5e('0x5'));var BPromise=require(_0xfa5e('0x6'));var Mustache=require(_0xfa5e('0x7'));var util=require(_0xfa5e('0x8'));var path=require('path');var sox=require(_0xfa5e('0x9'));var csv=require(_0xfa5e('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xfa5e('0xb'));var squel=require(_0xfa5e('0xc'));var crypto=require(_0xfa5e('0xd'));var jsforce=require(_0xfa5e('0xe'));var deskjs=require(_0xfa5e('0xf'));var toCsv=require(_0xfa5e('0xa'));var querystring=require(_0xfa5e('0x10'));var Papa=require(_0xfa5e('0x11'));var authService=require(_0xfa5e('0x12'));var hardwareService=require(_0xfa5e('0x13'));var Redis=require(_0xfa5e('0x14'));var qs=require(_0xfa5e('0x15'));var logger=require(_0xfa5e('0x16'))(_0xfa5e('0x17'));var utils=require(_0xfa5e('0x18'));var config=require(_0xfa5e('0x19'));var db=require(_0xfa5e('0x1a'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xfa5e('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0x447478,_0x51b77c,_0x124715,_0x15e6bb){return new BPromise(function(_0x3e4fbe,_0x315cf2){var _0x49e0df=_0x15e6bb||client;return _0x49e0df[_0xfa5e('0x1c')](_0x447478,_0x124715)['then'](function(_0x201c8c){logger[_0xfa5e('0x1d')](_0xfa5e('0x1e'),_0x51b77c,_0xfa5e('0x1f'));logger['debug'](_0xfa5e('0x20'),_0x51b77c,_0xfa5e('0x1f'),JSON[_0xfa5e('0x21')](_0x201c8c));if(_0x201c8c['error']){if(_0x201c8c[_0xfa5e('0x22')][_0xfa5e('0x23')]===0x1f4){logger[_0xfa5e('0x22')](_0xfa5e('0x1e'),_0x51b77c,_0x201c8c[_0xfa5e('0x22')][_0xfa5e('0x24')]);return _0x315cf2(_0x201c8c[_0xfa5e('0x22')][_0xfa5e('0x24')]);}logger[_0xfa5e('0x22')](_0xfa5e('0x1e'),_0x51b77c,_0x201c8c[_0xfa5e('0x22')][_0xfa5e('0x24')]);return _0x3e4fbe(_0x201c8c[_0xfa5e('0x22')][_0xfa5e('0x24')]);}else{logger[_0xfa5e('0x1d')](_0xfa5e('0x1e'),_0x51b77c,_0xfa5e('0x1f'));_0x3e4fbe(_0x201c8c['result']['message']);}})[_0xfa5e('0x25')](function(_0x4dc1c0){logger[_0xfa5e('0x22')](_0xfa5e('0x1e'),_0x51b77c,_0x4dc1c0);_0x315cf2(_0x4dc1c0);});});}function respondWithStatusCode(_0x239f3d,_0x4b2d58){_0x4b2d58=_0x4b2d58||0xcc;return function(_0x3849ae){if(_0x3849ae){return _0x239f3d[_0xfa5e('0x26')](_0x4b2d58);}return _0x239f3d[_0xfa5e('0x27')](_0x4b2d58)[_0xfa5e('0x28')]();};}function respondWithResult(_0x2c731a,_0x3f5f2f){_0x3f5f2f=_0x3f5f2f||0xc8;return function(_0xba016e){if(_0xba016e){return _0x2c731a[_0xfa5e('0x27')](_0x3f5f2f)[_0xfa5e('0x29')](_0xba016e);}};}function respondWithFilteredResult(_0x2dd825,_0x40ebcb){return function(_0x23685c){if(_0x23685c){var _0x40c2be=_0x23685c['count'],_0xfb55d5=_0x40ebcb[_0xfa5e('0x2a')],_0x515329=_0x40ebcb['offset']+_0x40ebcb[_0xfa5e('0x2b')],_0x10827a;if(_0x515329>=_0x40c2be){_0x515329=_0x40c2be;_0x10827a=0xc8;}else{_0x10827a=0xce;}_0x2dd825[_0xfa5e('0x27')](_0x10827a);return _0x2dd825[_0xfa5e('0x2c')](_0xfa5e('0x2d'),_0xfb55d5+'-'+_0x515329+'/'+_0x40c2be)[_0xfa5e('0x29')](_0x23685c);}return null;};}function patchUpdates(_0x5d07ac){return function(_0x2dcd79){try{jsonpatch[_0xfa5e('0x2e')](_0x2dcd79,_0x5d07ac,!![]);}catch(_0x129244){return BPromise[_0xfa5e('0x2f')](_0x129244);}return _0x2dcd79[_0xfa5e('0x30')]();};}function saveUpdates(_0x418817,_0x581bdc){return function(_0x1f63bf){if(_0x1f63bf){return _0x1f63bf[_0xfa5e('0x31')](_0x418817)[_0xfa5e('0x32')](function(_0x2900e1){return _0x2900e1;});}return null;};}function removeEntity(_0x3cdcd9,_0xb1e573){return function(_0xb4c5a0){if(_0xb4c5a0){return _0xb4c5a0[_0xfa5e('0x33')]()[_0xfa5e('0x32')](function(){var _0x36b410=_0xb4c5a0['get']({'plain':!![]});var _0x7eaf79='Trunks';return db[_0xfa5e('0x34')][_0xfa5e('0x33')]({'where':{'type':_0x7eaf79,'resourceId':_0x36b410['id']}})[_0xfa5e('0x32')](function(){return _0xb4c5a0;});})[_0xfa5e('0x32')](function(){_0x3cdcd9[_0xfa5e('0x27')](0xcc)[_0xfa5e('0x28')]();});}};}function handleEntityNotFound(_0x4619e1,_0xdba6b6){return function(_0x2436c5){if(!_0x2436c5){_0x4619e1[_0xfa5e('0x26')](0x194);}return _0x2436c5;};}function handleError(_0x4944a1,_0x4c7178){_0x4c7178=_0x4c7178||0x1f4;return function(_0x31c0da){logger[_0xfa5e('0x22')](_0x31c0da['stack']);if(_0x31c0da[_0xfa5e('0x35')]){delete _0x31c0da[_0xfa5e('0x35')];}_0x4944a1['status'](_0x4c7178)['send'](_0x31c0da);};}exports[_0xfa5e('0x36')]=function(_0x440814,_0x1b28b3){var _0x3cb3e6={},_0x133ca8={},_0x539c8f={'count':0x0,'rows':[]};var _0x59f800=db['Trunk'][_0xfa5e('0x37')];_0x133ca8[_0xfa5e('0x38')]=_[_0xfa5e('0x39')](_0x59f800);_0x133ca8[_0xfa5e('0x3a')]=_[_0xfa5e('0x39')](_0x440814[_0xfa5e('0x3a')]);_0x133ca8[_0xfa5e('0x3b')]=_[_0xfa5e('0x3c')](_0x133ca8[_0xfa5e('0x38')],_0x133ca8[_0xfa5e('0x3a')]);_0x3cb3e6[_0xfa5e('0x3d')]=_['intersection'](_0x133ca8[_0xfa5e('0x38')],qs[_0xfa5e('0x3e')](_0x440814[_0xfa5e('0x3a')]['fields']));_0x3cb3e6[_0xfa5e('0x3d')]=_0x3cb3e6[_0xfa5e('0x3d')]['length']?_0x3cb3e6[_0xfa5e('0x3d')]:_0x133ca8['model'];if(!_0x440814['query'][_0xfa5e('0x3f')](_0xfa5e('0x40'))){_0x3cb3e6[_0xfa5e('0x2b')]=qs[_0xfa5e('0x2b')](_0x440814[_0xfa5e('0x3a')][_0xfa5e('0x2b')]);_0x3cb3e6[_0xfa5e('0x2a')]=qs[_0xfa5e('0x2a')](_0x440814['query'][_0xfa5e('0x2a')]);}_0x3cb3e6[_0xfa5e('0x41')]=qs[_0xfa5e('0x42')](_0x440814[_0xfa5e('0x3a')][_0xfa5e('0x42')]);_0x3cb3e6[_0xfa5e('0x43')]=qs[_0xfa5e('0x3b')](_[_0xfa5e('0x44')](_0x440814[_0xfa5e('0x3a')],_0x133ca8[_0xfa5e('0x3b')]));if(_0x440814[_0xfa5e('0x3a')][_0xfa5e('0x45')]){_0x3cb3e6[_0xfa5e('0x43')]=_[_0xfa5e('0x46')](_0x3cb3e6['where'],{'$or':_[_0xfa5e('0x47')](_0x59f800,function(_0x3e524a){if(_0x3e524a[_0xfa5e('0x48')][_0xfa5e('0x49')]!=='VIRTUAL'){var _0x31d996={};_0x31d996[_0x3e524a[_0xfa5e('0x4a')]]={'$like':'%'+_0x440814[_0xfa5e('0x3a')][_0xfa5e('0x45')]+'%'};return _0x31d996;}})});}_0x3cb3e6=_[_0xfa5e('0x46')]({},_0x3cb3e6,_0x440814[_0xfa5e('0x4b')]);var _0x5433cc={'where':_0x3cb3e6['where']};return db['Trunk'][_0xfa5e('0x4c')](_0x5433cc)[_0xfa5e('0x32')](function(_0x49736b){_0x539c8f[_0xfa5e('0x4c')]=_0x49736b;if(_0x440814['query'][_0xfa5e('0x4d')]){_0x3cb3e6[_0xfa5e('0x4e')]=[{'all':!![]}];}return db[_0xfa5e('0x4f')]['findAll'](_0x3cb3e6);})['then'](function(_0x3f3796){_0x539c8f[_0xfa5e('0x50')]=_0x3f3796;return _0x539c8f;})[_0xfa5e('0x32')](respondWithFilteredResult(_0x1b28b3,_0x3cb3e6))['catch'](handleError(_0x1b28b3,null));};exports[_0xfa5e('0x51')]=function(_0x10f462,_0x577ac4){var _0x1feb9b={'raw':![],'where':{'id':_0x10f462[_0xfa5e('0x52')]['id']}},_0x1e0c74={};_0x1e0c74['model']=_[_0xfa5e('0x39')](db['Trunk'][_0xfa5e('0x37')]);_0x1e0c74[_0xfa5e('0x3a')]=_['keys'](_0x10f462['query']);_0x1e0c74[_0xfa5e('0x3b')]=_[_0xfa5e('0x3c')](_0x1e0c74[_0xfa5e('0x38')],_0x1e0c74[_0xfa5e('0x3a')]);_0x1feb9b[_0xfa5e('0x3d')]=_[_0xfa5e('0x3c')](_0x1e0c74[_0xfa5e('0x38')],qs[_0xfa5e('0x3e')](_0x10f462['query'][_0xfa5e('0x3e')]));_0x1feb9b[_0xfa5e('0x3d')]=_0x1feb9b[_0xfa5e('0x3d')][_0xfa5e('0x53')]?_0x1feb9b['attributes']:_0x1e0c74[_0xfa5e('0x38')];if(_0x10f462[_0xfa5e('0x3a')][_0xfa5e('0x4d')]){_0x1feb9b['include']=[{'all':!![]}];}_0x1feb9b=_[_0xfa5e('0x46')]({},_0x1feb9b,_0x10f462['options']);return db[_0xfa5e('0x4f')][_0xfa5e('0x54')](_0x1feb9b)[_0xfa5e('0x32')](handleEntityNotFound(_0x577ac4,null))[_0xfa5e('0x32')](respondWithResult(_0x577ac4,null))[_0xfa5e('0x25')](handleError(_0x577ac4,null));};exports[_0xfa5e('0x55')]=function(_0x289c8d,_0x4e165e){var _0x3ca3a0={'raw':![],'where':{'id':_0x289c8d[_0xfa5e('0x52')]['id']}},_0x2a642d={};_0x2a642d[_0xfa5e('0x38')]=_[_0xfa5e('0x39')](db[_0xfa5e('0x4f')]['rawAttributes']);_0x3ca3a0[_0xfa5e('0x3d')]=_[_0xfa5e('0x3c')](_0x2a642d[_0xfa5e('0x38')],qs['fields'](_0x289c8d['query'][_0xfa5e('0x3e')]));_0x3ca3a0['attributes']=_0x3ca3a0[_0xfa5e('0x3d')][_0xfa5e('0x53')]?_0x3ca3a0['attributes']:_0x2a642d[_0xfa5e('0x38')];if(_0x289c8d[_0xfa5e('0x3a')][_0xfa5e('0x4d')]){_0x3ca3a0[_0xfa5e('0x4e')]=[{'all':!![]}];}_0x3ca3a0=_['merge']({},_0x3ca3a0,_0x289c8d[_0xfa5e('0x4b')]);return db[_0xfa5e('0x4f')][_0xfa5e('0x54')](_0x3ca3a0)['then'](handleEntityNotFound(_0x4e165e,null))[_0xfa5e('0x32')](function(_0x5a14b1){if(_0x5a14b1){var _0x535714=_0x5a14b1[_0xfa5e('0x56')]({'plain':!![]});_0x535714=qs[_0xfa5e('0x57')](_0x535714,['id',_0xfa5e('0x58'),_0xfa5e('0x59')]);_0x289c8d[_0xfa5e('0x5a')]=_[_0xfa5e('0x57')](_0x289c8d[_0xfa5e('0x5a')],['id',_0xfa5e('0x58'),_0xfa5e('0x59')]);return db[_0xfa5e('0x4f')]['create'](_[_0xfa5e('0x46')](_0x535714,_0x289c8d[_0xfa5e('0x5a')]),{'include':_0x289c8d['query'][_0xfa5e('0x4d')]?[{'all':!![]}]:undefined})[_0xfa5e('0x32')](function(_0x1dd16b){var _0x3592c8=_0x289c8d[_0xfa5e('0x5b')][_0xfa5e('0x56')]({'plain':!![]});if(!_0x3592c8)throw new Error(_0xfa5e('0x5c'));if(_0x3592c8[_0xfa5e('0x5d')]===_0xfa5e('0x5b')){var _0x365463=_0x1dd16b[_0xfa5e('0x56')]({'plain':!![]});var _0x14a1cc=_0xfa5e('0x5e');return db[_0xfa5e('0x5f')][_0xfa5e('0x54')]({'where':{'name':_0x14a1cc,'userProfileId':_0x3592c8['userProfileId']},'raw':!![]})['then'](function(_0x2964cb){if(_0x2964cb&&_0x2964cb[_0xfa5e('0x60')]===0x0){return db[_0xfa5e('0x34')][_0xfa5e('0x61')]({'name':_0x365463[_0xfa5e('0x35')],'resourceId':_0x365463['id'],'type':_0x2964cb['name'],'sectionId':_0x2964cb['id']},{})[_0xfa5e('0x32')](function(){return _0x1dd16b;});}else{return _0x1dd16b;}})[_0xfa5e('0x25')](function(_0xd9759e){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xd9759e);throw _0xd9759e;});}return _0x1dd16b;});}})[_0xfa5e('0x32')](respondWithResult(_0x4e165e,0xc9))[_0xfa5e('0x25')](handleError(_0x4e165e,null));};exports[_0xfa5e('0x61')]=function(_0x4e154f,_0x605c0b,_0x19981c){var _0x1deed1;return db[_0xfa5e('0x4f')][_0xfa5e('0x61')](_0x4e154f['body'],{'raw':!![]})[_0xfa5e('0x32')](function(_0x391295){_0x1deed1=_0x391295;return db['Trunk']['findAll']({'raw':!![]});})[_0xfa5e('0x32')](function(_0x289948){var _0x3f8b37=fs['readFileSync'](path['join'](config['root'],_0xfa5e('0x62')),'utf8');var _0x395813=fs[_0xfa5e('0x63')](path[_0xfa5e('0x64')](config[_0xfa5e('0x65')],_0xfa5e('0x66')),_0xfa5e('0x67'));var _0x147d98=ejs[_0xfa5e('0x68')](_0x3f8b37,{'trunks':_0x289948||[]});fs[_0xfa5e('0x69')]('/etc/asterisk/sip_xcally_trunks.conf',_0x147d98);if(_0x1deed1[_0xfa5e('0x6a')]){var _0x271908=ejs[_0xfa5e('0x68')](_0x395813,{'trunks':_0x289948||[]});fs[_0xfa5e('0x69')](_0xfa5e('0x6b'),_0x271908);}})[_0xfa5e('0x32')](function(){return respondWithRpcPromise(_0xfa5e('0x6c'),_0xfa5e('0x61'),{'module':_0xfa5e('0x6d')});})[_0xfa5e('0x32')](function(){var _0x35587e=_0x4e154f[_0xfa5e('0x5b')][_0xfa5e('0x56')]({'plain':!![]});if(!_0x35587e)throw new Error(_0xfa5e('0x5c'));if(_0x35587e['role']===_0xfa5e('0x5b')){var _0x362e43=_0x1deed1[_0xfa5e('0x56')]({'plain':!![]});return db[_0xfa5e('0x5f')]['find']({'where':{'name':_0xfa5e('0x5e'),'userProfileId':_0x35587e[_0xfa5e('0x6e')]},'raw':!![]})[_0xfa5e('0x32')](function(_0x5555d8){if(_0x5555d8&&_0x5555d8['autoAssociation']===0x0){return db[_0xfa5e('0x34')][_0xfa5e('0x61')]({'name':_0x362e43[_0xfa5e('0x35')],'resourceId':_0x362e43['id'],'type':_0x5555d8[_0xfa5e('0x35')],'sectionId':_0x5555d8['id']},{})[_0xfa5e('0x32')](function(){return _0x1deed1;});}else{return _0x1deed1;}})[_0xfa5e('0x25')](function(_0x2ca578){logger[_0xfa5e('0x22')](_0xfa5e('0x6f'),_0x2ca578);throw _0x2ca578;});}return _0x1deed1;})[_0xfa5e('0x32')](respondWithResult(_0x605c0b,0xc9))[_0xfa5e('0x25')](handleError(_0x605c0b,null));};exports['update']=function(_0x1f1980,_0x307b6c,_0x3a75fe){var _0x245223;return db['Trunk'][_0xfa5e('0x54')]({'where':{'id':_0x1f1980['params']['id']}})[_0xfa5e('0x32')](handleEntityNotFound(_0x307b6c,null))[_0xfa5e('0x32')](saveUpdates(_0x1f1980[_0xfa5e('0x5a')],null))['then'](function(_0xa9f43c){if(_0xa9f43c){_0x245223=_0xa9f43c;return db[_0xfa5e('0x4f')][_0xfa5e('0x70')]({'raw':!![]});}})[_0xfa5e('0x32')](function(_0xec89e3){if(_0xec89e3){var _0x127f8d=fs[_0xfa5e('0x63')](path['join'](config['root'],_0xfa5e('0x62')),'utf8');var _0xd5ffcf=fs['readFileSync'](path[_0xfa5e('0x64')](config['root'],_0xfa5e('0x66')),_0xfa5e('0x67'));var _0x35fcf8=ejs[_0xfa5e('0x68')](_0x127f8d,{'trunks':_0xec89e3||[]});fs[_0xfa5e('0x69')](_0xfa5e('0x71'),_0x35fcf8);var _0x3c76b6=ejs['render'](_0xd5ffcf,{'trunks':_0xec89e3||[]});fs[_0xfa5e('0x69')](_0xfa5e('0x6b'),_0x3c76b6);return respondWithRpcPromise(_0xfa5e('0x6c'),_0xfa5e('0x31'),{'module':_0xfa5e('0x6d')});}return null;})['then'](function(_0x462cb9){if(_0x462cb9){return _0x245223;}})['then'](respondWithResult(_0x307b6c,null))[_0xfa5e('0x25')](handleError(_0x307b6c,null));};exports[_0xfa5e('0x33')]=function(_0x2e1e3e,_0x31a542,_0x16f3fa){var _0x206ae8;return db[_0xfa5e('0x4f')][_0xfa5e('0x54')]({'where':{'id':_0x2e1e3e['params']['id']}})['then'](handleEntityNotFound(_0x31a542,null))[_0xfa5e('0x32')](removeEntity(_0x31a542,null))[_0xfa5e('0x32')](function(){return db[_0xfa5e('0x4f')]['findAll']({'raw':!![]});})[_0xfa5e('0x32')](function(_0x4eda86){var _0x428e82=fs[_0xfa5e('0x63')](path['join'](config['root'],'server/files/templates/trunk.ejs'),_0xfa5e('0x67'));var _0x1013aa=fs[_0xfa5e('0x63')](path[_0xfa5e('0x64')](config[_0xfa5e('0x65')],_0xfa5e('0x66')),_0xfa5e('0x67'));var _0x4076a5=ejs[_0xfa5e('0x68')](_0x428e82,{'trunks':_0x4eda86});var _0x364f59=ejs[_0xfa5e('0x68')](_0x1013aa,{'trunks':_0x4eda86});fs['writeFileSync']('/etc/asterisk/sip_xcally_trunks.conf',_0x4076a5);fs[_0xfa5e('0x69')](_0xfa5e('0x6b'),_0x364f59);return respondWithRpcPromise(_0xfa5e('0x6c'),_0xfa5e('0x33'),{'module':_0xfa5e('0x6d')});})[_0xfa5e('0x25')](handleError(_0x31a542,null));};