Built motion from commit (unavailable).|2.5.28
[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 _0xe5e8=['/etc/asterisk/sip_xcally_registers.conf','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reload','chan_sip.so','eml-format','rimraf','zip-dir','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','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','jayson/promise','client','http','then','info','Trunk,\x20%s,\x20%s','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','limit','set','Content-Range','apply','reject','save','destroy','get','Trunks','UserProfileResource','stack','name','send','Trunk','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','sort','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','createdAt','updatedAt','omit','body','create','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','/etc/asterisk/sip_xcally_trunks.conf','registry','writeFileSync'];(function(_0xc9cd1b,_0x4ed101){var _0xd3227d=function(_0x173df6){while(--_0x173df6){_0xc9cd1b['push'](_0xc9cd1b['shift']());}};_0xd3227d(++_0x4ed101);}(_0xe5e8,0xe7));var _0x8e5e=function(_0x300f1f,_0x598f68){_0x300f1f=_0x300f1f-0x0;var _0x430c2f=_0xe5e8[_0x300f1f];return _0x430c2f;};'use strict';var emlformat=require(_0x8e5e('0x0'));var rimraf=require(_0x8e5e('0x1'));var zipdir=require(_0x8e5e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8e5e('0x3'));var Mustache=require(_0x8e5e('0x4'));var util=require('util');var path=require(_0x8e5e('0x5'));var sox=require(_0x8e5e('0x6'));var csv=require(_0x8e5e('0x7'));var ejs=require(_0x8e5e('0x8'));var fs=require('fs');var fs_extra=require(_0x8e5e('0x9'));var _=require('lodash');var squel=require(_0x8e5e('0xa'));var crypto=require(_0x8e5e('0xb'));var jsforce=require(_0x8e5e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x8e5e('0x7'));var querystring=require(_0x8e5e('0xd'));var Papa=require(_0x8e5e('0xe'));var Redis=require(_0x8e5e('0xf'));var authService=require(_0x8e5e('0x10'));var qs=require(_0x8e5e('0x11'));var as=require(_0x8e5e('0x12'));var hardwareService=require(_0x8e5e('0x13'));var logger=require(_0x8e5e('0x14'))(_0x8e5e('0x15'));var utils=require(_0x8e5e('0x16'));var config=require(_0x8e5e('0x17'));var licenseUtil=require(_0x8e5e('0x18'));var db=require(_0x8e5e('0x19'))['db'];var jayson=require(_0x8e5e('0x1a'));var client=jayson[_0x8e5e('0x1b')][_0x8e5e('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x236eb8,_0x4b668d,_0x59e822,_0x44f227){return new BPromise(function(_0x125bf0,_0x129127){var _0x1ca34e=_0x44f227||client;return _0x1ca34e['request'](_0x236eb8,_0x59e822)[_0x8e5e('0x1d')](function(_0x553b13){logger[_0x8e5e('0x1e')](_0x8e5e('0x1f'),_0x4b668d,'request\x20sent');logger['debug'](_0x8e5e('0x20'),_0x4b668d,_0x8e5e('0x21'),JSON[_0x8e5e('0x22')](_0x553b13));if(_0x553b13[_0x8e5e('0x23')]){if(_0x553b13[_0x8e5e('0x23')][_0x8e5e('0x24')]===0x1f4){logger[_0x8e5e('0x23')]('Trunk,\x20%s,\x20%s',_0x4b668d,_0x553b13[_0x8e5e('0x23')][_0x8e5e('0x25')]);return _0x129127(_0x553b13[_0x8e5e('0x23')][_0x8e5e('0x25')]);}logger[_0x8e5e('0x23')]('Trunk,\x20%s,\x20%s',_0x4b668d,_0x553b13['error']['message']);return _0x125bf0(_0x553b13[_0x8e5e('0x23')][_0x8e5e('0x25')]);}else{logger[_0x8e5e('0x1e')]('Trunk,\x20%s,\x20%s',_0x4b668d,_0x8e5e('0x21'));_0x125bf0(_0x553b13[_0x8e5e('0x26')][_0x8e5e('0x25')]);}})[_0x8e5e('0x27')](function(_0x37d0b6){logger[_0x8e5e('0x23')](_0x8e5e('0x1f'),_0x4b668d,_0x37d0b6);_0x129127(_0x37d0b6);});});}function respondWithStatusCode(_0x58d91d,_0x49bd22){_0x49bd22=_0x49bd22||0xcc;return function(_0xa37c0){if(_0xa37c0){return _0x58d91d[_0x8e5e('0x28')](_0x49bd22);}return _0x58d91d[_0x8e5e('0x29')](_0x49bd22)[_0x8e5e('0x2a')]();};}function respondWithResult(_0x31b29b,_0x22eb81){_0x22eb81=_0x22eb81||0xc8;return function(_0x171d42){if(_0x171d42){return _0x31b29b['status'](_0x22eb81)[_0x8e5e('0x2b')](_0x171d42);}};}function respondWithFilteredResult(_0x3fa9b3,_0x12c0c6){return function(_0x199d55){if(_0x199d55){var _0x3bb3e7=_0x199d55[_0x8e5e('0x2c')],_0x305c30=_0x12c0c6['offset'],_0x353dec=_0x12c0c6['offset']+_0x12c0c6[_0x8e5e('0x2d')],_0x3ff4a8;if(_0x353dec>=_0x3bb3e7){_0x353dec=_0x3bb3e7;_0x3ff4a8=0xc8;}else{_0x3ff4a8=0xce;}_0x3fa9b3['status'](_0x3ff4a8);return _0x3fa9b3[_0x8e5e('0x2e')](_0x8e5e('0x2f'),_0x305c30+'-'+_0x353dec+'/'+_0x3bb3e7)[_0x8e5e('0x2b')](_0x199d55);}return null;};}function patchUpdates(_0x2ff67e){return function(_0x4ff33f){try{jsonpatch[_0x8e5e('0x30')](_0x4ff33f,_0x2ff67e,!![]);}catch(_0x533c56){return BPromise[_0x8e5e('0x31')](_0x533c56);}return _0x4ff33f[_0x8e5e('0x32')]();};}function saveUpdates(_0x2d2005,_0x97a968){return function(_0x34c3b0){if(_0x34c3b0){return _0x34c3b0['update'](_0x2d2005)[_0x8e5e('0x1d')](function(_0x2caefe){return _0x2caefe;});}return null;};}function removeEntity(_0x563879,_0x3c52ab){return function(_0x823106){if(_0x823106){return _0x823106[_0x8e5e('0x33')]()[_0x8e5e('0x1d')](function(){var _0x4f0ee6=_0x823106[_0x8e5e('0x34')]({'plain':!![]});var _0xbe41ff=_0x8e5e('0x35');return db[_0x8e5e('0x36')][_0x8e5e('0x33')]({'where':{'type':_0xbe41ff,'resourceId':_0x4f0ee6['id']}})['then'](function(){return _0x823106;});})[_0x8e5e('0x1d')](function(){_0x563879[_0x8e5e('0x29')](0xcc)[_0x8e5e('0x2a')]();});}};}function handleEntityNotFound(_0x20cf64,_0x174e13){return function(_0x365196){if(!_0x365196){_0x20cf64[_0x8e5e('0x28')](0x194);}return _0x365196;};}function handleError(_0x30aa3e,_0x93e9db){_0x93e9db=_0x93e9db||0x1f4;return function(_0x22ba3a){logger[_0x8e5e('0x23')](_0x22ba3a[_0x8e5e('0x37')]);if(_0x22ba3a[_0x8e5e('0x38')]){delete _0x22ba3a['name'];}_0x30aa3e[_0x8e5e('0x29')](_0x93e9db)[_0x8e5e('0x39')](_0x22ba3a);};}exports['index']=function(_0x326f5d,_0x1fdefe){var _0x154c58={},_0x3bebec={},_0x87469b={'count':0x0,'rows':[]};var _0x519276=_['map'](db[_0x8e5e('0x3a')][_0x8e5e('0x3b')],function(_0x5c659a){return{'name':_0x5c659a[_0x8e5e('0x3c')],'type':_0x5c659a[_0x8e5e('0x3d')]['key']};});_0x3bebec[_0x8e5e('0x3e')]=_[_0x8e5e('0x3f')](_0x519276,_0x8e5e('0x38'));_0x3bebec[_0x8e5e('0x40')]=_[_0x8e5e('0x41')](_0x326f5d['query']);_0x3bebec[_0x8e5e('0x42')]=_[_0x8e5e('0x43')](_0x3bebec['model'],_0x3bebec['query']);_0x154c58[_0x8e5e('0x44')]=_[_0x8e5e('0x43')](_0x3bebec[_0x8e5e('0x3e')],qs['fields'](_0x326f5d[_0x8e5e('0x40')][_0x8e5e('0x45')]));_0x154c58[_0x8e5e('0x44')]=_0x154c58[_0x8e5e('0x44')][_0x8e5e('0x46')]?_0x154c58[_0x8e5e('0x44')]:_0x3bebec['model'];if(!_0x326f5d[_0x8e5e('0x40')][_0x8e5e('0x47')](_0x8e5e('0x48'))){_0x154c58[_0x8e5e('0x2d')]=qs['limit'](_0x326f5d[_0x8e5e('0x40')][_0x8e5e('0x2d')]);_0x154c58[_0x8e5e('0x49')]=qs['offset'](_0x326f5d[_0x8e5e('0x40')]['offset']);}_0x154c58['order']=qs[_0x8e5e('0x4a')](_0x326f5d[_0x8e5e('0x40')][_0x8e5e('0x4a')]);_0x154c58['where']=qs[_0x8e5e('0x42')](_[_0x8e5e('0x4b')](_0x326f5d[_0x8e5e('0x40')],_0x3bebec[_0x8e5e('0x42')]),_0x519276);if(_0x326f5d[_0x8e5e('0x40')][_0x8e5e('0x4c')]){_0x154c58[_0x8e5e('0x4d')]=_[_0x8e5e('0x4e')](_0x154c58[_0x8e5e('0x4d')],{'$or':_[_0x8e5e('0x3f')](_0x519276,function(_0x3aa156){if(_0x3aa156[_0x8e5e('0x3d')]!==_0x8e5e('0x4f')){var _0x18c16d={};_0x18c16d[_0x3aa156[_0x8e5e('0x38')]]={'$like':'%'+_0x326f5d['query'][_0x8e5e('0x4c')]+'%'};return _0x18c16d;}})});}_0x154c58=_[_0x8e5e('0x4e')]({},_0x154c58,_0x326f5d['options']);var _0xd91ea8={'where':_0x154c58[_0x8e5e('0x4d')]};return db[_0x8e5e('0x3a')][_0x8e5e('0x2c')](_0xd91ea8)[_0x8e5e('0x1d')](function(_0x1539e4){_0x87469b[_0x8e5e('0x2c')]=_0x1539e4;if(_0x326f5d['query'][_0x8e5e('0x50')]){_0x154c58[_0x8e5e('0x51')]=[{'all':!![]}];}return db[_0x8e5e('0x3a')][_0x8e5e('0x52')](_0x154c58);})[_0x8e5e('0x1d')](function(_0x585833){_0x87469b[_0x8e5e('0x53')]=_0x585833;return _0x87469b;})['then'](respondWithFilteredResult(_0x1fdefe,_0x154c58))[_0x8e5e('0x27')](handleError(_0x1fdefe,null));};exports[_0x8e5e('0x54')]=function(_0x56276c,_0x11f9d6){var _0x2ed51d={'raw':![],'where':{'id':_0x56276c[_0x8e5e('0x55')]['id']}},_0x5e9f56={};_0x5e9f56[_0x8e5e('0x3e')]=_['keys'](db[_0x8e5e('0x3a')][_0x8e5e('0x3b')]);_0x5e9f56['query']=_[_0x8e5e('0x41')](_0x56276c['query']);_0x5e9f56[_0x8e5e('0x42')]=_[_0x8e5e('0x43')](_0x5e9f56[_0x8e5e('0x3e')],_0x5e9f56[_0x8e5e('0x40')]);_0x2ed51d[_0x8e5e('0x44')]=_['intersection'](_0x5e9f56[_0x8e5e('0x3e')],qs[_0x8e5e('0x45')](_0x56276c[_0x8e5e('0x40')]['fields']));_0x2ed51d['attributes']=_0x2ed51d[_0x8e5e('0x44')][_0x8e5e('0x46')]?_0x2ed51d[_0x8e5e('0x44')]:_0x5e9f56['model'];if(_0x56276c['query'][_0x8e5e('0x50')]){_0x2ed51d['include']=[{'all':!![]}];}_0x2ed51d=_[_0x8e5e('0x4e')]({},_0x2ed51d,_0x56276c[_0x8e5e('0x56')]);return db[_0x8e5e('0x3a')][_0x8e5e('0x57')](_0x2ed51d)['then'](handleEntityNotFound(_0x11f9d6,null))[_0x8e5e('0x1d')](respondWithResult(_0x11f9d6,null))[_0x8e5e('0x27')](handleError(_0x11f9d6,null));};exports['clone']=function(_0x621633,_0x1c5781){var _0x337651={'where':{'id':_0x621633['params']['id']}},_0x48ffa7={};_0x48ffa7[_0x8e5e('0x3e')]=_[_0x8e5e('0x41')](db[_0x8e5e('0x3a')]['rawAttributes']);_0x337651[_0x8e5e('0x44')]=_[_0x8e5e('0x43')](_0x48ffa7[_0x8e5e('0x3e')],qs[_0x8e5e('0x45')](_0x621633[_0x8e5e('0x40')][_0x8e5e('0x45')]));_0x337651['attributes']=_0x337651[_0x8e5e('0x44')][_0x8e5e('0x46')]?_0x337651[_0x8e5e('0x44')]:_0x48ffa7['model'];if(_0x621633[_0x8e5e('0x40')]['includeAll']){_0x337651[_0x8e5e('0x51')]=[{'all':!![]}];}_0x337651=_[_0x8e5e('0x4e')]({},_0x337651,_0x621633['options']);return db['Trunk'][_0x8e5e('0x57')](_0x337651)[_0x8e5e('0x1d')](handleEntityNotFound(_0x1c5781,null))[_0x8e5e('0x1d')](function(_0xeec9cb){if(_0xeec9cb){var _0x561414=_0xeec9cb['get']({'plain':!![]});_0x561414=qs['omit'](_0x561414,['id',_0x8e5e('0x58'),_0x8e5e('0x59')]);_0x621633['body']=_[_0x8e5e('0x5a')](_0x621633[_0x8e5e('0x5b')],['id',_0x8e5e('0x58'),_0x8e5e('0x59')]);return db[_0x8e5e('0x3a')][_0x8e5e('0x5c')](_['merge'](_0x561414,_0x621633['body']),{'include':_0x621633[_0x8e5e('0x40')][_0x8e5e('0x50')]?[{'all':!![]}]:undefined})[_0x8e5e('0x1d')](function(_0x1358d2){var _0x4a0f29=_0x621633[_0x8e5e('0x5d')][_0x8e5e('0x34')]({'plain':!![]});if(!_0x4a0f29)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4a0f29['role']===_0x8e5e('0x5d')){var _0x3f9b15=_0x1358d2[_0x8e5e('0x34')]({'plain':!![]});var _0x55d279=_0x8e5e('0x35');return db[_0x8e5e('0x5e')][_0x8e5e('0x57')]({'where':{'name':_0x55d279,'userProfileId':_0x4a0f29[_0x8e5e('0x5f')]},'raw':!![]})[_0x8e5e('0x1d')](function(_0x27bda5){if(_0x27bda5&&_0x27bda5[_0x8e5e('0x60')]===0x0){return db[_0x8e5e('0x36')]['create']({'name':_0x3f9b15['name'],'resourceId':_0x3f9b15['id'],'type':_0x27bda5[_0x8e5e('0x38')],'sectionId':_0x27bda5['id']},{})[_0x8e5e('0x1d')](function(){return _0x1358d2;});}else{return _0x1358d2;}})[_0x8e5e('0x27')](function(_0x514eb9){logger['error'](_0x8e5e('0x61'),_0x514eb9);throw _0x514eb9;});}return _0x1358d2;});}})[_0x8e5e('0x1d')](respondWithResult(_0x1c5781,0xc9))[_0x8e5e('0x27')](handleError(_0x1c5781,null));};exports[_0x8e5e('0x5c')]=function(_0x2e9d85,_0x21599e,_0x1cad52){var _0x2f1fdf;return db['Trunk'][_0x8e5e('0x5c')](_0x2e9d85[_0x8e5e('0x5b')],{'raw':!![]})['then'](function(_0x33929d){_0x2f1fdf=_0x33929d;return db['Trunk'][_0x8e5e('0x52')]({'raw':!![]});})[_0x8e5e('0x1d')](function(_0x473509){var _0x254362=fs[_0x8e5e('0x62')](path[_0x8e5e('0x63')](config[_0x8e5e('0x64')],_0x8e5e('0x65')),_0x8e5e('0x66'));var _0x34a97f=fs[_0x8e5e('0x62')](path[_0x8e5e('0x63')](config['root'],_0x8e5e('0x67')),_0x8e5e('0x66'));var _0x59c3b3=ejs[_0x8e5e('0x68')](_0x254362,{'trunks':_0x473509||[]});fs['writeFileSync'](_0x8e5e('0x69'),_0x59c3b3);if(_0x2f1fdf[_0x8e5e('0x6a')]){var _0x404cf9=ejs['render'](_0x34a97f,{'trunks':_0x473509||[]});fs[_0x8e5e('0x6b')](_0x8e5e('0x6c'),_0x404cf9);}})[_0x8e5e('0x1d')](function(){return respondWithRpcPromise('Reload',_0x8e5e('0x5c'),{'module':'chan_sip.so'});})['then'](function(){var _0x2826a2=_0x2e9d85[_0x8e5e('0x5d')][_0x8e5e('0x34')]({'plain':!![]});if(!_0x2826a2)throw new Error(_0x8e5e('0x6d'));if(_0x2826a2[_0x8e5e('0x6e')]===_0x8e5e('0x5d')){var _0x3cddf9=_0x2f1fdf['get']({'plain':!![]});return db[_0x8e5e('0x5e')][_0x8e5e('0x57')]({'where':{'name':_0x8e5e('0x35'),'userProfileId':_0x2826a2['userProfileId']},'raw':!![]})[_0x8e5e('0x1d')](function(_0x294328){if(_0x294328&&_0x294328[_0x8e5e('0x60')]===0x0){return db[_0x8e5e('0x36')][_0x8e5e('0x5c')]({'name':_0x3cddf9[_0x8e5e('0x38')],'resourceId':_0x3cddf9['id'],'type':_0x294328[_0x8e5e('0x38')],'sectionId':_0x294328['id']},{})['then'](function(){return _0x2f1fdf;});}else{return _0x2f1fdf;}})['catch'](function(_0x386f2f){logger[_0x8e5e('0x23')](_0x8e5e('0x61'),_0x386f2f);throw _0x386f2f;});}return _0x2f1fdf;})[_0x8e5e('0x1d')](respondWithResult(_0x21599e,0xc9))[_0x8e5e('0x27')](handleError(_0x21599e,null));};exports['update']=function(_0x23e339,_0x462309,_0x30582a){var _0x37742a;return db[_0x8e5e('0x3a')][_0x8e5e('0x57')]({'where':{'id':_0x23e339[_0x8e5e('0x55')]['id']}})[_0x8e5e('0x1d')](handleEntityNotFound(_0x462309,null))['then'](saveUpdates(_0x23e339['body'],null))[_0x8e5e('0x1d')](function(_0x5d6c6d){if(_0x5d6c6d){_0x37742a=_0x5d6c6d;return db['Trunk']['findAll']({'raw':!![]});}})[_0x8e5e('0x1d')](function(_0x147ada){if(_0x147ada){var _0x39d3ef=fs['readFileSync'](path[_0x8e5e('0x63')](config['root'],_0x8e5e('0x65')),'utf8');var _0x22895d=fs[_0x8e5e('0x62')](path[_0x8e5e('0x63')](config[_0x8e5e('0x64')],_0x8e5e('0x67')),_0x8e5e('0x66'));var _0x2bdf93=ejs[_0x8e5e('0x68')](_0x39d3ef,{'trunks':_0x147ada||[]});fs[_0x8e5e('0x6b')]('/etc/asterisk/sip_xcally_trunks.conf',_0x2bdf93);var _0xc0e6e=ejs[_0x8e5e('0x68')](_0x22895d,{'trunks':_0x147ada||[]});fs[_0x8e5e('0x6b')](_0x8e5e('0x6c'),_0xc0e6e);return respondWithRpcPromise(_0x8e5e('0x6f'),'update',{'module':_0x8e5e('0x70')});}return null;})['then'](function(_0x130724){if(_0x130724){return _0x37742a;}})[_0x8e5e('0x1d')](respondWithResult(_0x462309,null))[_0x8e5e('0x27')](handleError(_0x462309,null));};exports[_0x8e5e('0x33')]=function(_0x3e9a19,_0x420c70,_0x58dc32){var _0x4480b1;return db[_0x8e5e('0x3a')][_0x8e5e('0x57')]({'where':{'id':_0x3e9a19['params']['id']}})[_0x8e5e('0x1d')](handleEntityNotFound(_0x420c70,null))['then'](removeEntity(_0x420c70,null))['then'](function(){return db[_0x8e5e('0x3a')][_0x8e5e('0x52')]({'raw':!![]});})[_0x8e5e('0x1d')](function(_0x58ef5d){var _0x863de=fs[_0x8e5e('0x62')](path[_0x8e5e('0x63')](config[_0x8e5e('0x64')],_0x8e5e('0x65')),_0x8e5e('0x66'));var _0x41bf7d=fs['readFileSync'](path[_0x8e5e('0x63')](config['root'],_0x8e5e('0x67')),_0x8e5e('0x66'));var _0xad3f99=ejs[_0x8e5e('0x68')](_0x863de,{'trunks':_0x58ef5d});var _0x16cf88=ejs[_0x8e5e('0x68')](_0x41bf7d,{'trunks':_0x58ef5d});fs[_0x8e5e('0x6b')](_0x8e5e('0x69'),_0xad3f99);fs['writeFileSync'](_0x8e5e('0x6c'),_0x16cf88);return respondWithRpcPromise('Reload',_0x8e5e('0x33'),{'module':_0x8e5e('0x70')});})['catch'](handleError(_0x420c70,null));};