Built motion from commit (unavailable).|2.5.18
[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 _0xdbcb=['send','index','map','Trunk','key','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','catch','rawAttributes','options','find','omit','createdAt','body','updatedAt','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','utf8','readFileSync','join','server/files/templates/registry.ejs','render','writeFileSync','registry','Reload','chan_sip.so','UserProfileSection','UserProfileResource','update','server/files/templates/trunk.ejs','/etc/asterisk/sip_xcally_trunks.conf','/etc/asterisk/sip_xcally_registers.conf','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','request','info','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','Trunk,\x20%s,\x20%s','result','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','then','destroy','get','Trunks','name'];(function(_0x1e699f,_0x3174f2){var _0x2719d6=function(_0x20ec21){while(--_0x20ec21){_0x1e699f['push'](_0x1e699f['shift']());}};_0x2719d6(++_0x3174f2);}(_0xdbcb,0xa7));var _0xbdbc=function(_0xd63e3a,_0x1bd6eb){_0xd63e3a=_0xd63e3a-0x0;var _0x19c178=_0xdbcb[_0xd63e3a];return _0x19c178;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbdbc('0x0'));var rimraf=require(_0xbdbc('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbdbc('0x2'));var rp=require(_0xbdbc('0x3'));var moment=require(_0xbdbc('0x4'));var BPromise=require(_0xbdbc('0x5'));var Mustache=require('mustache');var util=require(_0xbdbc('0x6'));var path=require(_0xbdbc('0x7'));var sox=require(_0xbdbc('0x8'));var csv=require(_0xbdbc('0x9'));var ejs=require(_0xbdbc('0xa'));var fs=require('fs');var _=require(_0xbdbc('0xb'));var squel=require(_0xbdbc('0xc'));var crypto=require(_0xbdbc('0xd'));var jsforce=require(_0xbdbc('0xe'));var deskjs=require(_0xbdbc('0xf'));var toCsv=require(_0xbdbc('0x9'));var querystring=require(_0xbdbc('0x10'));var Papa=require('papaparse');var Redis=require(_0xbdbc('0x11'));var authService=require(_0xbdbc('0x12'));var qs=require(_0xbdbc('0x13'));var as=require(_0xbdbc('0x14'));var hardwareService=require(_0xbdbc('0x15'));var logger=require('../../config/logger')(_0xbdbc('0x16'));var utils=require(_0xbdbc('0x17'));var config=require(_0xbdbc('0x18'));var licenseUtil=require(_0xbdbc('0x19'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x150d71,_0x514120,_0x2ed304,_0x4d6e42){return new BPromise(function(_0x3a7072,_0x1b0d61){var _0x3c6258=_0x4d6e42||client;return _0x3c6258[_0xbdbc('0x1a')](_0x150d71,_0x2ed304)['then'](function(_0xdd52a8){logger[_0xbdbc('0x1b')]('Trunk,\x20%s,\x20%s',_0x514120,'request\x20sent');logger[_0xbdbc('0x1c')](_0xbdbc('0x1d'),_0x514120,_0xbdbc('0x1e'),JSON[_0xbdbc('0x1f')](_0xdd52a8));if(_0xdd52a8['error']){if(_0xdd52a8[_0xbdbc('0x20')][_0xbdbc('0x21')]===0x1f4){logger['error']('Trunk,\x20%s,\x20%s',_0x514120,_0xdd52a8[_0xbdbc('0x20')][_0xbdbc('0x22')]);return _0x1b0d61(_0xdd52a8[_0xbdbc('0x20')]['message']);}logger[_0xbdbc('0x20')](_0xbdbc('0x23'),_0x514120,_0xdd52a8['error'][_0xbdbc('0x22')]);return _0x3a7072(_0xdd52a8[_0xbdbc('0x20')][_0xbdbc('0x22')]);}else{logger[_0xbdbc('0x1b')](_0xbdbc('0x23'),_0x514120,_0xbdbc('0x1e'));_0x3a7072(_0xdd52a8[_0xbdbc('0x24')]['message']);}})['catch'](function(_0x518d0c){logger[_0xbdbc('0x20')](_0xbdbc('0x23'),_0x514120,_0x518d0c);_0x1b0d61(_0x518d0c);});});}function respondWithStatusCode(_0x21491b,_0x4821a1){_0x4821a1=_0x4821a1||0xcc;return function(_0x3fe259){if(_0x3fe259){return _0x21491b[_0xbdbc('0x25')](_0x4821a1);}return _0x21491b['status'](_0x4821a1)[_0xbdbc('0x26')]();};}function respondWithResult(_0x2ae4f1,_0x14aeb3){_0x14aeb3=_0x14aeb3||0xc8;return function(_0x44b41f){if(_0x44b41f){return _0x2ae4f1[_0xbdbc('0x27')](_0x14aeb3)[_0xbdbc('0x28')](_0x44b41f);}};}function respondWithFilteredResult(_0x514575,_0x246d87){return function(_0x138e2c){if(_0x138e2c){var _0x563d33=_0x138e2c[_0xbdbc('0x29')],_0x3e9b4d=_0x246d87[_0xbdbc('0x2a')],_0x4a62b3=_0x246d87[_0xbdbc('0x2a')]+_0x246d87[_0xbdbc('0x2b')],_0x50e773;if(_0x4a62b3>=_0x563d33){_0x4a62b3=_0x563d33;_0x50e773=0xc8;}else{_0x50e773=0xce;}_0x514575[_0xbdbc('0x27')](_0x50e773);return _0x514575[_0xbdbc('0x2c')](_0xbdbc('0x2d'),_0x3e9b4d+'-'+_0x4a62b3+'/'+_0x563d33)[_0xbdbc('0x28')](_0x138e2c);}return null;};}function patchUpdates(_0x486f30){return function(_0x37431f){try{jsonpatch[_0xbdbc('0x2e')](_0x37431f,_0x486f30,!![]);}catch(_0x1d98d8){return BPromise['reject'](_0x1d98d8);}return _0x37431f[_0xbdbc('0x2f')]();};}function saveUpdates(_0x205de1,_0x59ad74){return function(_0x12bf87){if(_0x12bf87){return _0x12bf87['update'](_0x205de1)[_0xbdbc('0x30')](function(_0x5518c3){return _0x5518c3;});}return null;};}function removeEntity(_0x23abc0,_0x3f0bb5){return function(_0x23b67b){if(_0x23b67b){return _0x23b67b[_0xbdbc('0x31')]()[_0xbdbc('0x30')](function(){var _0x214f0d=_0x23b67b[_0xbdbc('0x32')]({'plain':!![]});var _0x3f1c85=_0xbdbc('0x33');return db['UserProfileResource'][_0xbdbc('0x31')]({'where':{'type':_0x3f1c85,'resourceId':_0x214f0d['id']}})['then'](function(){return _0x23b67b;});})[_0xbdbc('0x30')](function(){_0x23abc0['status'](0xcc)[_0xbdbc('0x26')]();});}};}function handleEntityNotFound(_0x252844,_0x391103){return function(_0x15f14c){if(!_0x15f14c){_0x252844[_0xbdbc('0x25')](0x194);}return _0x15f14c;};}function handleError(_0x27d529,_0x12af7c){_0x12af7c=_0x12af7c||0x1f4;return function(_0x4729c0){logger[_0xbdbc('0x20')](_0x4729c0['stack']);if(_0x4729c0[_0xbdbc('0x34')]){delete _0x4729c0[_0xbdbc('0x34')];}_0x27d529[_0xbdbc('0x27')](_0x12af7c)[_0xbdbc('0x35')](_0x4729c0);};}exports[_0xbdbc('0x36')]=function(_0x1174cd,_0x2f3c0e){var _0x10bda1={},_0x438e76={},_0x170358={'count':0x0,'rows':[]};var _0x1c1254=_[_0xbdbc('0x37')](db[_0xbdbc('0x38')]['rawAttributes'],function(_0x3fe74e){return{'name':_0x3fe74e['fieldName'],'type':_0x3fe74e['type'][_0xbdbc('0x39')]};});_0x438e76[_0xbdbc('0x3a')]=_[_0xbdbc('0x37')](_0x1c1254,_0xbdbc('0x34'));_0x438e76['query']=_[_0xbdbc('0x3b')](_0x1174cd[_0xbdbc('0x3c')]);_0x438e76[_0xbdbc('0x3d')]=_['intersection'](_0x438e76[_0xbdbc('0x3a')],_0x438e76[_0xbdbc('0x3c')]);_0x10bda1[_0xbdbc('0x3e')]=_[_0xbdbc('0x3f')](_0x438e76[_0xbdbc('0x3a')],qs[_0xbdbc('0x40')](_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x40')]));_0x10bda1['attributes']=_0x10bda1[_0xbdbc('0x3e')]['length']?_0x10bda1['attributes']:_0x438e76['model'];if(!_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x41')]('nolimit')){_0x10bda1[_0xbdbc('0x2b')]=qs[_0xbdbc('0x2b')](_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x2b')]);_0x10bda1['offset']=qs[_0xbdbc('0x2a')](_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x2a')]);}_0x10bda1[_0xbdbc('0x42')]=qs[_0xbdbc('0x43')](_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x43')]);_0x10bda1[_0xbdbc('0x44')]=qs[_0xbdbc('0x3d')](_[_0xbdbc('0x45')](_0x1174cd[_0xbdbc('0x3c')],_0x438e76[_0xbdbc('0x3d')]),_0x1c1254);if(_0x1174cd[_0xbdbc('0x3c')][_0xbdbc('0x46')]){_0x10bda1[_0xbdbc('0x44')]=_[_0xbdbc('0x47')](_0x10bda1[_0xbdbc('0x44')],{'$or':_[_0xbdbc('0x37')](_0x1c1254,function(_0x5ecdb0){if(_0x5ecdb0[_0xbdbc('0x48')]!==_0xbdbc('0x49')){var _0x1f2c14={};_0x1f2c14[_0x5ecdb0['name']]={'$like':'%'+_0x1174cd['query']['filter']+'%'};return _0x1f2c14;}})});}_0x10bda1=_['merge']({},_0x10bda1,_0x1174cd['options']);var _0x1370e4={'where':_0x10bda1[_0xbdbc('0x44')]};return db[_0xbdbc('0x38')][_0xbdbc('0x29')](_0x1370e4)[_0xbdbc('0x30')](function(_0x31d446){_0x170358[_0xbdbc('0x29')]=_0x31d446;if(_0x1174cd['query'][_0xbdbc('0x4a')]){_0x10bda1[_0xbdbc('0x4b')]=[{'all':!![]}];}return db[_0xbdbc('0x38')][_0xbdbc('0x4c')](_0x10bda1);})['then'](function(_0x4a0276){_0x170358[_0xbdbc('0x4d')]=_0x4a0276;return _0x170358;})['then'](respondWithFilteredResult(_0x2f3c0e,_0x10bda1))[_0xbdbc('0x4e')](handleError(_0x2f3c0e,null));};exports['show']=function(_0x200ecb,_0x53f667){var _0x560ffa={'raw':![],'where':{'id':_0x200ecb['params']['id']}},_0xada22a={};_0xada22a['model']=_['keys'](db['Trunk'][_0xbdbc('0x4f')]);_0xada22a[_0xbdbc('0x3c')]=_[_0xbdbc('0x3b')](_0x200ecb['query']);_0xada22a[_0xbdbc('0x3d')]=_['intersection'](_0xada22a[_0xbdbc('0x3a')],_0xada22a[_0xbdbc('0x3c')]);_0x560ffa[_0xbdbc('0x3e')]=_[_0xbdbc('0x3f')](_0xada22a['model'],qs['fields'](_0x200ecb[_0xbdbc('0x3c')][_0xbdbc('0x40')]));_0x560ffa['attributes']=_0x560ffa['attributes']['length']?_0x560ffa[_0xbdbc('0x3e')]:_0xada22a[_0xbdbc('0x3a')];if(_0x200ecb[_0xbdbc('0x3c')][_0xbdbc('0x4a')]){_0x560ffa[_0xbdbc('0x4b')]=[{'all':!![]}];}_0x560ffa=_[_0xbdbc('0x47')]({},_0x560ffa,_0x200ecb[_0xbdbc('0x50')]);return db[_0xbdbc('0x38')][_0xbdbc('0x51')](_0x560ffa)[_0xbdbc('0x30')](handleEntityNotFound(_0x53f667,null))['then'](respondWithResult(_0x53f667,null))[_0xbdbc('0x4e')](handleError(_0x53f667,null));};exports['clone']=function(_0x2d6861,_0x41d56e){var _0x3feb7c={'where':{'id':_0x2d6861['params']['id']}},_0x36e727={};_0x36e727[_0xbdbc('0x3a')]=_[_0xbdbc('0x3b')](db[_0xbdbc('0x38')][_0xbdbc('0x4f')]);_0x3feb7c[_0xbdbc('0x3e')]=_[_0xbdbc('0x3f')](_0x36e727[_0xbdbc('0x3a')],qs[_0xbdbc('0x40')](_0x2d6861[_0xbdbc('0x3c')]['fields']));_0x3feb7c[_0xbdbc('0x3e')]=_0x3feb7c['attributes']['length']?_0x3feb7c['attributes']:_0x36e727[_0xbdbc('0x3a')];if(_0x2d6861[_0xbdbc('0x3c')]['includeAll']){_0x3feb7c[_0xbdbc('0x4b')]=[{'all':!![]}];}_0x3feb7c=_[_0xbdbc('0x47')]({},_0x3feb7c,_0x2d6861[_0xbdbc('0x50')]);return db['Trunk'][_0xbdbc('0x51')](_0x3feb7c)[_0xbdbc('0x30')](handleEntityNotFound(_0x41d56e,null))[_0xbdbc('0x30')](function(_0x5b8952){if(_0x5b8952){var _0x3c3bf5=_0x5b8952[_0xbdbc('0x32')]({'plain':!![]});_0x3c3bf5=qs[_0xbdbc('0x52')](_0x3c3bf5,['id',_0xbdbc('0x53'),'updatedAt']);_0x2d6861[_0xbdbc('0x54')]=_[_0xbdbc('0x52')](_0x2d6861[_0xbdbc('0x54')],['id','createdAt',_0xbdbc('0x55')]);return db['Trunk'][_0xbdbc('0x56')](_[_0xbdbc('0x47')](_0x3c3bf5,_0x2d6861['body']),{'include':_0x2d6861[_0xbdbc('0x3c')][_0xbdbc('0x4a')]?[{'all':!![]}]:undefined})['then'](function(_0xfef3e2){var _0xa42e2c=_0x2d6861[_0xbdbc('0x57')][_0xbdbc('0x32')]({'plain':!![]});if(!_0xa42e2c)throw new Error(_0xbdbc('0x58'));if(_0xa42e2c[_0xbdbc('0x59')]==='user'){var _0x459af5=_0xfef3e2['get']({'plain':!![]});var _0x4fac8e=_0xbdbc('0x33');return db['UserProfileSection']['find']({'where':{'name':_0x4fac8e,'userProfileId':_0xa42e2c[_0xbdbc('0x5a')]},'raw':!![]})[_0xbdbc('0x30')](function(_0x5b2563){if(_0x5b2563&&_0x5b2563[_0xbdbc('0x5b')]===0x0){return db['UserProfileResource']['create']({'name':_0x459af5[_0xbdbc('0x34')],'resourceId':_0x459af5['id'],'type':_0x5b2563[_0xbdbc('0x34')],'sectionId':_0x5b2563['id']},{})['then'](function(){return _0xfef3e2;});}else{return _0xfef3e2;}})[_0xbdbc('0x4e')](function(_0x2e28ab){logger[_0xbdbc('0x20')](_0xbdbc('0x5c'),_0x2e28ab);throw _0x2e28ab;});}return _0xfef3e2;});}})[_0xbdbc('0x30')](respondWithResult(_0x41d56e,0xc9))['catch'](handleError(_0x41d56e,null));};exports[_0xbdbc('0x56')]=function(_0x1bfb17,_0x6ca5c7,_0x35759b){var _0x5c44aa;return db[_0xbdbc('0x38')]['create'](_0x1bfb17[_0xbdbc('0x54')],{'raw':!![]})[_0xbdbc('0x30')](function(_0x4c89f3){_0x5c44aa=_0x4c89f3;return db[_0xbdbc('0x38')][_0xbdbc('0x4c')]({'raw':!![]});})[_0xbdbc('0x30')](function(_0x406ced){var _0x5a4a73=fs['readFileSync'](path['join'](config[_0xbdbc('0x5d')],'server/files/templates/trunk.ejs'),_0xbdbc('0x5e'));var _0x12aa7=fs[_0xbdbc('0x5f')](path[_0xbdbc('0x60')](config[_0xbdbc('0x5d')],_0xbdbc('0x61')),_0xbdbc('0x5e'));var _0xe69ffc=ejs[_0xbdbc('0x62')](_0x5a4a73,{'trunks':_0x406ced||[]});fs[_0xbdbc('0x63')]('/etc/asterisk/sip_xcally_trunks.conf',_0xe69ffc);if(_0x5c44aa[_0xbdbc('0x64')]){var _0x575f0c=ejs[_0xbdbc('0x62')](_0x12aa7,{'trunks':_0x406ced||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x575f0c);}})[_0xbdbc('0x30')](function(){return respondWithRpcPromise(_0xbdbc('0x65'),_0xbdbc('0x56'),{'module':_0xbdbc('0x66')});})[_0xbdbc('0x30')](function(){var _0x392779=_0x1bfb17[_0xbdbc('0x57')][_0xbdbc('0x32')]({'plain':!![]});if(!_0x392779)throw new Error(_0xbdbc('0x58'));if(_0x392779[_0xbdbc('0x59')]===_0xbdbc('0x57')){var _0x2eb29d=_0x5c44aa['get']({'plain':!![]});return db[_0xbdbc('0x67')]['find']({'where':{'name':_0xbdbc('0x33'),'userProfileId':_0x392779['userProfileId']},'raw':!![]})[_0xbdbc('0x30')](function(_0x2a1719){if(_0x2a1719&&_0x2a1719['autoAssociation']===0x0){return db[_0xbdbc('0x68')]['create']({'name':_0x2eb29d[_0xbdbc('0x34')],'resourceId':_0x2eb29d['id'],'type':_0x2a1719[_0xbdbc('0x34')],'sectionId':_0x2a1719['id']},{})[_0xbdbc('0x30')](function(){return _0x5c44aa;});}else{return _0x5c44aa;}})[_0xbdbc('0x4e')](function(_0x5d1d24){logger['error'](_0xbdbc('0x5c'),_0x5d1d24);throw _0x5d1d24;});}return _0x5c44aa;})[_0xbdbc('0x30')](respondWithResult(_0x6ca5c7,0xc9))[_0xbdbc('0x4e')](handleError(_0x6ca5c7,null));};exports[_0xbdbc('0x69')]=function(_0x1ece16,_0x21c44b,_0x48bc42){var _0x313c36;return db['Trunk'][_0xbdbc('0x51')]({'where':{'id':_0x1ece16['params']['id']}})[_0xbdbc('0x30')](handleEntityNotFound(_0x21c44b,null))[_0xbdbc('0x30')](saveUpdates(_0x1ece16['body'],null))[_0xbdbc('0x30')](function(_0x9d9d2f){if(_0x9d9d2f){_0x313c36=_0x9d9d2f;return db[_0xbdbc('0x38')][_0xbdbc('0x4c')]({'raw':!![]});}})[_0xbdbc('0x30')](function(_0x3be70b){if(_0x3be70b){var _0x26c5e1=fs[_0xbdbc('0x5f')](path[_0xbdbc('0x60')](config[_0xbdbc('0x5d')],_0xbdbc('0x6a')),_0xbdbc('0x5e'));var _0x51a0bc=fs[_0xbdbc('0x5f')](path['join'](config[_0xbdbc('0x5d')],_0xbdbc('0x61')),_0xbdbc('0x5e'));var _0x4965bf=ejs[_0xbdbc('0x62')](_0x26c5e1,{'trunks':_0x3be70b||[]});fs['writeFileSync'](_0xbdbc('0x6b'),_0x4965bf);var _0x3782ff=ejs[_0xbdbc('0x62')](_0x51a0bc,{'trunks':_0x3be70b||[]});fs[_0xbdbc('0x63')](_0xbdbc('0x6c'),_0x3782ff);return respondWithRpcPromise(_0xbdbc('0x65'),_0xbdbc('0x69'),{'module':_0xbdbc('0x66')});}return null;})[_0xbdbc('0x30')](function(_0x37c647){if(_0x37c647){return _0x313c36;}})[_0xbdbc('0x30')](respondWithResult(_0x21c44b,null))[_0xbdbc('0x4e')](handleError(_0x21c44b,null));};exports['destroy']=function(_0x45ee60,_0x12c016,_0x53abc5){var _0x56c9c5;return db['Trunk'][_0xbdbc('0x51')]({'where':{'id':_0x45ee60[_0xbdbc('0x6d')]['id']}})[_0xbdbc('0x30')](handleEntityNotFound(_0x12c016,null))[_0xbdbc('0x30')](removeEntity(_0x12c016,null))[_0xbdbc('0x30')](function(){return db[_0xbdbc('0x38')][_0xbdbc('0x4c')]({'raw':!![]});})['then'](function(_0xe59eb2){var _0x33f76f=fs['readFileSync'](path['join'](config[_0xbdbc('0x5d')],_0xbdbc('0x6a')),_0xbdbc('0x5e'));var _0x2d0a5e=fs[_0xbdbc('0x5f')](path['join'](config[_0xbdbc('0x5d')],'server/files/templates/registry.ejs'),_0xbdbc('0x5e'));var _0x82e535=ejs[_0xbdbc('0x62')](_0x33f76f,{'trunks':_0xe59eb2});var _0x35c968=ejs[_0xbdbc('0x62')](_0x2d0a5e,{'trunks':_0xe59eb2});fs[_0xbdbc('0x63')]('/etc/asterisk/sip_xcally_trunks.conf',_0x82e535);fs[_0xbdbc('0x63')](_0xbdbc('0x6c'),_0x35c968);return respondWithRpcPromise(_0xbdbc('0x65'),_0xbdbc('0x31'),{'module':_0xbdbc('0x66')});})[_0xbdbc('0x4e')](handleError(_0x12c016,null));};