Built motion from commit (unavailable).|2.5.22
[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 _0x39f4=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','info','Trunk,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','Trunks','UserProfileResource','end','stack','send','index','map','Trunk','rawAttributes','fieldName','type','model','name','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','params','length','find','clone','omit','createdAt','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','server/files/templates/trunk.ejs','utf8','root','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','querystring'];(function(_0xc0af3,_0x7f5baf){var _0x1a3f58=function(_0x23782d){while(--_0x23782d){_0xc0af3['push'](_0xc0af3['shift']());}};_0x1a3f58(++_0x7f5baf);}(_0x39f4,0x133));var _0x439f=function(_0x34fc4c,_0x3b2575){_0x34fc4c=_0x34fc4c-0x0;var _0x42aa15=_0x39f4[_0x34fc4c];return _0x42aa15;};'use strict';var pdf=require(_0x439f('0x0'));var emlformat=require(_0x439f('0x1'));var rimraf=require(_0x439f('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x439f('0x3'));var rp=require(_0x439f('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x439f('0x5'));var util=require(_0x439f('0x6'));var path=require(_0x439f('0x7'));var sox=require('sox');var csv=require(_0x439f('0x8'));var ejs=require(_0x439f('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x439f('0xa'));var crypto=require(_0x439f('0xb'));var jsforce=require(_0x439f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x439f('0x8'));var querystring=require(_0x439f('0xd'));var Papa=require('papaparse');var Redis=require(_0x439f('0xe'));var authService=require(_0x439f('0xf'));var qs=require(_0x439f('0x10'));var as=require(_0x439f('0x11'));var hardwareService=require(_0x439f('0x12'));var logger=require('../../config/logger')(_0x439f('0x13'));var utils=require(_0x439f('0x14'));var config=require(_0x439f('0x15'));var licenseUtil=require(_0x439f('0x16'));var db=require(_0x439f('0x17'))['db'];var jayson=require(_0x439f('0x18'));var client=jayson['client'][_0x439f('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x34da97,_0x4fc15b,_0x3303bd,_0x10d4d6){return new BPromise(function(_0x4ccb7f,_0x255ae3){var _0x479662=_0x10d4d6||client;return _0x479662[_0x439f('0x1a')](_0x34da97,_0x3303bd)['then'](function(_0x477f95){logger[_0x439f('0x1b')](_0x439f('0x1c'),_0x4fc15b,'request\x20sent');logger['debug']('Trunk,\x20%s,\x20%s,\x20%s',_0x4fc15b,'request\x20sent',JSON['stringify'](_0x477f95));if(_0x477f95[_0x439f('0x1d')]){if(_0x477f95['error'][_0x439f('0x1e')]===0x1f4){logger['error'](_0x439f('0x1c'),_0x4fc15b,_0x477f95['error'][_0x439f('0x1f')]);return _0x255ae3(_0x477f95[_0x439f('0x1d')][_0x439f('0x1f')]);}logger[_0x439f('0x1d')](_0x439f('0x1c'),_0x4fc15b,_0x477f95['error'][_0x439f('0x1f')]);return _0x4ccb7f(_0x477f95[_0x439f('0x1d')][_0x439f('0x1f')]);}else{logger[_0x439f('0x1b')](_0x439f('0x1c'),_0x4fc15b,'request\x20sent');_0x4ccb7f(_0x477f95[_0x439f('0x20')][_0x439f('0x1f')]);}})[_0x439f('0x21')](function(_0x1b84cb){logger[_0x439f('0x1d')](_0x439f('0x1c'),_0x4fc15b,_0x1b84cb);_0x255ae3(_0x1b84cb);});});}function respondWithStatusCode(_0x38afcf,_0x3e1437){_0x3e1437=_0x3e1437||0xcc;return function(_0x9a0c46){if(_0x9a0c46){return _0x38afcf[_0x439f('0x22')](_0x3e1437);}return _0x38afcf[_0x439f('0x23')](_0x3e1437)['end']();};}function respondWithResult(_0x3e519a,_0x23dbbc){_0x23dbbc=_0x23dbbc||0xc8;return function(_0x28d048){if(_0x28d048){return _0x3e519a[_0x439f('0x23')](_0x23dbbc)[_0x439f('0x24')](_0x28d048);}};}function respondWithFilteredResult(_0x5742b,_0x453a96){return function(_0x17802c){if(_0x17802c){var _0x4b35d3=_0x17802c[_0x439f('0x25')],_0x3c2d70=_0x453a96[_0x439f('0x26')],_0x38195a=_0x453a96[_0x439f('0x26')]+_0x453a96[_0x439f('0x27')],_0x3480a7;if(_0x38195a>=_0x4b35d3){_0x38195a=_0x4b35d3;_0x3480a7=0xc8;}else{_0x3480a7=0xce;}_0x5742b[_0x439f('0x23')](_0x3480a7);return _0x5742b['set'](_0x439f('0x28'),_0x3c2d70+'-'+_0x38195a+'/'+_0x4b35d3)[_0x439f('0x24')](_0x17802c);}return null;};}function patchUpdates(_0x4f8aea){return function(_0x2be87a){try{jsonpatch[_0x439f('0x29')](_0x2be87a,_0x4f8aea,!![]);}catch(_0x55fa55){return BPromise[_0x439f('0x2a')](_0x55fa55);}return _0x2be87a[_0x439f('0x2b')]();};}function saveUpdates(_0x16ca70,_0x8ce3a8){return function(_0x442f48){if(_0x442f48){return _0x442f48[_0x439f('0x2c')](_0x16ca70)[_0x439f('0x2d')](function(_0x5c4f3e){return _0x5c4f3e;});}return null;};}function removeEntity(_0x23b659,_0x46e7e2){return function(_0x2d4222){if(_0x2d4222){return _0x2d4222[_0x439f('0x2e')]()[_0x439f('0x2d')](function(){var _0xdb107d=_0x2d4222[_0x439f('0x2f')]({'plain':!![]});var _0x176438=_0x439f('0x30');return db[_0x439f('0x31')]['destroy']({'where':{'type':_0x176438,'resourceId':_0xdb107d['id']}})[_0x439f('0x2d')](function(){return _0x2d4222;});})[_0x439f('0x2d')](function(){_0x23b659['status'](0xcc)[_0x439f('0x32')]();});}};}function handleEntityNotFound(_0x13e20b,_0x3214ad){return function(_0x5dc559){if(!_0x5dc559){_0x13e20b[_0x439f('0x22')](0x194);}return _0x5dc559;};}function handleError(_0xb5a7b6,_0x1a5182){_0x1a5182=_0x1a5182||0x1f4;return function(_0x297ab5){logger[_0x439f('0x1d')](_0x297ab5[_0x439f('0x33')]);if(_0x297ab5['name']){delete _0x297ab5['name'];}_0xb5a7b6[_0x439f('0x23')](_0x1a5182)[_0x439f('0x34')](_0x297ab5);};}exports[_0x439f('0x35')]=function(_0x3f632f,_0x1ddb3d){var _0x2ae6e8={},_0x2d9ca0={},_0xcd8364={'count':0x0,'rows':[]};var _0x1e52db=_[_0x439f('0x36')](db[_0x439f('0x37')][_0x439f('0x38')],function(_0x46faf1){return{'name':_0x46faf1[_0x439f('0x39')],'type':_0x46faf1[_0x439f('0x3a')]['key']};});_0x2d9ca0[_0x439f('0x3b')]=_[_0x439f('0x36')](_0x1e52db,_0x439f('0x3c'));_0x2d9ca0[_0x439f('0x3d')]=_[_0x439f('0x3e')](_0x3f632f[_0x439f('0x3d')]);_0x2d9ca0[_0x439f('0x3f')]=_['intersection'](_0x2d9ca0[_0x439f('0x3b')],_0x2d9ca0[_0x439f('0x3d')]);_0x2ae6e8[_0x439f('0x40')]=_[_0x439f('0x41')](_0x2d9ca0[_0x439f('0x3b')],qs[_0x439f('0x42')](_0x3f632f[_0x439f('0x3d')][_0x439f('0x42')]));_0x2ae6e8[_0x439f('0x40')]=_0x2ae6e8['attributes']['length']?_0x2ae6e8[_0x439f('0x40')]:_0x2d9ca0[_0x439f('0x3b')];if(!_0x3f632f[_0x439f('0x3d')][_0x439f('0x43')](_0x439f('0x44'))){_0x2ae6e8[_0x439f('0x27')]=qs[_0x439f('0x27')](_0x3f632f[_0x439f('0x3d')][_0x439f('0x27')]);_0x2ae6e8['offset']=qs['offset'](_0x3f632f[_0x439f('0x3d')][_0x439f('0x26')]);}_0x2ae6e8[_0x439f('0x45')]=qs['sort'](_0x3f632f[_0x439f('0x3d')][_0x439f('0x46')]);_0x2ae6e8[_0x439f('0x47')]=qs['filters'](_['pick'](_0x3f632f['query'],_0x2d9ca0[_0x439f('0x3f')]),_0x1e52db);if(_0x3f632f[_0x439f('0x3d')][_0x439f('0x48')]){_0x2ae6e8[_0x439f('0x47')]=_[_0x439f('0x49')](_0x2ae6e8[_0x439f('0x47')],{'$or':_[_0x439f('0x36')](_0x1e52db,function(_0x393dc1){if(_0x393dc1[_0x439f('0x3a')]!==_0x439f('0x4a')){var _0xd42081={};_0xd42081[_0x393dc1[_0x439f('0x3c')]]={'$like':'%'+_0x3f632f[_0x439f('0x3d')]['filter']+'%'};return _0xd42081;}})});}_0x2ae6e8=_['merge']({},_0x2ae6e8,_0x3f632f[_0x439f('0x4b')]);var _0x7c4ab9={'where':_0x2ae6e8[_0x439f('0x47')]};return db[_0x439f('0x37')][_0x439f('0x25')](_0x7c4ab9)[_0x439f('0x2d')](function(_0x48cde8){_0xcd8364[_0x439f('0x25')]=_0x48cde8;if(_0x3f632f[_0x439f('0x3d')][_0x439f('0x4c')]){_0x2ae6e8[_0x439f('0x4d')]=[{'all':!![]}];}return db['Trunk'][_0x439f('0x4e')](_0x2ae6e8);})[_0x439f('0x2d')](function(_0x197019){_0xcd8364['rows']=_0x197019;return _0xcd8364;})[_0x439f('0x2d')](respondWithFilteredResult(_0x1ddb3d,_0x2ae6e8))[_0x439f('0x21')](handleError(_0x1ddb3d,null));};exports['show']=function(_0xcfadc,_0x10281a){var _0x4000c9={'raw':![],'where':{'id':_0xcfadc[_0x439f('0x4f')]['id']}},_0x2243bc={};_0x2243bc[_0x439f('0x3b')]=_[_0x439f('0x3e')](db['Trunk'][_0x439f('0x38')]);_0x2243bc['query']=_[_0x439f('0x3e')](_0xcfadc[_0x439f('0x3d')]);_0x2243bc['filters']=_[_0x439f('0x41')](_0x2243bc[_0x439f('0x3b')],_0x2243bc[_0x439f('0x3d')]);_0x4000c9[_0x439f('0x40')]=_['intersection'](_0x2243bc[_0x439f('0x3b')],qs[_0x439f('0x42')](_0xcfadc[_0x439f('0x3d')][_0x439f('0x42')]));_0x4000c9[_0x439f('0x40')]=_0x4000c9[_0x439f('0x40')][_0x439f('0x50')]?_0x4000c9['attributes']:_0x2243bc[_0x439f('0x3b')];if(_0xcfadc['query'][_0x439f('0x4c')]){_0x4000c9['include']=[{'all':!![]}];}_0x4000c9=_[_0x439f('0x49')]({},_0x4000c9,_0xcfadc[_0x439f('0x4b')]);return db['Trunk'][_0x439f('0x51')](_0x4000c9)[_0x439f('0x2d')](handleEntityNotFound(_0x10281a,null))[_0x439f('0x2d')](respondWithResult(_0x10281a,null))[_0x439f('0x21')](handleError(_0x10281a,null));};exports[_0x439f('0x52')]=function(_0x18d2ec,_0x524660){var _0x2af1f2={'where':{'id':_0x18d2ec['params']['id']}},_0x3fed9d={};_0x3fed9d[_0x439f('0x3b')]=_[_0x439f('0x3e')](db['Trunk'][_0x439f('0x38')]);_0x2af1f2[_0x439f('0x40')]=_[_0x439f('0x41')](_0x3fed9d[_0x439f('0x3b')],qs[_0x439f('0x42')](_0x18d2ec[_0x439f('0x3d')][_0x439f('0x42')]));_0x2af1f2['attributes']=_0x2af1f2[_0x439f('0x40')]['length']?_0x2af1f2[_0x439f('0x40')]:_0x3fed9d[_0x439f('0x3b')];if(_0x18d2ec['query']['includeAll']){_0x2af1f2[_0x439f('0x4d')]=[{'all':!![]}];}_0x2af1f2=_['merge']({},_0x2af1f2,_0x18d2ec[_0x439f('0x4b')]);return db[_0x439f('0x37')]['find'](_0x2af1f2)[_0x439f('0x2d')](handleEntityNotFound(_0x524660,null))[_0x439f('0x2d')](function(_0x337877){if(_0x337877){var _0xd37a8f=_0x337877['get']({'plain':!![]});_0xd37a8f=qs[_0x439f('0x53')](_0xd37a8f,['id',_0x439f('0x54'),_0x439f('0x55')]);_0x18d2ec[_0x439f('0x56')]=_[_0x439f('0x53')](_0x18d2ec[_0x439f('0x56')],['id','createdAt',_0x439f('0x55')]);return db[_0x439f('0x37')][_0x439f('0x57')](_[_0x439f('0x49')](_0xd37a8f,_0x18d2ec[_0x439f('0x56')]),{'include':_0x18d2ec[_0x439f('0x3d')][_0x439f('0x4c')]?[{'all':!![]}]:undefined})[_0x439f('0x2d')](function(_0x11fd80){var _0x26493b=_0x18d2ec[_0x439f('0x58')]['get']({'plain':!![]});if(!_0x26493b)throw new Error(_0x439f('0x59'));if(_0x26493b[_0x439f('0x5a')]==='user'){var _0xb621e7=_0x11fd80[_0x439f('0x2f')]({'plain':!![]});var _0x5b318d=_0x439f('0x30');return db[_0x439f('0x5b')][_0x439f('0x51')]({'where':{'name':_0x5b318d,'userProfileId':_0x26493b[_0x439f('0x5c')]},'raw':!![]})[_0x439f('0x2d')](function(_0x356471){if(_0x356471&&_0x356471[_0x439f('0x5d')]===0x0){return db['UserProfileResource']['create']({'name':_0xb621e7[_0x439f('0x3c')],'resourceId':_0xb621e7['id'],'type':_0x356471[_0x439f('0x3c')],'sectionId':_0x356471['id']},{})['then'](function(){return _0x11fd80;});}else{return _0x11fd80;}})[_0x439f('0x21')](function(_0x26a464){logger[_0x439f('0x1d')](_0x439f('0x5e'),_0x26a464);throw _0x26a464;});}return _0x11fd80;});}})[_0x439f('0x2d')](respondWithResult(_0x524660,0xc9))[_0x439f('0x21')](handleError(_0x524660,null));};exports[_0x439f('0x57')]=function(_0x5a7714,_0x307c08,_0x3af47d){var _0x1405d1;return db[_0x439f('0x37')]['create'](_0x5a7714[_0x439f('0x56')],{'raw':!![]})[_0x439f('0x2d')](function(_0x1c0005){_0x1405d1=_0x1c0005;return db[_0x439f('0x37')][_0x439f('0x4e')]({'raw':!![]});})[_0x439f('0x2d')](function(_0x1fe6b7){var _0x117e8e=fs[_0x439f('0x5f')](path[_0x439f('0x60')](config['root'],_0x439f('0x61')),_0x439f('0x62'));var _0x21b789=fs[_0x439f('0x5f')](path['join'](config[_0x439f('0x63')],_0x439f('0x64')),'utf8');var _0x411ea7=ejs[_0x439f('0x65')](_0x117e8e,{'trunks':_0x1fe6b7||[]});fs[_0x439f('0x66')](_0x439f('0x67'),_0x411ea7);if(_0x1405d1[_0x439f('0x68')]){var _0x5742af=ejs[_0x439f('0x65')](_0x21b789,{'trunks':_0x1fe6b7||[]});fs[_0x439f('0x66')](_0x439f('0x69'),_0x5742af);}})[_0x439f('0x2d')](function(){return respondWithRpcPromise(_0x439f('0x6a'),'create',{'module':'chan_sip.so'});})[_0x439f('0x2d')](function(){var _0x183e78=_0x5a7714['user'][_0x439f('0x2f')]({'plain':!![]});if(!_0x183e78)throw new Error(_0x439f('0x59'));if(_0x183e78[_0x439f('0x5a')]===_0x439f('0x58')){var _0x599d25=_0x1405d1['get']({'plain':!![]});return db[_0x439f('0x5b')][_0x439f('0x51')]({'where':{'name':'Trunks','userProfileId':_0x183e78[_0x439f('0x5c')]},'raw':!![]})[_0x439f('0x2d')](function(_0x291807){if(_0x291807&&_0x291807[_0x439f('0x5d')]===0x0){return db[_0x439f('0x31')][_0x439f('0x57')]({'name':_0x599d25['name'],'resourceId':_0x599d25['id'],'type':_0x291807[_0x439f('0x3c')],'sectionId':_0x291807['id']},{})['then'](function(){return _0x1405d1;});}else{return _0x1405d1;}})[_0x439f('0x21')](function(_0x28bef5){logger['error'](_0x439f('0x5e'),_0x28bef5);throw _0x28bef5;});}return _0x1405d1;})[_0x439f('0x2d')](respondWithResult(_0x307c08,0xc9))[_0x439f('0x21')](handleError(_0x307c08,null));};exports[_0x439f('0x2c')]=function(_0x5b1667,_0x3950f4,_0x76192e){var _0x2cd080;return db[_0x439f('0x37')][_0x439f('0x51')]({'where':{'id':_0x5b1667['params']['id']}})['then'](handleEntityNotFound(_0x3950f4,null))[_0x439f('0x2d')](saveUpdates(_0x5b1667[_0x439f('0x56')],null))[_0x439f('0x2d')](function(_0xe22ffc){if(_0xe22ffc){_0x2cd080=_0xe22ffc;return db['Trunk']['findAll']({'raw':!![]});}})[_0x439f('0x2d')](function(_0x151e71){if(_0x151e71){var _0x3f66ea=fs[_0x439f('0x5f')](path[_0x439f('0x60')](config[_0x439f('0x63')],_0x439f('0x61')),_0x439f('0x62'));var _0x9e12e7=fs[_0x439f('0x5f')](path[_0x439f('0x60')](config[_0x439f('0x63')],'server/files/templates/registry.ejs'),'utf8');var _0x1e60a3=ejs[_0x439f('0x65')](_0x3f66ea,{'trunks':_0x151e71||[]});fs[_0x439f('0x66')](_0x439f('0x67'),_0x1e60a3);var _0x358322=ejs[_0x439f('0x65')](_0x9e12e7,{'trunks':_0x151e71||[]});fs['writeFileSync'](_0x439f('0x69'),_0x358322);return respondWithRpcPromise(_0x439f('0x6a'),'update',{'module':'chan_sip.so'});}return null;})[_0x439f('0x2d')](function(_0x466f68){if(_0x466f68){return _0x2cd080;}})[_0x439f('0x2d')](respondWithResult(_0x3950f4,null))['catch'](handleError(_0x3950f4,null));};exports[_0x439f('0x2e')]=function(_0x41316d,_0x336447,_0x176603){var _0x40a789;return db[_0x439f('0x37')][_0x439f('0x51')]({'where':{'id':_0x41316d[_0x439f('0x4f')]['id']}})[_0x439f('0x2d')](handleEntityNotFound(_0x336447,null))[_0x439f('0x2d')](removeEntity(_0x336447,null))[_0x439f('0x2d')](function(){return db[_0x439f('0x37')][_0x439f('0x4e')]({'raw':!![]});})['then'](function(_0x5b7a7e){var _0x39efdb=fs[_0x439f('0x5f')](path[_0x439f('0x60')](config['root'],_0x439f('0x61')),'utf8');var _0x57eef7=fs[_0x439f('0x5f')](path[_0x439f('0x60')](config[_0x439f('0x63')],_0x439f('0x64')),_0x439f('0x62'));var _0x39a3ab=ejs[_0x439f('0x65')](_0x39efdb,{'trunks':_0x5b7a7e});var _0x4b8294=ejs[_0x439f('0x65')](_0x57eef7,{'trunks':_0x5b7a7e});fs[_0x439f('0x66')](_0x439f('0x67'),_0x39a3ab);fs[_0x439f('0x66')](_0x439f('0x69'),_0x4b8294);return respondWithRpcPromise(_0x439f('0x6a'),_0x439f('0x2e'),{'module':'chan_sip.so'});})[_0x439f('0x21')](handleError(_0x336447,null));};