df2ff2dc51c14f72d53d47c69d62015da58d32c9
[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 _0xd839=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','code','error','info','result','message','catch','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','Trunks','sendStatus','stack','name','send','index','map','Trunk','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','options','includeAll','include','findAll','rows','show','find','clone','get','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','UserProfileResource','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','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','role','userProfileId','params'];(function(_0x849652,_0xe4978a){var _0x42bdaa=function(_0x41b687){while(--_0x41b687){_0x849652['push'](_0x849652['shift']());}};_0x42bdaa(++_0xe4978a);}(_0xd839,0x73));var _0x9d83=function(_0x308e65,_0x144152){_0x308e65=_0x308e65-0x0;var _0x3bce00=_0xd839[_0x308e65];return _0x3bce00;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9d83('0x0'));var rimraf=require(_0x9d83('0x1'));var zipdir=require(_0x9d83('0x2'));var jsonpatch=require(_0x9d83('0x3'));var rp=require(_0x9d83('0x4'));var moment=require(_0x9d83('0x5'));var BPromise=require(_0x9d83('0x6'));var Mustache=require(_0x9d83('0x7'));var util=require(_0x9d83('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x9d83('0x9'));var fs=require('fs');var _=require(_0x9d83('0xa'));var squel=require(_0x9d83('0xb'));var crypto=require(_0x9d83('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9d83('0xd'));var Papa=require(_0x9d83('0xe'));var Redis=require(_0x9d83('0xf'));var authService=require(_0x9d83('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x9d83('0x11'));var hardwareService=require(_0x9d83('0x12'));var logger=require(_0x9d83('0x13'))(_0x9d83('0x14'));var utils=require(_0x9d83('0x15'));var config=require(_0x9d83('0x16'));var licenseUtil=require(_0x9d83('0x17'));var db=require(_0x9d83('0x18'))['db'];var jayson=require(_0x9d83('0x19'));var client=jayson[_0x9d83('0x1a')][_0x9d83('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x28dcd1,_0xa97c02,_0x384606,_0x1ca3a9){return new BPromise(function(_0x5287b2,_0x22c4da){var _0x4b1aa5=_0x1ca3a9||client;return _0x4b1aa5[_0x9d83('0x1c')](_0x28dcd1,_0x384606)['then'](function(_0xe13e63){logger['info'](_0x9d83('0x1d'),_0xa97c02,_0x9d83('0x1e'));logger[_0x9d83('0x1f')](_0x9d83('0x20'),_0xa97c02,_0x9d83('0x1e'),JSON['stringify'](_0xe13e63));if(_0xe13e63['error']){if(_0xe13e63['error'][_0x9d83('0x21')]===0x1f4){logger['error'](_0x9d83('0x1d'),_0xa97c02,_0xe13e63[_0x9d83('0x22')]['message']);return _0x22c4da(_0xe13e63['error']['message']);}logger[_0x9d83('0x22')](_0x9d83('0x1d'),_0xa97c02,_0xe13e63[_0x9d83('0x22')]['message']);return _0x5287b2(_0xe13e63['error']['message']);}else{logger[_0x9d83('0x23')]('Trunk,\x20%s,\x20%s',_0xa97c02,_0x9d83('0x1e'));_0x5287b2(_0xe13e63[_0x9d83('0x24')][_0x9d83('0x25')]);}})[_0x9d83('0x26')](function(_0xee8fda){logger['error'](_0x9d83('0x1d'),_0xa97c02,_0xee8fda);_0x22c4da(_0xee8fda);});});}function respondWithStatusCode(_0xa3b15a,_0x122a3c){_0x122a3c=_0x122a3c||0xcc;return function(_0x339790){if(_0x339790){return _0xa3b15a['sendStatus'](_0x122a3c);}return _0xa3b15a[_0x9d83('0x27')](_0x122a3c)[_0x9d83('0x28')]();};}function respondWithResult(_0x3b4c6c,_0x143fff){_0x143fff=_0x143fff||0xc8;return function(_0x595573){if(_0x595573){return _0x3b4c6c['status'](_0x143fff)['json'](_0x595573);}};}function respondWithFilteredResult(_0x2e86f0,_0x40fb39){return function(_0x408899){if(_0x408899){var _0x52e538=_0x408899[_0x9d83('0x29')],_0xc6809e=_0x40fb39[_0x9d83('0x2a')],_0x59d4dc=_0x40fb39[_0x9d83('0x2a')]+_0x40fb39[_0x9d83('0x2b')],_0x453223;if(_0x59d4dc>=_0x52e538){_0x59d4dc=_0x52e538;_0x453223=0xc8;}else{_0x453223=0xce;}_0x2e86f0['status'](_0x453223);return _0x2e86f0[_0x9d83('0x2c')](_0x9d83('0x2d'),_0xc6809e+'-'+_0x59d4dc+'/'+_0x52e538)['json'](_0x408899);}return null;};}function patchUpdates(_0x429d5e){return function(_0x50560b){try{jsonpatch[_0x9d83('0x2e')](_0x50560b,_0x429d5e,!![]);}catch(_0x2a46b5){return BPromise[_0x9d83('0x2f')](_0x2a46b5);}return _0x50560b[_0x9d83('0x30')]();};}function saveUpdates(_0xb6e506,_0x517998){return function(_0x5161dd){if(_0x5161dd){return _0x5161dd[_0x9d83('0x31')](_0xb6e506)['then'](function(_0x1cf3f7){return _0x1cf3f7;});}return null;};}function removeEntity(_0x5a1c6e,_0x552b9b){return function(_0x29a541){if(_0x29a541){return _0x29a541[_0x9d83('0x32')]()[_0x9d83('0x33')](function(){var _0x1d0d73=_0x29a541['get']({'plain':!![]});var _0x449a28=_0x9d83('0x34');return db['UserProfileResource'][_0x9d83('0x32')]({'where':{'type':_0x449a28,'resourceId':_0x1d0d73['id']}})[_0x9d83('0x33')](function(){return _0x29a541;});})['then'](function(){_0x5a1c6e[_0x9d83('0x27')](0xcc)[_0x9d83('0x28')]();});}};}function handleEntityNotFound(_0x5ae8a3,_0x2293e3){return function(_0x3e5288){if(!_0x3e5288){_0x5ae8a3[_0x9d83('0x35')](0x194);}return _0x3e5288;};}function handleError(_0x61642b,_0x48352c){_0x48352c=_0x48352c||0x1f4;return function(_0x559064){logger[_0x9d83('0x22')](_0x559064[_0x9d83('0x36')]);if(_0x559064['name']){delete _0x559064[_0x9d83('0x37')];}_0x61642b['status'](_0x48352c)[_0x9d83('0x38')](_0x559064);};}exports[_0x9d83('0x39')]=function(_0x17eb4a,_0x297297){var _0x479a20={},_0x20425f={},_0x8482fb={'count':0x0,'rows':[]};var _0x269630=_[_0x9d83('0x3a')](db[_0x9d83('0x3b')][_0x9d83('0x3c')],function(_0x206964){return{'name':_0x206964[_0x9d83('0x3d')],'type':_0x206964[_0x9d83('0x3e')][_0x9d83('0x3f')]};});_0x20425f[_0x9d83('0x40')]=_[_0x9d83('0x3a')](_0x269630,_0x9d83('0x37'));_0x20425f['query']=_[_0x9d83('0x41')](_0x17eb4a[_0x9d83('0x42')]);_0x20425f['filters']=_[_0x9d83('0x43')](_0x20425f[_0x9d83('0x40')],_0x20425f['query']);_0x479a20[_0x9d83('0x44')]=_[_0x9d83('0x43')](_0x20425f[_0x9d83('0x40')],qs[_0x9d83('0x45')](_0x17eb4a[_0x9d83('0x42')][_0x9d83('0x45')]));_0x479a20[_0x9d83('0x44')]=_0x479a20['attributes'][_0x9d83('0x46')]?_0x479a20['attributes']:_0x20425f[_0x9d83('0x40')];if(!_0x17eb4a[_0x9d83('0x42')][_0x9d83('0x47')](_0x9d83('0x48'))){_0x479a20['limit']=qs[_0x9d83('0x2b')](_0x17eb4a[_0x9d83('0x42')][_0x9d83('0x2b')]);_0x479a20[_0x9d83('0x2a')]=qs[_0x9d83('0x2a')](_0x17eb4a['query']['offset']);}_0x479a20[_0x9d83('0x49')]=qs[_0x9d83('0x4a')](_0x17eb4a[_0x9d83('0x42')]['sort']);_0x479a20[_0x9d83('0x4b')]=qs[_0x9d83('0x4c')](_[_0x9d83('0x4d')](_0x17eb4a[_0x9d83('0x42')],_0x20425f[_0x9d83('0x4c')]),_0x269630);if(_0x17eb4a['query']['filter']){_0x479a20[_0x9d83('0x4b')]=_[_0x9d83('0x4e')](_0x479a20[_0x9d83('0x4b')],{'$or':_[_0x9d83('0x3a')](_0x269630,function(_0x16c60c){if(_0x16c60c[_0x9d83('0x3e')]!=='VIRTUAL'){var _0xbc0470={};_0xbc0470[_0x16c60c[_0x9d83('0x37')]]={'$like':'%'+_0x17eb4a[_0x9d83('0x42')][_0x9d83('0x4f')]+'%'};return _0xbc0470;}})});}_0x479a20=_['merge']({},_0x479a20,_0x17eb4a[_0x9d83('0x50')]);var _0x16a19b={'where':_0x479a20[_0x9d83('0x4b')]};return db['Trunk'][_0x9d83('0x29')](_0x16a19b)[_0x9d83('0x33')](function(_0x4493e8){_0x8482fb[_0x9d83('0x29')]=_0x4493e8;if(_0x17eb4a[_0x9d83('0x42')][_0x9d83('0x51')]){_0x479a20[_0x9d83('0x52')]=[{'all':!![]}];}return db[_0x9d83('0x3b')][_0x9d83('0x53')](_0x479a20);})[_0x9d83('0x33')](function(_0x4175e4){_0x8482fb[_0x9d83('0x54')]=_0x4175e4;return _0x8482fb;})['then'](respondWithFilteredResult(_0x297297,_0x479a20))[_0x9d83('0x26')](handleError(_0x297297,null));};exports[_0x9d83('0x55')]=function(_0xd8e1a4,_0xb54d2b){var _0x1215f0={'raw':![],'where':{'id':_0xd8e1a4['params']['id']}},_0x2d18e6={};_0x2d18e6[_0x9d83('0x40')]=_[_0x9d83('0x41')](db[_0x9d83('0x3b')][_0x9d83('0x3c')]);_0x2d18e6['query']=_['keys'](_0xd8e1a4[_0x9d83('0x42')]);_0x2d18e6['filters']=_['intersection'](_0x2d18e6[_0x9d83('0x40')],_0x2d18e6[_0x9d83('0x42')]);_0x1215f0[_0x9d83('0x44')]=_[_0x9d83('0x43')](_0x2d18e6[_0x9d83('0x40')],qs[_0x9d83('0x45')](_0xd8e1a4[_0x9d83('0x42')][_0x9d83('0x45')]));_0x1215f0['attributes']=_0x1215f0['attributes'][_0x9d83('0x46')]?_0x1215f0['attributes']:_0x2d18e6[_0x9d83('0x40')];if(_0xd8e1a4[_0x9d83('0x42')][_0x9d83('0x51')]){_0x1215f0[_0x9d83('0x52')]=[{'all':!![]}];}_0x1215f0=_['merge']({},_0x1215f0,_0xd8e1a4[_0x9d83('0x50')]);return db[_0x9d83('0x3b')][_0x9d83('0x56')](_0x1215f0)[_0x9d83('0x33')](handleEntityNotFound(_0xb54d2b,null))[_0x9d83('0x33')](respondWithResult(_0xb54d2b,null))[_0x9d83('0x26')](handleError(_0xb54d2b,null));};exports[_0x9d83('0x57')]=function(_0x2d0c8d,_0x201e22){var _0xa94d69={'where':{'id':_0x2d0c8d['params']['id']}},_0x5558c5={};_0x5558c5['model']=_['keys'](db[_0x9d83('0x3b')][_0x9d83('0x3c')]);_0xa94d69[_0x9d83('0x44')]=_[_0x9d83('0x43')](_0x5558c5[_0x9d83('0x40')],qs[_0x9d83('0x45')](_0x2d0c8d['query'][_0x9d83('0x45')]));_0xa94d69['attributes']=_0xa94d69['attributes']['length']?_0xa94d69[_0x9d83('0x44')]:_0x5558c5[_0x9d83('0x40')];if(_0x2d0c8d[_0x9d83('0x42')][_0x9d83('0x51')]){_0xa94d69[_0x9d83('0x52')]=[{'all':!![]}];}_0xa94d69=_[_0x9d83('0x4e')]({},_0xa94d69,_0x2d0c8d[_0x9d83('0x50')]);return db[_0x9d83('0x3b')][_0x9d83('0x56')](_0xa94d69)['then'](handleEntityNotFound(_0x201e22,null))['then'](function(_0x370f69){if(_0x370f69){var _0x50d734=_0x370f69[_0x9d83('0x58')]({'plain':!![]});_0x50d734=qs[_0x9d83('0x59')](_0x50d734,['id',_0x9d83('0x5a'),_0x9d83('0x5b')]);_0x2d0c8d['body']=_[_0x9d83('0x59')](_0x2d0c8d['body'],['id','createdAt','updatedAt']);return db[_0x9d83('0x3b')][_0x9d83('0x5c')](_['merge'](_0x50d734,_0x2d0c8d[_0x9d83('0x5d')]),{'include':_0x2d0c8d[_0x9d83('0x42')]['includeAll']?[{'all':!![]}]:undefined})[_0x9d83('0x33')](function(_0x4f45b1){var _0x347db6=_0x2d0c8d[_0x9d83('0x5e')]['get']({'plain':!![]});if(!_0x347db6)throw new Error(_0x9d83('0x5f'));if(_0x347db6['role']===_0x9d83('0x5e')){var _0x47f529=_0x4f45b1[_0x9d83('0x58')]({'plain':!![]});var _0x254d37=_0x9d83('0x34');return db[_0x9d83('0x60')][_0x9d83('0x56')]({'where':{'name':_0x254d37,'userProfileId':_0x347db6['userProfileId']},'raw':!![]})['then'](function(_0x42e389){if(_0x42e389&&_0x42e389['autoAssociation']===0x0){return db[_0x9d83('0x61')][_0x9d83('0x5c')]({'name':_0x47f529[_0x9d83('0x37')],'resourceId':_0x47f529['id'],'type':_0x42e389[_0x9d83('0x37')],'sectionId':_0x42e389['id']},{})[_0x9d83('0x33')](function(){return _0x4f45b1;});}else{return _0x4f45b1;}})[_0x9d83('0x26')](function(_0x3813f5){logger[_0x9d83('0x22')](_0x9d83('0x62'),_0x3813f5);throw _0x3813f5;});}return _0x4f45b1;});}})[_0x9d83('0x33')](respondWithResult(_0x201e22,0xc9))[_0x9d83('0x26')](handleError(_0x201e22,null));};exports[_0x9d83('0x5c')]=function(_0xb6788f,_0x32b9af,_0x42849d){var _0x1f25d7;return db[_0x9d83('0x3b')]['create'](_0xb6788f['body'],{'raw':!![]})[_0x9d83('0x33')](function(_0x2dbd40){_0x1f25d7=_0x2dbd40;return db['Trunk']['findAll']({'raw':!![]});})['then'](function(_0x11fd7b){var _0x2afbe9=fs[_0x9d83('0x63')](path[_0x9d83('0x64')](config[_0x9d83('0x65')],_0x9d83('0x66')),_0x9d83('0x67'));var _0x587c88=fs[_0x9d83('0x63')](path[_0x9d83('0x64')](config['root'],_0x9d83('0x68')),_0x9d83('0x67'));var _0x47e72b=ejs[_0x9d83('0x69')](_0x2afbe9,{'trunks':_0x11fd7b||[]});fs[_0x9d83('0x6a')](_0x9d83('0x6b'),_0x47e72b);if(_0x1f25d7[_0x9d83('0x6c')]){var _0x1d9b4f=ejs['render'](_0x587c88,{'trunks':_0x11fd7b||[]});fs['writeFileSync'](_0x9d83('0x6d'),_0x1d9b4f);}})[_0x9d83('0x33')](function(){return respondWithRpcPromise(_0x9d83('0x6e'),_0x9d83('0x5c'),{'module':_0x9d83('0x6f')});})[_0x9d83('0x33')](function(){var _0xe33a55=_0xb6788f[_0x9d83('0x5e')][_0x9d83('0x58')]({'plain':!![]});if(!_0xe33a55)throw new Error(_0x9d83('0x5f'));if(_0xe33a55[_0x9d83('0x70')]===_0x9d83('0x5e')){var _0x3ec4b0=_0x1f25d7[_0x9d83('0x58')]({'plain':!![]});return db[_0x9d83('0x60')][_0x9d83('0x56')]({'where':{'name':_0x9d83('0x34'),'userProfileId':_0xe33a55[_0x9d83('0x71')]},'raw':!![]})[_0x9d83('0x33')](function(_0x280190){if(_0x280190&&_0x280190['autoAssociation']===0x0){return db[_0x9d83('0x61')][_0x9d83('0x5c')]({'name':_0x3ec4b0['name'],'resourceId':_0x3ec4b0['id'],'type':_0x280190[_0x9d83('0x37')],'sectionId':_0x280190['id']},{})[_0x9d83('0x33')](function(){return _0x1f25d7;});}else{return _0x1f25d7;}})[_0x9d83('0x26')](function(_0x3e4e1c){logger['error'](_0x9d83('0x62'),_0x3e4e1c);throw _0x3e4e1c;});}return _0x1f25d7;})[_0x9d83('0x33')](respondWithResult(_0x32b9af,0xc9))[_0x9d83('0x26')](handleError(_0x32b9af,null));};exports[_0x9d83('0x31')]=function(_0x192d70,_0x24491e,_0x25dc87){var _0xbf989f;return db[_0x9d83('0x3b')][_0x9d83('0x56')]({'where':{'id':_0x192d70['params']['id']}})[_0x9d83('0x33')](handleEntityNotFound(_0x24491e,null))[_0x9d83('0x33')](saveUpdates(_0x192d70[_0x9d83('0x5d')],null))[_0x9d83('0x33')](function(_0x2685a1){if(_0x2685a1){_0xbf989f=_0x2685a1;return db[_0x9d83('0x3b')][_0x9d83('0x53')]({'raw':!![]});}})[_0x9d83('0x33')](function(_0x88747e){if(_0x88747e){var _0x793ff0=fs[_0x9d83('0x63')](path[_0x9d83('0x64')](config[_0x9d83('0x65')],_0x9d83('0x66')),_0x9d83('0x67'));var _0x4b6972=fs['readFileSync'](path[_0x9d83('0x64')](config[_0x9d83('0x65')],'server/files/templates/registry.ejs'),_0x9d83('0x67'));var _0x3fec87=ejs[_0x9d83('0x69')](_0x793ff0,{'trunks':_0x88747e||[]});fs['writeFileSync'](_0x9d83('0x6b'),_0x3fec87);var _0x5293f3=ejs[_0x9d83('0x69')](_0x4b6972,{'trunks':_0x88747e||[]});fs[_0x9d83('0x6a')]('/etc/asterisk/sip_xcally_registers.conf',_0x5293f3);return respondWithRpcPromise(_0x9d83('0x6e'),_0x9d83('0x31'),{'module':_0x9d83('0x6f')});}return null;})[_0x9d83('0x33')](function(_0x973f39){if(_0x973f39){return _0xbf989f;}})[_0x9d83('0x33')](respondWithResult(_0x24491e,null))[_0x9d83('0x26')](handleError(_0x24491e,null));};exports[_0x9d83('0x32')]=function(_0x742ca6,_0x53463d,_0x3d78c4){var _0x341743;return db[_0x9d83('0x3b')][_0x9d83('0x56')]({'where':{'id':_0x742ca6[_0x9d83('0x72')]['id']}})['then'](handleEntityNotFound(_0x53463d,null))['then'](removeEntity(_0x53463d,null))['then'](function(){return db['Trunk'][_0x9d83('0x53')]({'raw':!![]});})[_0x9d83('0x33')](function(_0x1cddf6){var _0x24f251=fs[_0x9d83('0x63')](path[_0x9d83('0x64')](config[_0x9d83('0x65')],_0x9d83('0x66')),_0x9d83('0x67'));var _0x4650ef=fs['readFileSync'](path[_0x9d83('0x64')](config[_0x9d83('0x65')],_0x9d83('0x68')),_0x9d83('0x67'));var _0x54fb32=ejs[_0x9d83('0x69')](_0x24f251,{'trunks':_0x1cddf6});var _0x18953e=ejs[_0x9d83('0x69')](_0x4650ef,{'trunks':_0x1cddf6});fs[_0x9d83('0x6a')](_0x9d83('0x6b'),_0x54fb32);fs[_0x9d83('0x6a')](_0x9d83('0x6d'),_0x18953e);return respondWithRpcPromise(_0x9d83('0x6e'),_0x9d83('0x32'),{'module':'chan_sip.so'});})[_0x9d83('0x26')](handleError(_0x53463d,null));};