Built motion from commit (unavailable).|2.5.31
[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 _0x757a=['/etc/asterisk/sip_xcally_trunks.conf','Reload','chan_sip.so','server/files/templates/trunk.ejs','/etc/asterisk/sip_xcally_registers.conf','server/files/templates/registry.ejs','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','client','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','status','json','offset','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Trunks','UserProfileResource','sendStatus','stack','name','render','merge','body','contact','agent','interaction','index','map','Trunk','fieldName','type','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','includeAll','include','findAll','rows','show','params','keys','rawAttributes','find','clone','options','omit','createdAt','updatedAt','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','utf8','writeFileSync'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x757a,0xde));var _0xa757=function(_0x403a7b,_0x22fb16){_0x403a7b=_0x403a7b-0x0;var _0x2871bf=_0x757a[_0x403a7b];return _0x2871bf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa757('0x0'));var zipdir=require(_0xa757('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa757('0x2'));var Mustache=require(_0xa757('0x3'));var util=require(_0xa757('0x4'));var path=require(_0xa757('0x5'));var sox=require(_0xa757('0x6'));var csv=require(_0xa757('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa757('0x8'));var _=require(_0xa757('0x9'));var squel=require('squel');var crypto=require(_0xa757('0xa'));var jsforce=require(_0xa757('0xb'));var deskjs=require(_0xa757('0xc'));var toCsv=require(_0xa757('0x7'));var querystring=require(_0xa757('0xd'));var Papa=require('papaparse');var Redis=require(_0xa757('0xe'));var authService=require(_0xa757('0xf'));var qs=require(_0xa757('0x10'));var as=require(_0xa757('0x11'));var hardwareService=require(_0xa757('0x12'));var logger=require(_0xa757('0x13'))(_0xa757('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0xa757('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x564187,_0x2ed0d2,_0x513b1f,_0x481508){return new BPromise(function(_0x32112b,_0x1b670e){var _0x355f0a=_0x481508||client;return _0x355f0a[_0xa757('0x16')](_0x564187,_0x513b1f)[_0xa757('0x17')](function(_0x31cfd2){logger[_0xa757('0x18')](_0xa757('0x19'),_0x2ed0d2,_0xa757('0x1a'));logger[_0xa757('0x1b')]('Trunk,\x20%s,\x20%s,\x20%s',_0x2ed0d2,_0xa757('0x1a'),JSON[_0xa757('0x1c')](_0x31cfd2));if(_0x31cfd2[_0xa757('0x1d')]){if(_0x31cfd2['error']['code']===0x1f4){logger[_0xa757('0x1d')](_0xa757('0x19'),_0x2ed0d2,_0x31cfd2[_0xa757('0x1d')][_0xa757('0x1e')]);return _0x1b670e(_0x31cfd2[_0xa757('0x1d')][_0xa757('0x1e')]);}logger['error'](_0xa757('0x19'),_0x2ed0d2,_0x31cfd2['error'][_0xa757('0x1e')]);return _0x32112b(_0x31cfd2[_0xa757('0x1d')][_0xa757('0x1e')]);}else{logger[_0xa757('0x18')]('Trunk,\x20%s,\x20%s',_0x2ed0d2,'request\x20sent');_0x32112b(_0x31cfd2[_0xa757('0x1f')][_0xa757('0x1e')]);}})[_0xa757('0x20')](function(_0x8d121f){logger[_0xa757('0x1d')](_0xa757('0x19'),_0x2ed0d2,_0x8d121f);_0x1b670e(_0x8d121f);});});}function respondWithStatusCode(_0x2ca10d,_0x21f1af){_0x21f1af=_0x21f1af||0xcc;return function(_0x2bf276){if(_0x2bf276){return _0x2ca10d['sendStatus'](_0x21f1af);}return _0x2ca10d[_0xa757('0x21')](_0x21f1af)['end']();};}function respondWithResult(_0x422e9e,_0x47903b){_0x47903b=_0x47903b||0xc8;return function(_0x40551d){if(_0x40551d){return _0x422e9e[_0xa757('0x21')](_0x47903b)[_0xa757('0x22')](_0x40551d);}};}function respondWithFilteredResult(_0x4d58a4,_0x2b19d5){return function(_0xcd98bd){if(_0xcd98bd){var _0x471e84=typeof _0x2b19d5[_0xa757('0x23')]==='undefined'&&typeof _0x2b19d5[_0xa757('0x24')]==='undefined';var _0x5a5664=_0xcd98bd['count'];var _0x4f8de2=_0x471e84?0x0:_0x2b19d5[_0xa757('0x23')];var _0x596ae2=_0x471e84?_0xcd98bd[_0xa757('0x25')]:_0x2b19d5[_0xa757('0x23')]+_0x2b19d5['limit'];var _0x2a0c9a;if(_0x596ae2>=_0x5a5664){_0x596ae2=_0x5a5664;_0x2a0c9a=0xc8;}else{_0x2a0c9a=0xce;}_0x4d58a4['status'](_0x2a0c9a);return _0x4d58a4[_0xa757('0x26')](_0xa757('0x27'),_0x4f8de2+'-'+_0x596ae2+'/'+_0x5a5664)['json'](_0xcd98bd);}return null;};}function patchUpdates(_0x235e54){return function(_0x5ade7b){try{jsonpatch[_0xa757('0x28')](_0x5ade7b,_0x235e54,!![]);}catch(_0x27b3e2){return BPromise[_0xa757('0x29')](_0x27b3e2);}return _0x5ade7b[_0xa757('0x2a')]();};}function saveUpdates(_0xcc87c0,_0x2c1885){return function(_0x1a44a9){if(_0x1a44a9){return _0x1a44a9[_0xa757('0x2b')](_0xcc87c0)[_0xa757('0x17')](function(_0x384424){return _0x384424;});}return null;};}function removeEntity(_0x1f5d5a,_0x20735f){return function(_0x25dfbb){if(_0x25dfbb){return _0x25dfbb[_0xa757('0x2c')]()[_0xa757('0x17')](function(){var _0xc1cc20=_0x25dfbb[_0xa757('0x2d')]({'plain':!![]});var _0x1ad384=_0xa757('0x2e');return db[_0xa757('0x2f')][_0xa757('0x2c')]({'where':{'type':_0x1ad384,'resourceId':_0xc1cc20['id']}})[_0xa757('0x17')](function(){return _0x25dfbb;});})[_0xa757('0x17')](function(){_0x1f5d5a[_0xa757('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2adf93,_0x21d6b3){return function(_0x1e9d63){if(!_0x1e9d63){_0x2adf93[_0xa757('0x30')](0x194);}return _0x1e9d63;};}function handleError(_0x1c4c40,_0x51e2aa){_0x51e2aa=_0x51e2aa||0x1f4;return function(_0x1d4414){logger[_0xa757('0x1d')](_0x1d4414[_0xa757('0x31')]);if(_0x1d4414[_0xa757('0x32')]){delete _0x1d4414[_0xa757('0x32')];}_0x1c4c40[_0xa757('0x21')](_0x51e2aa)['send'](_0x1d4414);};}function getMustacheRender(_0x1346c2,_0x444639){return Mustache[_0xa757('0x33')](_0x1346c2,_[_0xa757('0x34')](_0x444639[_0xa757('0x35')],{'contact':_0x444639[_0xa757('0x36')],'message':_0x444639[_0xa757('0x1e')],'agent':_0x444639[_0xa757('0x37')],'interaction':_0x444639[_0xa757('0x38')],'account':_0x444639['account']}))||'';}exports[_0xa757('0x39')]=function(_0x34fba8,_0x9f73c6){var _0x35c15a={},_0x2531be={},_0x2fd99e={'count':0x0,'rows':[]};var _0x501e26=_[_0xa757('0x3a')](db[_0xa757('0x3b')]['rawAttributes'],function(_0x5eae0b){return{'name':_0x5eae0b[_0xa757('0x3c')],'type':_0x5eae0b[_0xa757('0x3d')]['key']};});_0x2531be['model']=_[_0xa757('0x3a')](_0x501e26,_0xa757('0x32'));_0x2531be[_0xa757('0x3e')]=_['keys'](_0x34fba8[_0xa757('0x3e')]);_0x2531be[_0xa757('0x3f')]=_[_0xa757('0x40')](_0x2531be[_0xa757('0x41')],_0x2531be[_0xa757('0x3e')]);_0x35c15a['attributes']=_[_0xa757('0x40')](_0x2531be['model'],qs['fields'](_0x34fba8[_0xa757('0x3e')][_0xa757('0x42')]));_0x35c15a[_0xa757('0x43')]=_0x35c15a[_0xa757('0x43')][_0xa757('0x44')]?_0x35c15a['attributes']:_0x2531be['model'];if(!_0x34fba8[_0xa757('0x3e')][_0xa757('0x45')](_0xa757('0x46'))){_0x35c15a[_0xa757('0x24')]=qs[_0xa757('0x24')](_0x34fba8[_0xa757('0x3e')]['limit']);_0x35c15a[_0xa757('0x23')]=qs[_0xa757('0x23')](_0x34fba8['query'][_0xa757('0x23')]);}_0x35c15a['order']=qs[_0xa757('0x47')](_0x34fba8[_0xa757('0x3e')]['sort']);_0x35c15a[_0xa757('0x48')]=qs[_0xa757('0x3f')](_['pick'](_0x34fba8[_0xa757('0x3e')],_0x2531be[_0xa757('0x3f')]),_0x501e26);if(_0x34fba8[_0xa757('0x3e')][_0xa757('0x49')]){_0x35c15a['where']=_[_0xa757('0x34')](_0x35c15a[_0xa757('0x48')],{'$or':_[_0xa757('0x3a')](_0x501e26,function(_0xec4610){if(_0xec4610['type']!==_0xa757('0x4a')){var _0x5b6017={};_0x5b6017[_0xec4610['name']]={'$like':'%'+_0x34fba8[_0xa757('0x3e')][_0xa757('0x49')]+'%'};return _0x5b6017;}})});}_0x35c15a=_[_0xa757('0x34')]({},_0x35c15a,_0x34fba8['options']);var _0x421c65={'where':_0x35c15a['where']};return db[_0xa757('0x3b')][_0xa757('0x25')](_0x421c65)[_0xa757('0x17')](function(_0xbef575){_0x2fd99e[_0xa757('0x25')]=_0xbef575;if(_0x34fba8[_0xa757('0x3e')][_0xa757('0x4b')]){_0x35c15a[_0xa757('0x4c')]=[{'all':!![]}];}return db['Trunk'][_0xa757('0x4d')](_0x35c15a);})[_0xa757('0x17')](function(_0x33347a){_0x2fd99e[_0xa757('0x4e')]=_0x33347a;return _0x2fd99e;})[_0xa757('0x17')](respondWithFilteredResult(_0x9f73c6,_0x35c15a))[_0xa757('0x20')](handleError(_0x9f73c6,null));};exports[_0xa757('0x4f')]=function(_0x2c5b3c,_0x405397){var _0x1d05d7={'raw':![],'where':{'id':_0x2c5b3c[_0xa757('0x50')]['id']}},_0x16644b={};_0x16644b[_0xa757('0x41')]=_[_0xa757('0x51')](db[_0xa757('0x3b')][_0xa757('0x52')]);_0x16644b['query']=_[_0xa757('0x51')](_0x2c5b3c['query']);_0x16644b[_0xa757('0x3f')]=_[_0xa757('0x40')](_0x16644b[_0xa757('0x41')],_0x16644b[_0xa757('0x3e')]);_0x1d05d7['attributes']=_[_0xa757('0x40')](_0x16644b[_0xa757('0x41')],qs[_0xa757('0x42')](_0x2c5b3c[_0xa757('0x3e')]['fields']));_0x1d05d7[_0xa757('0x43')]=_0x1d05d7[_0xa757('0x43')][_0xa757('0x44')]?_0x1d05d7[_0xa757('0x43')]:_0x16644b[_0xa757('0x41')];if(_0x2c5b3c[_0xa757('0x3e')]['includeAll']){_0x1d05d7['include']=[{'all':!![]}];}_0x1d05d7=_['merge']({},_0x1d05d7,_0x2c5b3c['options']);return db[_0xa757('0x3b')][_0xa757('0x53')](_0x1d05d7)[_0xa757('0x17')](handleEntityNotFound(_0x405397,null))[_0xa757('0x17')](respondWithResult(_0x405397,null))[_0xa757('0x20')](handleError(_0x405397,null));};exports[_0xa757('0x54')]=function(_0x5efb32,_0xe31752){var _0x163d99={'where':{'id':_0x5efb32[_0xa757('0x50')]['id']}},_0x34e03f={};_0x34e03f['model']=_[_0xa757('0x51')](db[_0xa757('0x3b')]['rawAttributes']);_0x163d99[_0xa757('0x43')]=_['intersection'](_0x34e03f[_0xa757('0x41')],qs['fields'](_0x5efb32[_0xa757('0x3e')]['fields']));_0x163d99['attributes']=_0x163d99[_0xa757('0x43')][_0xa757('0x44')]?_0x163d99[_0xa757('0x43')]:_0x34e03f[_0xa757('0x41')];if(_0x5efb32[_0xa757('0x3e')][_0xa757('0x4b')]){_0x163d99['include']=[{'all':!![]}];}_0x163d99=_['merge']({},_0x163d99,_0x5efb32[_0xa757('0x55')]);return db[_0xa757('0x3b')][_0xa757('0x53')](_0x163d99)['then'](handleEntityNotFound(_0xe31752,null))['then'](function(_0x18dff7){if(_0x18dff7){var _0x31c4cd=_0x18dff7[_0xa757('0x2d')]({'plain':!![]});_0x31c4cd=qs[_0xa757('0x56')](_0x31c4cd,['id',_0xa757('0x57'),_0xa757('0x58')]);_0x5efb32['body']=_[_0xa757('0x56')](_0x5efb32[_0xa757('0x35')],['id',_0xa757('0x57'),_0xa757('0x58')]);return db[_0xa757('0x3b')][_0xa757('0x59')](_[_0xa757('0x34')](_0x31c4cd,_0x5efb32[_0xa757('0x35')]),{'include':_0x5efb32[_0xa757('0x3e')][_0xa757('0x4b')]?[{'all':!![]}]:undefined})['then'](function(_0x9e96e6){var _0x5c803a=_0x5efb32['user'][_0xa757('0x2d')]({'plain':!![]});if(!_0x5c803a)throw new Error(_0xa757('0x5a'));if(_0x5c803a[_0xa757('0x5b')]===_0xa757('0x5c')){var _0x3c3ff1=_0x9e96e6[_0xa757('0x2d')]({'plain':!![]});var _0x1b34ad=_0xa757('0x2e');return db[_0xa757('0x5d')][_0xa757('0x53')]({'where':{'name':_0x1b34ad,'userProfileId':_0x5c803a[_0xa757('0x5e')]},'raw':!![]})['then'](function(_0x3f8c5c){if(_0x3f8c5c&&_0x3f8c5c[_0xa757('0x5f')]===0x0){return db['UserProfileResource'][_0xa757('0x59')]({'name':_0x3c3ff1[_0xa757('0x32')],'resourceId':_0x3c3ff1['id'],'type':_0x3f8c5c[_0xa757('0x32')],'sectionId':_0x3f8c5c['id']},{})[_0xa757('0x17')](function(){return _0x9e96e6;});}else{return _0x9e96e6;}})[_0xa757('0x20')](function(_0x113a33){logger['error'](_0xa757('0x60'),_0x113a33);throw _0x113a33;});}return _0x9e96e6;});}})['then'](respondWithResult(_0xe31752,0xc9))[_0xa757('0x20')](handleError(_0xe31752,null));};exports[_0xa757('0x59')]=function(_0x2d9d97,_0x3c87c0,_0x39ca41){var _0x5c0870;return db['Trunk'][_0xa757('0x59')](_0x2d9d97[_0xa757('0x35')],{'raw':!![]})[_0xa757('0x17')](function(_0x5f450f){_0x5c0870=_0x5f450f;return db[_0xa757('0x3b')]['findAll']({'raw':!![]});})[_0xa757('0x17')](function(_0x294165){var _0x2b0ad4=fs[_0xa757('0x61')](path[_0xa757('0x62')](config[_0xa757('0x63')],'server/files/templates/trunk.ejs'),_0xa757('0x64'));var _0x193233=fs[_0xa757('0x61')](path[_0xa757('0x62')](config[_0xa757('0x63')],'server/files/templates/registry.ejs'),_0xa757('0x64'));var _0x423f3a=ejs[_0xa757('0x33')](_0x2b0ad4,{'trunks':_0x294165||[]});fs[_0xa757('0x65')](_0xa757('0x66'),_0x423f3a);if(_0x5c0870['registry']){var _0x3f1327=ejs[_0xa757('0x33')](_0x193233,{'trunks':_0x294165||[]});fs[_0xa757('0x65')]('/etc/asterisk/sip_xcally_registers.conf',_0x3f1327);}})[_0xa757('0x17')](function(){return respondWithRpcPromise(_0xa757('0x67'),_0xa757('0x59'),{'module':_0xa757('0x68')});})[_0xa757('0x17')](function(){var _0x4695ef=_0x2d9d97[_0xa757('0x5c')][_0xa757('0x2d')]({'plain':!![]});if(!_0x4695ef)throw new Error(_0xa757('0x5a'));if(_0x4695ef[_0xa757('0x5b')]===_0xa757('0x5c')){var _0x404afb=_0x5c0870[_0xa757('0x2d')]({'plain':!![]});return db[_0xa757('0x5d')]['find']({'where':{'name':_0xa757('0x2e'),'userProfileId':_0x4695ef[_0xa757('0x5e')]},'raw':!![]})['then'](function(_0x11f2b3){if(_0x11f2b3&&_0x11f2b3[_0xa757('0x5f')]===0x0){return db['UserProfileResource'][_0xa757('0x59')]({'name':_0x404afb[_0xa757('0x32')],'resourceId':_0x404afb['id'],'type':_0x11f2b3[_0xa757('0x32')],'sectionId':_0x11f2b3['id']},{})[_0xa757('0x17')](function(){return _0x5c0870;});}else{return _0x5c0870;}})[_0xa757('0x20')](function(_0x312542){logger[_0xa757('0x1d')](_0xa757('0x60'),_0x312542);throw _0x312542;});}return _0x5c0870;})[_0xa757('0x17')](respondWithResult(_0x3c87c0,0xc9))[_0xa757('0x20')](handleError(_0x3c87c0,null));};exports[_0xa757('0x2b')]=function(_0x189195,_0x2c2b40,_0x46bc34){var _0x27604c;return db[_0xa757('0x3b')]['find']({'where':{'id':_0x189195[_0xa757('0x50')]['id']}})['then'](handleEntityNotFound(_0x2c2b40,null))[_0xa757('0x17')](saveUpdates(_0x189195[_0xa757('0x35')],null))[_0xa757('0x17')](function(_0x3d92ca){if(_0x3d92ca){_0x27604c=_0x3d92ca;return db[_0xa757('0x3b')]['findAll']({'raw':!![]});}})[_0xa757('0x17')](function(_0x67a58b){if(_0x67a58b){var _0x3a8dce=fs['readFileSync'](path[_0xa757('0x62')](config[_0xa757('0x63')],_0xa757('0x69')),'utf8');var _0x501134=fs[_0xa757('0x61')](path[_0xa757('0x62')](config[_0xa757('0x63')],'server/files/templates/registry.ejs'),_0xa757('0x64'));var _0x4cc1ad=ejs['render'](_0x3a8dce,{'trunks':_0x67a58b||[]});fs[_0xa757('0x65')](_0xa757('0x66'),_0x4cc1ad);var _0x476297=ejs['render'](_0x501134,{'trunks':_0x67a58b||[]});fs[_0xa757('0x65')](_0xa757('0x6a'),_0x476297);return respondWithRpcPromise(_0xa757('0x67'),_0xa757('0x2b'),{'module':_0xa757('0x68')});}return null;})[_0xa757('0x17')](function(_0x26dcec){if(_0x26dcec){return _0x27604c;}})[_0xa757('0x17')](respondWithResult(_0x2c2b40,null))[_0xa757('0x20')](handleError(_0x2c2b40,null));};exports[_0xa757('0x2c')]=function(_0x180fee,_0xafcf19,_0x5a7042){var _0x3aca47;return db[_0xa757('0x3b')][_0xa757('0x53')]({'where':{'id':_0x180fee[_0xa757('0x50')]['id']}})[_0xa757('0x17')](handleEntityNotFound(_0xafcf19,null))[_0xa757('0x17')](removeEntity(_0xafcf19,null))[_0xa757('0x17')](function(){return db[_0xa757('0x3b')][_0xa757('0x4d')]({'raw':!![]});})[_0xa757('0x17')](function(_0x3997f8){var _0x2f5a0f=fs[_0xa757('0x61')](path[_0xa757('0x62')](config[_0xa757('0x63')],_0xa757('0x69')),_0xa757('0x64'));var _0x3c4e41=fs[_0xa757('0x61')](path[_0xa757('0x62')](config[_0xa757('0x63')],_0xa757('0x6b')),'utf8');var _0x768a79=ejs[_0xa757('0x33')](_0x2f5a0f,{'trunks':_0x3997f8});var _0x5b91de=ejs[_0xa757('0x33')](_0x3c4e41,{'trunks':_0x3997f8});fs['writeFileSync'](_0xa757('0x66'),_0x768a79);fs[_0xa757('0x65')]('/etc/asterisk/sip_xcally_registers.conf',_0x5b91de);return respondWithRpcPromise(_0xa757('0x67'),_0xa757('0x2c'),{'module':_0xa757('0x68')});})[_0xa757('0x20')](handleError(_0xafcf19,null));};