586532ec7f6fb72d140c986d953a462b19abf3d0
[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 _0xa785=['registry','Reload','chan_sip.so','role','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_registers.conf','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','update','get','Trunks','UserProfileResource','destroy','end','name','index','map','Trunk','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','includeAll','include','findAll','show','find','clone','params','options','omit','updatedAt','body','createdAt','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf'];(function(_0x3740fe,_0x6c543c){var _0x55492b=function(_0x1f851f){while(--_0x1f851f){_0x3740fe['push'](_0x3740fe['shift']());}};_0x55492b(++_0x6c543c);}(_0xa785,0x77));var _0x5a78=function(_0x3f3f06,_0x581e5b){_0x3f3f06=_0x3f3f06-0x0;var _0x140feb=_0xa785[_0x3f3f06];return _0x140feb;};'use strict';var pdf=require(_0x5a78('0x0'));var emlformat=require(_0x5a78('0x1'));var rimraf=require(_0x5a78('0x2'));var zipdir=require(_0x5a78('0x3'));var jsonpatch=require(_0x5a78('0x4'));var rp=require(_0x5a78('0x5'));var moment=require(_0x5a78('0x6'));var BPromise=require(_0x5a78('0x7'));var Mustache=require(_0x5a78('0x8'));var util=require(_0x5a78('0x9'));var path=require('path');var sox=require(_0x5a78('0xa'));var csv=require(_0x5a78('0xb'));var ejs=require(_0x5a78('0xc'));var fs=require('fs');var _=require(_0x5a78('0xd'));var squel=require(_0x5a78('0xe'));var crypto=require(_0x5a78('0xf'));var jsforce=require(_0x5a78('0x10'));var deskjs=require(_0x5a78('0x11'));var toCsv=require('to-csv');var querystring=require(_0x5a78('0x12'));var Papa=require(_0x5a78('0x13'));var Redis=require(_0x5a78('0x14'));var authService=require(_0x5a78('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0x5a78('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5a78('0x17'))(_0x5a78('0x18'));var utils=require(_0x5a78('0x19'));var config=require(_0x5a78('0x1a'));var licenseUtil=require(_0x5a78('0x1b'));var db=require(_0x5a78('0x1c'))['db'];var jayson=require(_0x5a78('0x1d'));var client=jayson[_0x5a78('0x1e')][_0x5a78('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x18296b,_0x466017,_0xd26b5a,_0x186287){return new BPromise(function(_0x24e1d6,_0x32b0da){var _0x322860=_0x186287||client;return _0x322860[_0x5a78('0x20')](_0x18296b,_0xd26b5a)[_0x5a78('0x21')](function(_0x2a9d0b){logger['info'](_0x5a78('0x22'),_0x466017,_0x5a78('0x23'));logger['debug'](_0x5a78('0x24'),_0x466017,_0x5a78('0x23'),JSON[_0x5a78('0x25')](_0x2a9d0b));if(_0x2a9d0b['error']){if(_0x2a9d0b[_0x5a78('0x26')]['code']===0x1f4){logger[_0x5a78('0x26')](_0x5a78('0x22'),_0x466017,_0x2a9d0b[_0x5a78('0x26')]['message']);return _0x32b0da(_0x2a9d0b[_0x5a78('0x26')]['message']);}logger[_0x5a78('0x26')](_0x5a78('0x22'),_0x466017,_0x2a9d0b['error'][_0x5a78('0x27')]);return _0x24e1d6(_0x2a9d0b[_0x5a78('0x26')][_0x5a78('0x27')]);}else{logger[_0x5a78('0x28')](_0x5a78('0x22'),_0x466017,_0x5a78('0x23'));_0x24e1d6(_0x2a9d0b[_0x5a78('0x29')][_0x5a78('0x27')]);}})[_0x5a78('0x2a')](function(_0x34af2f){logger['error'](_0x5a78('0x22'),_0x466017,_0x34af2f);_0x32b0da(_0x34af2f);});});}function respondWithStatusCode(_0x222ead,_0x27a88e){_0x27a88e=_0x27a88e||0xcc;return function(_0x45597e){if(_0x45597e){return _0x222ead[_0x5a78('0x2b')](_0x27a88e);}return _0x222ead[_0x5a78('0x2c')](_0x27a88e)['end']();};}function respondWithResult(_0x5e35c7,_0xe36c5e){_0xe36c5e=_0xe36c5e||0xc8;return function(_0x1916b8){if(_0x1916b8){return _0x5e35c7[_0x5a78('0x2c')](_0xe36c5e)[_0x5a78('0x2d')](_0x1916b8);}};}function respondWithFilteredResult(_0xf965f9,_0x2d567e){return function(_0x7866a6){if(_0x7866a6){var _0x5f3232=_0x7866a6[_0x5a78('0x2e')],_0x163e4e=_0x2d567e[_0x5a78('0x2f')],_0x17467c=_0x2d567e['offset']+_0x2d567e[_0x5a78('0x30')],_0x9a7154;if(_0x17467c>=_0x5f3232){_0x17467c=_0x5f3232;_0x9a7154=0xc8;}else{_0x9a7154=0xce;}_0xf965f9[_0x5a78('0x2c')](_0x9a7154);return _0xf965f9['set'](_0x5a78('0x31'),_0x163e4e+'-'+_0x17467c+'/'+_0x5f3232)[_0x5a78('0x2d')](_0x7866a6);}return null;};}function patchUpdates(_0x2a94f5){return function(_0x395bf4){try{jsonpatch[_0x5a78('0x32')](_0x395bf4,_0x2a94f5,!![]);}catch(_0x40d498){return BPromise[_0x5a78('0x33')](_0x40d498);}return _0x395bf4['save']();};}function saveUpdates(_0x3f8fbb,_0x704f64){return function(_0x5a3d14){if(_0x5a3d14){return _0x5a3d14[_0x5a78('0x34')](_0x3f8fbb)[_0x5a78('0x21')](function(_0x1b1b3a){return _0x1b1b3a;});}return null;};}function removeEntity(_0x4b22eb,_0x3f7ef0){return function(_0x478a66){if(_0x478a66){return _0x478a66['destroy']()[_0x5a78('0x21')](function(){var _0x23e848=_0x478a66[_0x5a78('0x35')]({'plain':!![]});var _0x1facc0=_0x5a78('0x36');return db[_0x5a78('0x37')][_0x5a78('0x38')]({'where':{'type':_0x1facc0,'resourceId':_0x23e848['id']}})['then'](function(){return _0x478a66;});})['then'](function(){_0x4b22eb['status'](0xcc)[_0x5a78('0x39')]();});}};}function handleEntityNotFound(_0x1bd102,_0x4b3a39){return function(_0x1c7555){if(!_0x1c7555){_0x1bd102[_0x5a78('0x2b')](0x194);}return _0x1c7555;};}function handleError(_0xf3e923,_0x5c0011){_0x5c0011=_0x5c0011||0x1f4;return function(_0x287342){logger[_0x5a78('0x26')](_0x287342['stack']);if(_0x287342[_0x5a78('0x3a')]){delete _0x287342[_0x5a78('0x3a')];}_0xf3e923[_0x5a78('0x2c')](_0x5c0011)['send'](_0x287342);};}exports[_0x5a78('0x3b')]=function(_0x12a05a,_0x373e96){var _0x1262bb={},_0x104cc2={},_0x391739={'count':0x0,'rows':[]};var _0x7c9f53=_[_0x5a78('0x3c')](db[_0x5a78('0x3d')][_0x5a78('0x3e')],function(_0x4220f2){return{'name':_0x4220f2[_0x5a78('0x3f')],'type':_0x4220f2[_0x5a78('0x40')][_0x5a78('0x41')]};});_0x104cc2[_0x5a78('0x42')]=_[_0x5a78('0x3c')](_0x7c9f53,_0x5a78('0x3a'));_0x104cc2[_0x5a78('0x43')]=_[_0x5a78('0x44')](_0x12a05a['query']);_0x104cc2[_0x5a78('0x45')]=_[_0x5a78('0x46')](_0x104cc2['model'],_0x104cc2[_0x5a78('0x43')]);_0x1262bb[_0x5a78('0x47')]=_[_0x5a78('0x46')](_0x104cc2[_0x5a78('0x42')],qs[_0x5a78('0x48')](_0x12a05a[_0x5a78('0x43')][_0x5a78('0x48')]));_0x1262bb[_0x5a78('0x47')]=_0x1262bb['attributes'][_0x5a78('0x49')]?_0x1262bb[_0x5a78('0x47')]:_0x104cc2[_0x5a78('0x42')];if(!_0x12a05a[_0x5a78('0x43')][_0x5a78('0x4a')](_0x5a78('0x4b'))){_0x1262bb['limit']=qs[_0x5a78('0x30')](_0x12a05a['query'][_0x5a78('0x30')]);_0x1262bb[_0x5a78('0x2f')]=qs[_0x5a78('0x2f')](_0x12a05a[_0x5a78('0x43')][_0x5a78('0x2f')]);}_0x1262bb['order']=qs[_0x5a78('0x4c')](_0x12a05a[_0x5a78('0x43')][_0x5a78('0x4c')]);_0x1262bb[_0x5a78('0x4d')]=qs['filters'](_[_0x5a78('0x4e')](_0x12a05a[_0x5a78('0x43')],_0x104cc2[_0x5a78('0x45')]),_0x7c9f53);if(_0x12a05a['query'][_0x5a78('0x4f')]){_0x1262bb[_0x5a78('0x4d')]=_[_0x5a78('0x50')](_0x1262bb['where'],{'$or':_[_0x5a78('0x3c')](_0x7c9f53,function(_0x25c590){if(_0x25c590[_0x5a78('0x40')]!=='VIRTUAL'){var _0x94b80={};_0x94b80[_0x25c590[_0x5a78('0x3a')]]={'$like':'%'+_0x12a05a[_0x5a78('0x43')][_0x5a78('0x4f')]+'%'};return _0x94b80;}})});}_0x1262bb=_[_0x5a78('0x50')]({},_0x1262bb,_0x12a05a['options']);var _0x31e1b1={'where':_0x1262bb[_0x5a78('0x4d')]};return db[_0x5a78('0x3d')][_0x5a78('0x2e')](_0x31e1b1)[_0x5a78('0x21')](function(_0x565447){_0x391739['count']=_0x565447;if(_0x12a05a[_0x5a78('0x43')][_0x5a78('0x51')]){_0x1262bb[_0x5a78('0x52')]=[{'all':!![]}];}return db['Trunk'][_0x5a78('0x53')](_0x1262bb);})['then'](function(_0x1976f8){_0x391739['rows']=_0x1976f8;return _0x391739;})['then'](respondWithFilteredResult(_0x373e96,_0x1262bb))['catch'](handleError(_0x373e96,null));};exports[_0x5a78('0x54')]=function(_0x399907,_0x2b477b){var _0x21bbb4={'raw':![],'where':{'id':_0x399907['params']['id']}},_0x135309={};_0x135309[_0x5a78('0x42')]=_[_0x5a78('0x44')](db['Trunk'][_0x5a78('0x3e')]);_0x135309[_0x5a78('0x43')]=_[_0x5a78('0x44')](_0x399907[_0x5a78('0x43')]);_0x135309[_0x5a78('0x45')]=_['intersection'](_0x135309[_0x5a78('0x42')],_0x135309[_0x5a78('0x43')]);_0x21bbb4[_0x5a78('0x47')]=_['intersection'](_0x135309[_0x5a78('0x42')],qs['fields'](_0x399907[_0x5a78('0x43')][_0x5a78('0x48')]));_0x21bbb4[_0x5a78('0x47')]=_0x21bbb4[_0x5a78('0x47')]['length']?_0x21bbb4[_0x5a78('0x47')]:_0x135309[_0x5a78('0x42')];if(_0x399907[_0x5a78('0x43')]['includeAll']){_0x21bbb4['include']=[{'all':!![]}];}_0x21bbb4=_[_0x5a78('0x50')]({},_0x21bbb4,_0x399907['options']);return db[_0x5a78('0x3d')][_0x5a78('0x55')](_0x21bbb4)[_0x5a78('0x21')](handleEntityNotFound(_0x2b477b,null))[_0x5a78('0x21')](respondWithResult(_0x2b477b,null))['catch'](handleError(_0x2b477b,null));};exports[_0x5a78('0x56')]=function(_0x253164,_0x5ddf61){var _0x563613={'where':{'id':_0x253164[_0x5a78('0x57')]['id']}},_0x3e3578={};_0x3e3578[_0x5a78('0x42')]=_[_0x5a78('0x44')](db[_0x5a78('0x3d')][_0x5a78('0x3e')]);_0x563613['attributes']=_[_0x5a78('0x46')](_0x3e3578[_0x5a78('0x42')],qs[_0x5a78('0x48')](_0x253164[_0x5a78('0x43')][_0x5a78('0x48')]));_0x563613[_0x5a78('0x47')]=_0x563613[_0x5a78('0x47')][_0x5a78('0x49')]?_0x563613[_0x5a78('0x47')]:_0x3e3578[_0x5a78('0x42')];if(_0x253164[_0x5a78('0x43')][_0x5a78('0x51')]){_0x563613['include']=[{'all':!![]}];}_0x563613=_[_0x5a78('0x50')]({},_0x563613,_0x253164[_0x5a78('0x58')]);return db[_0x5a78('0x3d')][_0x5a78('0x55')](_0x563613)[_0x5a78('0x21')](handleEntityNotFound(_0x5ddf61,null))[_0x5a78('0x21')](function(_0x3daa57){if(_0x3daa57){var _0xbb3ac8=_0x3daa57[_0x5a78('0x35')]({'plain':!![]});_0xbb3ac8=qs[_0x5a78('0x59')](_0xbb3ac8,['id','createdAt',_0x5a78('0x5a')]);_0x253164[_0x5a78('0x5b')]=_[_0x5a78('0x59')](_0x253164[_0x5a78('0x5b')],['id',_0x5a78('0x5c'),_0x5a78('0x5a')]);return db['Trunk'][_0x5a78('0x5d')](_[_0x5a78('0x50')](_0xbb3ac8,_0x253164['body']),{'include':_0x253164[_0x5a78('0x43')][_0x5a78('0x51')]?[{'all':!![]}]:undefined})[_0x5a78('0x21')](function(_0xc5e941){var _0x2c0ea0=_0x253164[_0x5a78('0x5e')][_0x5a78('0x35')]({'plain':!![]});if(!_0x2c0ea0)throw new Error(_0x5a78('0x5f'));if(_0x2c0ea0['role']===_0x5a78('0x5e')){var _0x978f25=_0xc5e941['get']({'plain':!![]});var _0x3203cc=_0x5a78('0x36');return db[_0x5a78('0x60')][_0x5a78('0x55')]({'where':{'name':_0x3203cc,'userProfileId':_0x2c0ea0[_0x5a78('0x61')]},'raw':!![]})[_0x5a78('0x21')](function(_0x57bccc){if(_0x57bccc&&_0x57bccc['autoAssociation']===0x0){return db['UserProfileResource'][_0x5a78('0x5d')]({'name':_0x978f25[_0x5a78('0x3a')],'resourceId':_0x978f25['id'],'type':_0x57bccc['name'],'sectionId':_0x57bccc['id']},{})[_0x5a78('0x21')](function(){return _0xc5e941;});}else{return _0xc5e941;}})[_0x5a78('0x2a')](function(_0x471586){logger[_0x5a78('0x26')](_0x5a78('0x62'),_0x471586);throw _0x471586;});}return _0xc5e941;});}})[_0x5a78('0x21')](respondWithResult(_0x5ddf61,0xc9))[_0x5a78('0x2a')](handleError(_0x5ddf61,null));};exports[_0x5a78('0x5d')]=function(_0x189170,_0x57d548,_0x5db633){var _0x5fb428;return db[_0x5a78('0x3d')][_0x5a78('0x5d')](_0x189170[_0x5a78('0x5b')],{'raw':!![]})[_0x5a78('0x21')](function(_0x5ed484){_0x5fb428=_0x5ed484;return db[_0x5a78('0x3d')][_0x5a78('0x53')]({'raw':!![]});})[_0x5a78('0x21')](function(_0x1b0e63){var _0x50d62d=fs[_0x5a78('0x63')](path[_0x5a78('0x64')](config[_0x5a78('0x65')],_0x5a78('0x66')),_0x5a78('0x67'));var _0x394b16=fs[_0x5a78('0x63')](path[_0x5a78('0x64')](config['root'],'server/files/templates/registry.ejs'),_0x5a78('0x67'));var _0x377e7d=ejs[_0x5a78('0x68')](_0x50d62d,{'trunks':_0x1b0e63||[]});fs[_0x5a78('0x69')](_0x5a78('0x6a'),_0x377e7d);if(_0x5fb428[_0x5a78('0x6b')]){var _0x38abb8=ejs['render'](_0x394b16,{'trunks':_0x1b0e63||[]});fs[_0x5a78('0x69')]('/etc/asterisk/sip_xcally_registers.conf',_0x38abb8);}})['then'](function(){return respondWithRpcPromise(_0x5a78('0x6c'),_0x5a78('0x5d'),{'module':_0x5a78('0x6d')});})[_0x5a78('0x21')](function(){var _0xb61dd7=_0x189170[_0x5a78('0x5e')][_0x5a78('0x35')]({'plain':!![]});if(!_0xb61dd7)throw new Error(_0x5a78('0x5f'));if(_0xb61dd7[_0x5a78('0x6e')]==='user'){var _0x55ee5c=_0x5fb428[_0x5a78('0x35')]({'plain':!![]});return db[_0x5a78('0x60')][_0x5a78('0x55')]({'where':{'name':'Trunks','userProfileId':_0xb61dd7[_0x5a78('0x61')]},'raw':!![]})[_0x5a78('0x21')](function(_0x276523){if(_0x276523&&_0x276523['autoAssociation']===0x0){return db[_0x5a78('0x37')][_0x5a78('0x5d')]({'name':_0x55ee5c[_0x5a78('0x3a')],'resourceId':_0x55ee5c['id'],'type':_0x276523[_0x5a78('0x3a')],'sectionId':_0x276523['id']},{})['then'](function(){return _0x5fb428;});}else{return _0x5fb428;}})[_0x5a78('0x2a')](function(_0x276980){logger['error'](_0x5a78('0x62'),_0x276980);throw _0x276980;});}return _0x5fb428;})[_0x5a78('0x21')](respondWithResult(_0x57d548,0xc9))[_0x5a78('0x2a')](handleError(_0x57d548,null));};exports[_0x5a78('0x34')]=function(_0x16c4d0,_0x4afc23,_0x1aabb8){var _0x1d63ec;return db[_0x5a78('0x3d')][_0x5a78('0x55')]({'where':{'id':_0x16c4d0[_0x5a78('0x57')]['id']}})['then'](handleEntityNotFound(_0x4afc23,null))[_0x5a78('0x21')](saveUpdates(_0x16c4d0['body'],null))[_0x5a78('0x21')](function(_0x4f280f){if(_0x4f280f){_0x1d63ec=_0x4f280f;return db[_0x5a78('0x3d')][_0x5a78('0x53')]({'raw':!![]});}})[_0x5a78('0x21')](function(_0x8e3c53){if(_0x8e3c53){var _0x4fca0a=fs[_0x5a78('0x63')](path[_0x5a78('0x64')](config[_0x5a78('0x65')],'server/files/templates/trunk.ejs'),'utf8');var _0x1195c8=fs[_0x5a78('0x63')](path['join'](config['root'],_0x5a78('0x6f')),'utf8');var _0x407bd0=ejs[_0x5a78('0x68')](_0x4fca0a,{'trunks':_0x8e3c53||[]});fs[_0x5a78('0x69')](_0x5a78('0x6a'),_0x407bd0);var _0x8ec5da=ejs[_0x5a78('0x68')](_0x1195c8,{'trunks':_0x8e3c53||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x8ec5da);return respondWithRpcPromise('Reload','update',{'module':_0x5a78('0x6d')});}return null;})[_0x5a78('0x21')](function(_0x15b7e1){if(_0x15b7e1){return _0x1d63ec;}})['then'](respondWithResult(_0x4afc23,null))[_0x5a78('0x2a')](handleError(_0x4afc23,null));};exports[_0x5a78('0x38')]=function(_0x2bd017,_0x2296cb,_0x36cbd0){var _0x51031c;return db['Trunk'][_0x5a78('0x55')]({'where':{'id':_0x2bd017[_0x5a78('0x57')]['id']}})[_0x5a78('0x21')](handleEntityNotFound(_0x2296cb,null))[_0x5a78('0x21')](removeEntity(_0x2296cb,null))[_0x5a78('0x21')](function(){return db[_0x5a78('0x3d')][_0x5a78('0x53')]({'raw':!![]});})[_0x5a78('0x21')](function(_0x2ba25c){var _0x4f048c=fs[_0x5a78('0x63')](path['join'](config[_0x5a78('0x65')],_0x5a78('0x66')),_0x5a78('0x67'));var _0x1a6b46=fs[_0x5a78('0x63')](path['join'](config['root'],_0x5a78('0x6f')),_0x5a78('0x67'));var _0xdf9eed=ejs[_0x5a78('0x68')](_0x4f048c,{'trunks':_0x2ba25c});var _0x56e55e=ejs[_0x5a78('0x68')](_0x1a6b46,{'trunks':_0x2ba25c});fs[_0x5a78('0x69')](_0x5a78('0x6a'),_0xdf9eed);fs[_0x5a78('0x69')](_0x5a78('0x70'),_0x56e55e);return respondWithRpcPromise('Reload',_0x5a78('0x38'),{'module':_0x5a78('0x6d')});})[_0x5a78('0x2a')](handleError(_0x2296cb,null));};