Built motion from commit (unavailable).|2.5.10
[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 _0x26a2=['api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','message','catch','end','status','json','count','offset','set','apply','reject','save','update','destroy','Trunks','UserProfileResource','sendStatus','stack','name','index','map','rawAttributes','fieldName','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','options','Trunk','rows','show','params','includeAll','find','include','get','createdAt','body','omit','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','/etc/asterisk/sip_xcally_trunks.conf','registry','writeFileSync','Reload','chan_sip.so','user','UserProfileSection','autoAssociation','/etc/asterisk/sip_xcally_registers.conf','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0xa72318,_0x315abf){var _0x608fa8=function(_0x22f3f5){while(--_0x22f3f5){_0xa72318['push'](_0xa72318['shift']());}};_0x608fa8(++_0x315abf);}(_0x26a2,0x137));var _0x226a=function(_0x400d62,_0x36e8ed){_0x400d62=_0x400d62-0x0;var _0xdbcff4=_0x26a2[_0x400d62];return _0xdbcff4;};'use strict';var pdf=require(_0x226a('0x0'));var emlformat=require(_0x226a('0x1'));var rimraf=require(_0x226a('0x2'));var zipdir=require(_0x226a('0x3'));var jsonpatch=require(_0x226a('0x4'));var rp=require('request-promise');var moment=require(_0x226a('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x226a('0x6'));var util=require(_0x226a('0x7'));var path=require(_0x226a('0x8'));var sox=require(_0x226a('0x9'));var csv=require(_0x226a('0xa'));var ejs=require(_0x226a('0xb'));var fs=require('fs');var _=require(_0x226a('0xc'));var squel=require(_0x226a('0xd'));var crypto=require(_0x226a('0xe'));var jsforce=require(_0x226a('0xf'));var deskjs=require(_0x226a('0x10'));var toCsv=require(_0x226a('0xa'));var querystring=require(_0x226a('0x11'));var Papa=require('papaparse');var Redis=require(_0x226a('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x226a('0x13'));var hardwareService=require(_0x226a('0x14'));var logger=require(_0x226a('0x15'))(_0x226a('0x16'));var utils=require('../../config/utils');var config=require(_0x226a('0x17'));var licenseUtil=require(_0x226a('0x18'));var db=require(_0x226a('0x19'))['db'];var jayson=require(_0x226a('0x1a'));var client=jayson[_0x226a('0x1b')][_0x226a('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x23f56b,_0x14f729,_0x4c8e4f,_0x2c8dcb){return new BPromise(function(_0x403995,_0xe0f59){var _0x53bdf1=_0x2c8dcb||client;return _0x53bdf1[_0x226a('0x1d')](_0x23f56b,_0x4c8e4f)[_0x226a('0x1e')](function(_0x5bf8e5){logger[_0x226a('0x1f')](_0x226a('0x20'),_0x14f729,_0x226a('0x21'));logger[_0x226a('0x22')](_0x226a('0x23'),_0x14f729,_0x226a('0x21'),JSON['stringify'](_0x5bf8e5));if(_0x5bf8e5[_0x226a('0x24')]){if(_0x5bf8e5[_0x226a('0x24')]['code']===0x1f4){logger[_0x226a('0x24')](_0x226a('0x20'),_0x14f729,_0x5bf8e5[_0x226a('0x24')][_0x226a('0x25')]);return _0xe0f59(_0x5bf8e5['error'][_0x226a('0x25')]);}logger[_0x226a('0x24')](_0x226a('0x20'),_0x14f729,_0x5bf8e5['error'][_0x226a('0x25')]);return _0x403995(_0x5bf8e5[_0x226a('0x24')][_0x226a('0x25')]);}else{logger[_0x226a('0x1f')]('Trunk,\x20%s,\x20%s',_0x14f729,'request\x20sent');_0x403995(_0x5bf8e5['result'][_0x226a('0x25')]);}})[_0x226a('0x26')](function(_0x5c6d14){logger[_0x226a('0x24')]('Trunk,\x20%s,\x20%s',_0x14f729,_0x5c6d14);_0xe0f59(_0x5c6d14);});});}function respondWithStatusCode(_0x5ed292,_0x1b7dcd){_0x1b7dcd=_0x1b7dcd||0xcc;return function(_0x40a6c1){if(_0x40a6c1){return _0x5ed292['sendStatus'](_0x1b7dcd);}return _0x5ed292['status'](_0x1b7dcd)[_0x226a('0x27')]();};}function respondWithResult(_0x52d768,_0x25acc9){_0x25acc9=_0x25acc9||0xc8;return function(_0x40f9ca){if(_0x40f9ca){return _0x52d768[_0x226a('0x28')](_0x25acc9)[_0x226a('0x29')](_0x40f9ca);}};}function respondWithFilteredResult(_0x505e75,_0x1c68de){return function(_0x1a222a){if(_0x1a222a){var _0x394a88=_0x1a222a[_0x226a('0x2a')],_0x56de8c=_0x1c68de[_0x226a('0x2b')],_0xa7c8e2=_0x1c68de[_0x226a('0x2b')]+_0x1c68de['limit'],_0x2cab75;if(_0xa7c8e2>=_0x394a88){_0xa7c8e2=_0x394a88;_0x2cab75=0xc8;}else{_0x2cab75=0xce;}_0x505e75[_0x226a('0x28')](_0x2cab75);return _0x505e75[_0x226a('0x2c')]('Content-Range',_0x56de8c+'-'+_0xa7c8e2+'/'+_0x394a88)[_0x226a('0x29')](_0x1a222a);}return null;};}function patchUpdates(_0x2b0e41){return function(_0x10f2fd){try{jsonpatch[_0x226a('0x2d')](_0x10f2fd,_0x2b0e41,!![]);}catch(_0x206ad9){return BPromise[_0x226a('0x2e')](_0x206ad9);}return _0x10f2fd[_0x226a('0x2f')]();};}function saveUpdates(_0x26c225,_0x3dba13){return function(_0x22a6b1){if(_0x22a6b1){return _0x22a6b1[_0x226a('0x30')](_0x26c225)['then'](function(_0x340241){return _0x340241;});}return null;};}function removeEntity(_0x4e7c86,_0x51a7c0){return function(_0x2a1425){if(_0x2a1425){return _0x2a1425[_0x226a('0x31')]()[_0x226a('0x1e')](function(){var _0x2f57bd=_0x2a1425['get']({'plain':!![]});var _0x3de969=_0x226a('0x32');return db[_0x226a('0x33')][_0x226a('0x31')]({'where':{'type':_0x3de969,'resourceId':_0x2f57bd['id']}})['then'](function(){return _0x2a1425;});})[_0x226a('0x1e')](function(){_0x4e7c86['status'](0xcc)[_0x226a('0x27')]();});}};}function handleEntityNotFound(_0x88a93b,_0xc734f3){return function(_0x12b6b9){if(!_0x12b6b9){_0x88a93b[_0x226a('0x34')](0x194);}return _0x12b6b9;};}function handleError(_0xdda670,_0x45a931){_0x45a931=_0x45a931||0x1f4;return function(_0x3b42e0){logger['error'](_0x3b42e0[_0x226a('0x35')]);if(_0x3b42e0[_0x226a('0x36')]){delete _0x3b42e0[_0x226a('0x36')];}_0xdda670[_0x226a('0x28')](_0x45a931)['send'](_0x3b42e0);};}exports[_0x226a('0x37')]=function(_0x2b51bf,_0x157aff){var _0x1a86cf={},_0xaa20a4={},_0xf3a268={'count':0x0,'rows':[]};var _0x13cd68=_[_0x226a('0x38')](db['Trunk'][_0x226a('0x39')],function(_0x52e46c){return{'name':_0x52e46c[_0x226a('0x3a')],'type':_0x52e46c['type'][_0x226a('0x3b')]};});_0xaa20a4[_0x226a('0x3c')]=_['map'](_0x13cd68,_0x226a('0x36'));_0xaa20a4['query']=_[_0x226a('0x3d')](_0x2b51bf[_0x226a('0x3e')]);_0xaa20a4[_0x226a('0x3f')]=_['intersection'](_0xaa20a4['model'],_0xaa20a4[_0x226a('0x3e')]);_0x1a86cf[_0x226a('0x40')]=_[_0x226a('0x41')](_0xaa20a4[_0x226a('0x3c')],qs[_0x226a('0x42')](_0x2b51bf[_0x226a('0x3e')]['fields']));_0x1a86cf[_0x226a('0x40')]=_0x1a86cf[_0x226a('0x40')][_0x226a('0x43')]?_0x1a86cf['attributes']:_0xaa20a4[_0x226a('0x3c')];if(!_0x2b51bf[_0x226a('0x3e')][_0x226a('0x44')](_0x226a('0x45'))){_0x1a86cf[_0x226a('0x46')]=qs['limit'](_0x2b51bf[_0x226a('0x3e')][_0x226a('0x46')]);_0x1a86cf[_0x226a('0x2b')]=qs['offset'](_0x2b51bf[_0x226a('0x3e')]['offset']);}_0x1a86cf[_0x226a('0x47')]=qs[_0x226a('0x48')](_0x2b51bf[_0x226a('0x3e')][_0x226a('0x48')]);_0x1a86cf[_0x226a('0x49')]=qs[_0x226a('0x3f')](_[_0x226a('0x4a')](_0x2b51bf['query'],_0xaa20a4[_0x226a('0x3f')]),_0x13cd68);if(_0x2b51bf[_0x226a('0x3e')][_0x226a('0x4b')]){_0x1a86cf[_0x226a('0x49')]=_[_0x226a('0x4c')](_0x1a86cf[_0x226a('0x49')],{'$or':_[_0x226a('0x38')](_0x13cd68,function(_0x3d0a21){if(_0x3d0a21['type']!=='VIRTUAL'){var _0x422edb={};_0x422edb[_0x3d0a21[_0x226a('0x36')]]={'$like':'%'+_0x2b51bf[_0x226a('0x3e')][_0x226a('0x4b')]+'%'};return _0x422edb;}})});}_0x1a86cf=_[_0x226a('0x4c')]({},_0x1a86cf,_0x2b51bf[_0x226a('0x4d')]);var _0xe8c942={'where':_0x1a86cf[_0x226a('0x49')]};return db['Trunk'][_0x226a('0x2a')](_0xe8c942)['then'](function(_0x5c436f){_0xf3a268[_0x226a('0x2a')]=_0x5c436f;if(_0x2b51bf['query']['includeAll']){_0x1a86cf['include']=[{'all':!![]}];}return db[_0x226a('0x4e')]['findAll'](_0x1a86cf);})[_0x226a('0x1e')](function(_0x15b9d7){_0xf3a268[_0x226a('0x4f')]=_0x15b9d7;return _0xf3a268;})[_0x226a('0x1e')](respondWithFilteredResult(_0x157aff,_0x1a86cf))[_0x226a('0x26')](handleError(_0x157aff,null));};exports[_0x226a('0x50')]=function(_0x1c8e68,_0x3b0f50){var _0x3c629c={'raw':![],'where':{'id':_0x1c8e68[_0x226a('0x51')]['id']}},_0x38b49a={};_0x38b49a[_0x226a('0x3c')]=_[_0x226a('0x3d')](db['Trunk'][_0x226a('0x39')]);_0x38b49a[_0x226a('0x3e')]=_[_0x226a('0x3d')](_0x1c8e68[_0x226a('0x3e')]);_0x38b49a[_0x226a('0x3f')]=_['intersection'](_0x38b49a['model'],_0x38b49a[_0x226a('0x3e')]);_0x3c629c['attributes']=_[_0x226a('0x41')](_0x38b49a['model'],qs[_0x226a('0x42')](_0x1c8e68[_0x226a('0x3e')][_0x226a('0x42')]));_0x3c629c[_0x226a('0x40')]=_0x3c629c[_0x226a('0x40')][_0x226a('0x43')]?_0x3c629c[_0x226a('0x40')]:_0x38b49a[_0x226a('0x3c')];if(_0x1c8e68[_0x226a('0x3e')][_0x226a('0x52')]){_0x3c629c['include']=[{'all':!![]}];}_0x3c629c=_[_0x226a('0x4c')]({},_0x3c629c,_0x1c8e68[_0x226a('0x4d')]);return db[_0x226a('0x4e')][_0x226a('0x53')](_0x3c629c)[_0x226a('0x1e')](handleEntityNotFound(_0x3b0f50,null))[_0x226a('0x1e')](respondWithResult(_0x3b0f50,null))[_0x226a('0x26')](handleError(_0x3b0f50,null));};exports['clone']=function(_0x406413,_0x3b731e){var _0x28236d={'where':{'id':_0x406413['params']['id']}},_0x510c0d={};_0x510c0d[_0x226a('0x3c')]=_['keys'](db['Trunk'][_0x226a('0x39')]);_0x28236d['attributes']=_[_0x226a('0x41')](_0x510c0d[_0x226a('0x3c')],qs[_0x226a('0x42')](_0x406413[_0x226a('0x3e')][_0x226a('0x42')]));_0x28236d[_0x226a('0x40')]=_0x28236d[_0x226a('0x40')][_0x226a('0x43')]?_0x28236d['attributes']:_0x510c0d['model'];if(_0x406413['query'][_0x226a('0x52')]){_0x28236d[_0x226a('0x54')]=[{'all':!![]}];}_0x28236d=_[_0x226a('0x4c')]({},_0x28236d,_0x406413[_0x226a('0x4d')]);return db['Trunk'][_0x226a('0x53')](_0x28236d)[_0x226a('0x1e')](handleEntityNotFound(_0x3b731e,null))['then'](function(_0x57f4ca){if(_0x57f4ca){var _0x2d98c9=_0x57f4ca[_0x226a('0x55')]({'plain':!![]});_0x2d98c9=qs['omit'](_0x2d98c9,['id',_0x226a('0x56'),'updatedAt']);_0x406413[_0x226a('0x57')]=_[_0x226a('0x58')](_0x406413[_0x226a('0x57')],['id',_0x226a('0x56'),'updatedAt']);return db[_0x226a('0x4e')][_0x226a('0x59')](_[_0x226a('0x4c')](_0x2d98c9,_0x406413[_0x226a('0x57')]),{'include':_0x406413[_0x226a('0x3e')][_0x226a('0x52')]?[{'all':!![]}]:undefined})['then'](function(_0x11cb56){var _0x107cec=_0x406413['user'][_0x226a('0x55')]({'plain':!![]});if(!_0x107cec)throw new Error(_0x226a('0x5a'));if(_0x107cec[_0x226a('0x5b')]==='user'){var _0x367e1c=_0x11cb56[_0x226a('0x55')]({'plain':!![]});var _0x234db8=_0x226a('0x32');return db['UserProfileSection'][_0x226a('0x53')]({'where':{'name':_0x234db8,'userProfileId':_0x107cec[_0x226a('0x5c')]},'raw':!![]})[_0x226a('0x1e')](function(_0x4875f0){if(_0x4875f0&&_0x4875f0['autoAssociation']===0x0){return db[_0x226a('0x33')][_0x226a('0x59')]({'name':_0x367e1c[_0x226a('0x36')],'resourceId':_0x367e1c['id'],'type':_0x4875f0[_0x226a('0x36')],'sectionId':_0x4875f0['id']},{})[_0x226a('0x1e')](function(){return _0x11cb56;});}else{return _0x11cb56;}})[_0x226a('0x26')](function(_0x4cc22e){logger[_0x226a('0x24')](_0x226a('0x5d'),_0x4cc22e);throw _0x4cc22e;});}return _0x11cb56;});}})[_0x226a('0x1e')](respondWithResult(_0x3b731e,0xc9))[_0x226a('0x26')](handleError(_0x3b731e,null));};exports[_0x226a('0x59')]=function(_0x250305,_0x400e1b,_0x2b5883){var _0xfc3f65;return db['Trunk'][_0x226a('0x59')](_0x250305['body'],{'raw':!![]})[_0x226a('0x1e')](function(_0x460312){_0xfc3f65=_0x460312;return db['Trunk'][_0x226a('0x5e')]({'raw':!![]});})[_0x226a('0x1e')](function(_0x3085de){var _0xbd8e2c=fs[_0x226a('0x5f')](path[_0x226a('0x60')](config[_0x226a('0x61')],_0x226a('0x62')),_0x226a('0x63'));var _0x3011a4=fs[_0x226a('0x5f')](path['join'](config[_0x226a('0x61')],_0x226a('0x64')),_0x226a('0x63'));var _0x1ca7e9=ejs[_0x226a('0x65')](_0xbd8e2c,{'trunks':_0x3085de||[]});fs['writeFileSync'](_0x226a('0x66'),_0x1ca7e9);if(_0xfc3f65[_0x226a('0x67')]){var _0x4e08b0=ejs['render'](_0x3011a4,{'trunks':_0x3085de||[]});fs[_0x226a('0x68')]('/etc/asterisk/sip_xcally_registers.conf',_0x4e08b0);}})[_0x226a('0x1e')](function(){return respondWithRpcPromise(_0x226a('0x69'),'create',{'module':_0x226a('0x6a')});})['then'](function(){var _0x5da5dc=_0x250305['user'][_0x226a('0x55')]({'plain':!![]});if(!_0x5da5dc)throw new Error(_0x226a('0x5a'));if(_0x5da5dc[_0x226a('0x5b')]===_0x226a('0x6b')){var _0x1c6a74=_0xfc3f65[_0x226a('0x55')]({'plain':!![]});return db[_0x226a('0x6c')][_0x226a('0x53')]({'where':{'name':_0x226a('0x32'),'userProfileId':_0x5da5dc[_0x226a('0x5c')]},'raw':!![]})[_0x226a('0x1e')](function(_0x2707e4){if(_0x2707e4&&_0x2707e4[_0x226a('0x6d')]===0x0){return db[_0x226a('0x33')][_0x226a('0x59')]({'name':_0x1c6a74[_0x226a('0x36')],'resourceId':_0x1c6a74['id'],'type':_0x2707e4['name'],'sectionId':_0x2707e4['id']},{})[_0x226a('0x1e')](function(){return _0xfc3f65;});}else{return _0xfc3f65;}})[_0x226a('0x26')](function(_0x4c6f51){logger[_0x226a('0x24')](_0x226a('0x5d'),_0x4c6f51);throw _0x4c6f51;});}return _0xfc3f65;})[_0x226a('0x1e')](respondWithResult(_0x400e1b,0xc9))[_0x226a('0x26')](handleError(_0x400e1b,null));};exports['update']=function(_0x2b72b3,_0x1f5e2b,_0x48361a){var _0x8f65a;return db[_0x226a('0x4e')][_0x226a('0x53')]({'where':{'id':_0x2b72b3[_0x226a('0x51')]['id']}})['then'](handleEntityNotFound(_0x1f5e2b,null))[_0x226a('0x1e')](saveUpdates(_0x2b72b3[_0x226a('0x57')],null))['then'](function(_0x1b0d1a){if(_0x1b0d1a){_0x8f65a=_0x1b0d1a;return db[_0x226a('0x4e')][_0x226a('0x5e')]({'raw':!![]});}})[_0x226a('0x1e')](function(_0xf2ad4b){if(_0xf2ad4b){var _0x318a63=fs[_0x226a('0x5f')](path[_0x226a('0x60')](config[_0x226a('0x61')],_0x226a('0x62')),_0x226a('0x63'));var _0x19b843=fs[_0x226a('0x5f')](path['join'](config[_0x226a('0x61')],_0x226a('0x64')),_0x226a('0x63'));var _0x2cd46f=ejs[_0x226a('0x65')](_0x318a63,{'trunks':_0xf2ad4b||[]});fs[_0x226a('0x68')]('/etc/asterisk/sip_xcally_trunks.conf',_0x2cd46f);var _0x55f43f=ejs[_0x226a('0x65')](_0x19b843,{'trunks':_0xf2ad4b||[]});fs[_0x226a('0x68')](_0x226a('0x6e'),_0x55f43f);return respondWithRpcPromise(_0x226a('0x69'),_0x226a('0x30'),{'module':'chan_sip.so'});}return null;})[_0x226a('0x1e')](function(_0xf5205d){if(_0xf5205d){return _0x8f65a;}})[_0x226a('0x1e')](respondWithResult(_0x1f5e2b,null))[_0x226a('0x26')](handleError(_0x1f5e2b,null));};exports['destroy']=function(_0x2887a2,_0x43ad8c,_0x3f25c5){var _0x3365f7;return db['Trunk']['find']({'where':{'id':_0x2887a2[_0x226a('0x51')]['id']}})[_0x226a('0x1e')](handleEntityNotFound(_0x43ad8c,null))[_0x226a('0x1e')](removeEntity(_0x43ad8c,null))[_0x226a('0x1e')](function(){return db[_0x226a('0x4e')][_0x226a('0x5e')]({'raw':!![]});})[_0x226a('0x1e')](function(_0x27b99e){var _0x121390=fs[_0x226a('0x5f')](path['join'](config[_0x226a('0x61')],_0x226a('0x62')),_0x226a('0x63'));var _0x49f72e=fs['readFileSync'](path[_0x226a('0x60')](config[_0x226a('0x61')],'server/files/templates/registry.ejs'),_0x226a('0x63'));var _0xf973b2=ejs[_0x226a('0x65')](_0x121390,{'trunks':_0x27b99e});var _0x5723df=ejs['render'](_0x49f72e,{'trunks':_0x27b99e});fs[_0x226a('0x68')](_0x226a('0x66'),_0xf973b2);fs[_0x226a('0x68')](_0x226a('0x6e'),_0x5723df);return respondWithRpcPromise(_0x226a('0x69'),_0x226a('0x31'),{'module':_0x226a('0x6a')});})[_0x226a('0x26')](handleError(_0x43ad8c,null));};