Built motion from commit (unavailable).|2.6.0
[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 _0x536b=['/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','role','UserProfileResource','server/files/templates/trunk.ejs','/etc/asterisk/sip_xcally_trunks.conf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','code','Trunk,\x20%s,\x20%s','error','message','catch','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','get','Trunks','destroy','end','sendStatus','stack','name','send','index','Trunk','rawAttributes','type','key','model','map','query','intersection','attributes','fields','hasOwnProperty','nolimit','where','filters','pick','filter','merge','VIRTUAL','includeAll','show','params','keys','length','include','options','find','clone','omit','createdAt','updatedAt','body','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','root','utf8','join','server/files/templates/registry.ejs','render','writeFileSync'];(function(_0x110212,_0x3fa4c2){var _0x233d8b=function(_0x347792){while(--_0x347792){_0x110212['push'](_0x110212['shift']());}};_0x233d8b(++_0x3fa4c2);}(_0x536b,0x15d));var _0xb536=function(_0x219987,_0x2eccf6){_0x219987=_0x219987-0x0;var _0xfe118=_0x536b[_0x219987];return _0xfe118;};'use strict';var emlformat=require(_0xb536('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb536('0x1'));var jsonpatch=require(_0xb536('0x2'));var rp=require(_0xb536('0x3'));var moment=require(_0xb536('0x4'));var BPromise=require(_0xb536('0x5'));var Mustache=require(_0xb536('0x6'));var util=require(_0xb536('0x7'));var path=require(_0xb536('0x8'));var sox=require(_0xb536('0x9'));var csv=require(_0xb536('0xa'));var ejs=require(_0xb536('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb536('0xc'));var squel=require(_0xb536('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb536('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb536('0xf'));var Papa=require(_0xb536('0x10'));var Redis=require(_0xb536('0x11'));var authService=require(_0xb536('0x12'));var qs=require(_0xb536('0x13'));var as=require(_0xb536('0x14'));var hardwareService=require(_0xb536('0x15'));var logger=require(_0xb536('0x16'))(_0xb536('0x17'));var utils=require('../../config/utils');var config=require(_0xb536('0x18'));var licenseUtil=require(_0xb536('0x19'));var db=require(_0xb536('0x1a'))['db'];var jayson=require(_0xb536('0x1b'));var client=jayson[_0xb536('0x1c')][_0xb536('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x31c95a,_0x9f173,_0x140edb,_0x22f63c){return new BPromise(function(_0x48cb87,_0x359ed1){var _0x765144=_0x22f63c||client;return _0x765144['request'](_0x31c95a,_0x140edb)[_0xb536('0x1e')](function(_0x3eceae){logger[_0xb536('0x1f')]('Trunk,\x20%s,\x20%s',_0x9f173,_0xb536('0x20'));logger[_0xb536('0x21')](_0xb536('0x22'),_0x9f173,_0xb536('0x20'),JSON[_0xb536('0x23')](_0x3eceae));if(_0x3eceae['error']){if(_0x3eceae['error'][_0xb536('0x24')]===0x1f4){logger['error'](_0xb536('0x25'),_0x9f173,_0x3eceae[_0xb536('0x26')]['message']);return _0x359ed1(_0x3eceae[_0xb536('0x26')][_0xb536('0x27')]);}logger[_0xb536('0x26')]('Trunk,\x20%s,\x20%s',_0x9f173,_0x3eceae[_0xb536('0x26')][_0xb536('0x27')]);return _0x48cb87(_0x3eceae[_0xb536('0x26')]['message']);}else{logger['info'](_0xb536('0x25'),_0x9f173,_0xb536('0x20'));_0x48cb87(_0x3eceae['result'][_0xb536('0x27')]);}})[_0xb536('0x28')](function(_0x5d93a8){logger[_0xb536('0x26')](_0xb536('0x25'),_0x9f173,_0x5d93a8);_0x359ed1(_0x5d93a8);});});}function respondWithStatusCode(_0x1a9a19,_0x333349){_0x333349=_0x333349||0xcc;return function(_0x35278c){if(_0x35278c){return _0x1a9a19['sendStatus'](_0x333349);}return _0x1a9a19['status'](_0x333349)['end']();};}function respondWithResult(_0x18c5c6,_0xa07a59){_0xa07a59=_0xa07a59||0xc8;return function(_0x3873fd){if(_0x3873fd){return _0x18c5c6[_0xb536('0x29')](_0xa07a59)[_0xb536('0x2a')](_0x3873fd);}};}function respondWithFilteredResult(_0x84503e,_0x469da7){return function(_0x158a49){if(_0x158a49){var _0xe457b7=typeof _0x469da7[_0xb536('0x2b')]===_0xb536('0x2c')&&typeof _0x469da7[_0xb536('0x2d')]==='undefined';var _0x408f19=_0x158a49['count'];var _0x531867=_0xe457b7?0x0:_0x469da7[_0xb536('0x2b')];var _0x1396ec=_0xe457b7?_0x158a49[_0xb536('0x2e')]:_0x469da7[_0xb536('0x2b')]+_0x469da7[_0xb536('0x2d')];var _0x3624c9;if(_0x1396ec>=_0x408f19){_0x1396ec=_0x408f19;_0x3624c9=0xc8;}else{_0x3624c9=0xce;}_0x84503e[_0xb536('0x29')](_0x3624c9);return _0x84503e[_0xb536('0x2f')](_0xb536('0x30'),_0x531867+'-'+_0x1396ec+'/'+_0x408f19)['json'](_0x158a49);}return null;};}function patchUpdates(_0x3bebbc){return function(_0x10e6f4){try{jsonpatch[_0xb536('0x31')](_0x10e6f4,_0x3bebbc,!![]);}catch(_0x5214e0){return BPromise[_0xb536('0x32')](_0x5214e0);}return _0x10e6f4[_0xb536('0x33')]();};}function saveUpdates(_0x79b24d,_0x372e1c){return function(_0x2fc4ad){if(_0x2fc4ad){return _0x2fc4ad[_0xb536('0x34')](_0x79b24d)[_0xb536('0x1e')](function(_0x19facc){return _0x19facc;});}return null;};}function removeEntity(_0x2bb430,_0x45178a){return function(_0x45dcd2){if(_0x45dcd2){return _0x45dcd2['destroy']()['then'](function(){var _0xa5b60c=_0x45dcd2[_0xb536('0x35')]({'plain':!![]});var _0x355015=_0xb536('0x36');return db['UserProfileResource'][_0xb536('0x37')]({'where':{'type':_0x355015,'resourceId':_0xa5b60c['id']}})['then'](function(){return _0x45dcd2;});})[_0xb536('0x1e')](function(){_0x2bb430[_0xb536('0x29')](0xcc)[_0xb536('0x38')]();});}};}function handleEntityNotFound(_0x3eedee,_0x48eff7){return function(_0x59cdac){if(!_0x59cdac){_0x3eedee[_0xb536('0x39')](0x194);}return _0x59cdac;};}function handleError(_0x131d23,_0x550328){_0x550328=_0x550328||0x1f4;return function(_0x5b56d9){logger[_0xb536('0x26')](_0x5b56d9[_0xb536('0x3a')]);if(_0x5b56d9[_0xb536('0x3b')]){delete _0x5b56d9[_0xb536('0x3b')];}_0x131d23[_0xb536('0x29')](_0x550328)[_0xb536('0x3c')](_0x5b56d9);};}exports[_0xb536('0x3d')]=function(_0x33abf7,_0x48c241){var _0x3e20a1={},_0x707930={},_0xd1dc81={'count':0x0,'rows':[]};var _0x32666b=_['map'](db[_0xb536('0x3e')][_0xb536('0x3f')],function(_0x55a240){return{'name':_0x55a240['fieldName'],'type':_0x55a240[_0xb536('0x40')][_0xb536('0x41')]};});_0x707930[_0xb536('0x42')]=_[_0xb536('0x43')](_0x32666b,_0xb536('0x3b'));_0x707930[_0xb536('0x44')]=_['keys'](_0x33abf7[_0xb536('0x44')]);_0x707930['filters']=_[_0xb536('0x45')](_0x707930[_0xb536('0x42')],_0x707930['query']);_0x3e20a1[_0xb536('0x46')]=_[_0xb536('0x45')](_0x707930['model'],qs['fields'](_0x33abf7[_0xb536('0x44')][_0xb536('0x47')]));_0x3e20a1[_0xb536('0x46')]=_0x3e20a1[_0xb536('0x46')]['length']?_0x3e20a1[_0xb536('0x46')]:_0x707930[_0xb536('0x42')];if(!_0x33abf7[_0xb536('0x44')][_0xb536('0x48')](_0xb536('0x49'))){_0x3e20a1[_0xb536('0x2d')]=qs[_0xb536('0x2d')](_0x33abf7[_0xb536('0x44')]['limit']);_0x3e20a1[_0xb536('0x2b')]=qs[_0xb536('0x2b')](_0x33abf7[_0xb536('0x44')][_0xb536('0x2b')]);}_0x3e20a1['order']=qs['sort'](_0x33abf7[_0xb536('0x44')]['sort']);_0x3e20a1[_0xb536('0x4a')]=qs[_0xb536('0x4b')](_[_0xb536('0x4c')](_0x33abf7[_0xb536('0x44')],_0x707930[_0xb536('0x4b')]),_0x32666b);if(_0x33abf7['query'][_0xb536('0x4d')]){_0x3e20a1[_0xb536('0x4a')]=_[_0xb536('0x4e')](_0x3e20a1[_0xb536('0x4a')],{'$or':_[_0xb536('0x43')](_0x32666b,function(_0x343c47){if(_0x343c47[_0xb536('0x40')]!==_0xb536('0x4f')){var _0x2440f4={};_0x2440f4[_0x343c47[_0xb536('0x3b')]]={'$like':'%'+_0x33abf7[_0xb536('0x44')]['filter']+'%'};return _0x2440f4;}})});}_0x3e20a1=_[_0xb536('0x4e')]({},_0x3e20a1,_0x33abf7['options']);var _0x45f4f7={'where':_0x3e20a1[_0xb536('0x4a')]};return db[_0xb536('0x3e')][_0xb536('0x2e')](_0x45f4f7)[_0xb536('0x1e')](function(_0xde9a75){_0xd1dc81[_0xb536('0x2e')]=_0xde9a75;if(_0x33abf7['query'][_0xb536('0x50')]){_0x3e20a1['include']=[{'all':!![]}];}return db['Trunk']['findAll'](_0x3e20a1);})[_0xb536('0x1e')](function(_0x405f1b){_0xd1dc81['rows']=_0x405f1b;return _0xd1dc81;})[_0xb536('0x1e')](respondWithFilteredResult(_0x48c241,_0x3e20a1))[_0xb536('0x28')](handleError(_0x48c241,null));};exports[_0xb536('0x51')]=function(_0x28aafb,_0x494af6){var _0x13418c={'raw':![],'where':{'id':_0x28aafb[_0xb536('0x52')]['id']}},_0x23a0c2={};_0x23a0c2[_0xb536('0x42')]=_['keys'](db['Trunk'][_0xb536('0x3f')]);_0x23a0c2[_0xb536('0x44')]=_[_0xb536('0x53')](_0x28aafb['query']);_0x23a0c2[_0xb536('0x4b')]=_[_0xb536('0x45')](_0x23a0c2[_0xb536('0x42')],_0x23a0c2[_0xb536('0x44')]);_0x13418c['attributes']=_['intersection'](_0x23a0c2[_0xb536('0x42')],qs[_0xb536('0x47')](_0x28aafb[_0xb536('0x44')][_0xb536('0x47')]));_0x13418c['attributes']=_0x13418c[_0xb536('0x46')][_0xb536('0x54')]?_0x13418c[_0xb536('0x46')]:_0x23a0c2[_0xb536('0x42')];if(_0x28aafb[_0xb536('0x44')][_0xb536('0x50')]){_0x13418c[_0xb536('0x55')]=[{'all':!![]}];}_0x13418c=_[_0xb536('0x4e')]({},_0x13418c,_0x28aafb[_0xb536('0x56')]);return db[_0xb536('0x3e')][_0xb536('0x57')](_0x13418c)[_0xb536('0x1e')](handleEntityNotFound(_0x494af6,null))[_0xb536('0x1e')](respondWithResult(_0x494af6,null))[_0xb536('0x28')](handleError(_0x494af6,null));};exports[_0xb536('0x58')]=function(_0x294f23,_0x4d9f8d){var _0x311d9f={'where':{'id':_0x294f23[_0xb536('0x52')]['id']}},_0x149436={};_0x149436[_0xb536('0x42')]=_[_0xb536('0x53')](db[_0xb536('0x3e')][_0xb536('0x3f')]);_0x311d9f['attributes']=_['intersection'](_0x149436[_0xb536('0x42')],qs[_0xb536('0x47')](_0x294f23[_0xb536('0x44')][_0xb536('0x47')]));_0x311d9f['attributes']=_0x311d9f[_0xb536('0x46')][_0xb536('0x54')]?_0x311d9f[_0xb536('0x46')]:_0x149436[_0xb536('0x42')];if(_0x294f23['query'][_0xb536('0x50')]){_0x311d9f[_0xb536('0x55')]=[{'all':!![]}];}_0x311d9f=_[_0xb536('0x4e')]({},_0x311d9f,_0x294f23['options']);return db[_0xb536('0x3e')][_0xb536('0x57')](_0x311d9f)[_0xb536('0x1e')](handleEntityNotFound(_0x4d9f8d,null))[_0xb536('0x1e')](function(_0x454aa8){if(_0x454aa8){var _0x24c1c9=_0x454aa8[_0xb536('0x35')]({'plain':!![]});_0x24c1c9=qs[_0xb536('0x59')](_0x24c1c9,['id',_0xb536('0x5a'),_0xb536('0x5b')]);_0x294f23[_0xb536('0x5c')]=_[_0xb536('0x59')](_0x294f23[_0xb536('0x5c')],['id','createdAt','updatedAt']);return db[_0xb536('0x3e')][_0xb536('0x5d')](_['merge'](_0x24c1c9,_0x294f23[_0xb536('0x5c')]),{'include':_0x294f23[_0xb536('0x44')][_0xb536('0x50')]?[{'all':!![]}]:undefined})['then'](function(_0x45c11a){var _0x4531fd=_0x294f23['user'][_0xb536('0x35')]({'plain':!![]});if(!_0x4531fd)throw new Error(_0xb536('0x5e'));if(_0x4531fd['role']===_0xb536('0x5f')){var _0x108a73=_0x45c11a[_0xb536('0x35')]({'plain':!![]});var _0x4dbdfc=_0xb536('0x36');return db[_0xb536('0x60')]['find']({'where':{'name':_0x4dbdfc,'userProfileId':_0x4531fd[_0xb536('0x61')]},'raw':!![]})['then'](function(_0x1f2795){if(_0x1f2795&&_0x1f2795[_0xb536('0x62')]===0x0){return db['UserProfileResource'][_0xb536('0x5d')]({'name':_0x108a73[_0xb536('0x3b')],'resourceId':_0x108a73['id'],'type':_0x1f2795[_0xb536('0x3b')],'sectionId':_0x1f2795['id']},{})['then'](function(){return _0x45c11a;});}else{return _0x45c11a;}})[_0xb536('0x28')](function(_0x265f47){logger[_0xb536('0x26')](_0xb536('0x63'),_0x265f47);throw _0x265f47;});}return _0x45c11a;});}})[_0xb536('0x1e')](respondWithResult(_0x4d9f8d,0xc9))[_0xb536('0x28')](handleError(_0x4d9f8d,null));};exports[_0xb536('0x5d')]=function(_0x52b7bf,_0xf24c7e,_0x94e1de){var _0x543d5f;return db[_0xb536('0x3e')]['create'](_0x52b7bf['body'],{'raw':!![]})['then'](function(_0x42428d){_0x543d5f=_0x42428d;return db[_0xb536('0x3e')]['findAll']({'raw':!![]});})[_0xb536('0x1e')](function(_0x50d1fe){var _0xd2195a=fs[_0xb536('0x64')](path['join'](config[_0xb536('0x65')],'server/files/templates/trunk.ejs'),_0xb536('0x66'));var _0x29a164=fs[_0xb536('0x64')](path[_0xb536('0x67')](config['root'],_0xb536('0x68')),_0xb536('0x66'));var _0x1c1a2e=ejs[_0xb536('0x69')](_0xd2195a,{'trunks':_0x50d1fe||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_trunks.conf',_0x1c1a2e);if(_0x543d5f['registry']){var _0x1e1829=ejs[_0xb536('0x69')](_0x29a164,{'trunks':_0x50d1fe||[]});fs[_0xb536('0x6a')](_0xb536('0x6b'),_0x1e1829);}})[_0xb536('0x1e')](function(){return respondWithRpcPromise(_0xb536('0x6c'),_0xb536('0x5d'),{'module':_0xb536('0x6d')});})[_0xb536('0x1e')](function(){var _0x4f30a7=_0x52b7bf['user'][_0xb536('0x35')]({'plain':!![]});if(!_0x4f30a7)throw new Error(_0xb536('0x5e'));if(_0x4f30a7[_0xb536('0x6e')]===_0xb536('0x5f')){var _0x4fe416=_0x543d5f['get']({'plain':!![]});return db[_0xb536('0x60')][_0xb536('0x57')]({'where':{'name':_0xb536('0x36'),'userProfileId':_0x4f30a7[_0xb536('0x61')]},'raw':!![]})['then'](function(_0x11a83b){if(_0x11a83b&&_0x11a83b[_0xb536('0x62')]===0x0){return db[_0xb536('0x6f')][_0xb536('0x5d')]({'name':_0x4fe416['name'],'resourceId':_0x4fe416['id'],'type':_0x11a83b[_0xb536('0x3b')],'sectionId':_0x11a83b['id']},{})[_0xb536('0x1e')](function(){return _0x543d5f;});}else{return _0x543d5f;}})[_0xb536('0x28')](function(_0x205029){logger[_0xb536('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x205029);throw _0x205029;});}return _0x543d5f;})[_0xb536('0x1e')](respondWithResult(_0xf24c7e,0xc9))[_0xb536('0x28')](handleError(_0xf24c7e,null));};exports[_0xb536('0x34')]=function(_0xd0eddb,_0x50190d,_0x352fee){var _0x3ac3db;return db[_0xb536('0x3e')][_0xb536('0x57')]({'where':{'id':_0xd0eddb[_0xb536('0x52')]['id']}})['then'](handleEntityNotFound(_0x50190d,null))[_0xb536('0x1e')](saveUpdates(_0xd0eddb[_0xb536('0x5c')],null))[_0xb536('0x1e')](function(_0x19d115){if(_0x19d115){_0x3ac3db=_0x19d115;return db[_0xb536('0x3e')]['findAll']({'raw':!![]});}})[_0xb536('0x1e')](function(_0x440cbe){if(_0x440cbe){var _0x14cd73=fs[_0xb536('0x64')](path[_0xb536('0x67')](config[_0xb536('0x65')],_0xb536('0x70')),'utf8');var _0x2ab435=fs[_0xb536('0x64')](path[_0xb536('0x67')](config[_0xb536('0x65')],_0xb536('0x68')),_0xb536('0x66'));var _0x533818=ejs[_0xb536('0x69')](_0x14cd73,{'trunks':_0x440cbe||[]});fs[_0xb536('0x6a')](_0xb536('0x71'),_0x533818);var _0x14b73d=ejs[_0xb536('0x69')](_0x2ab435,{'trunks':_0x440cbe||[]});fs[_0xb536('0x6a')](_0xb536('0x6b'),_0x14b73d);return respondWithRpcPromise('Reload',_0xb536('0x34'),{'module':_0xb536('0x6d')});}return null;})[_0xb536('0x1e')](function(_0x5ba44a){if(_0x5ba44a){return _0x3ac3db;}})['then'](respondWithResult(_0x50190d,null))[_0xb536('0x28')](handleError(_0x50190d,null));};exports[_0xb536('0x37')]=function(_0x46a0b8,_0x31049c,_0x44e1d4){var _0x93dbd;return db[_0xb536('0x3e')]['find']({'where':{'id':_0x46a0b8[_0xb536('0x52')]['id']}})['then'](handleEntityNotFound(_0x31049c,null))[_0xb536('0x1e')](removeEntity(_0x31049c,null))['then'](function(){return db[_0xb536('0x3e')]['findAll']({'raw':!![]});})[_0xb536('0x1e')](function(_0x49dd1d){var _0x175bc8=fs[_0xb536('0x64')](path['join'](config['root'],_0xb536('0x70')),'utf8');var _0x254981=fs[_0xb536('0x64')](path[_0xb536('0x67')](config[_0xb536('0x65')],'server/files/templates/registry.ejs'),_0xb536('0x66'));var _0x2fc678=ejs['render'](_0x175bc8,{'trunks':_0x49dd1d});var _0x2f923a=ejs[_0xb536('0x69')](_0x254981,{'trunks':_0x49dd1d});fs[_0xb536('0x6a')]('/etc/asterisk/sip_xcally_trunks.conf',_0x2fc678);fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x2f923a);return respondWithRpcPromise('Reload',_0xb536('0x37'),{'module':'chan_sip.so'});})['catch'](handleError(_0x31049c,null));};