Built motion from commit (unavailable).|2.5.24
[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 _0x2ec1=['send','map','Trunk','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','params','includeAll','find','clone','createdAt','updatedAt','body','omit','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_trunks.conf','registry','render','writeFileSync','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','info','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','end','json','count','offset','limit','status','set','apply','update','then','destroy','get','Trunks','UserProfileResource'];(function(_0x546d1d,_0x563949){var _0x89bcfb=function(_0x1089af){while(--_0x1089af){_0x546d1d['push'](_0x546d1d['shift']());}};_0x89bcfb(++_0x563949);}(_0x2ec1,0xab));var _0x12ec=function(_0x54822d,_0xe2a19f){_0x54822d=_0x54822d-0x0;var _0x2f688e=_0x2ec1[_0x54822d];return _0x2f688e;};'use strict';var pdf=require(_0x12ec('0x0'));var emlformat=require(_0x12ec('0x1'));var rimraf=require(_0x12ec('0x2'));var zipdir=require(_0x12ec('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x12ec('0x4'));var BPromise=require(_0x12ec('0x5'));var Mustache=require(_0x12ec('0x6'));var util=require(_0x12ec('0x7'));var path=require('path');var sox=require(_0x12ec('0x8'));var csv=require(_0x12ec('0x9'));var ejs=require(_0x12ec('0xa'));var fs=require('fs');var _=require(_0x12ec('0xb'));var squel=require(_0x12ec('0xc'));var crypto=require(_0x12ec('0xd'));var jsforce=require(_0x12ec('0xe'));var deskjs=require(_0x12ec('0xf'));var toCsv=require(_0x12ec('0x9'));var querystring=require(_0x12ec('0x10'));var Papa=require(_0x12ec('0x11'));var Redis=require(_0x12ec('0x12'));var authService=require(_0x12ec('0x13'));var qs=require(_0x12ec('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x12ec('0x15'));var logger=require('../../config/logger')(_0x12ec('0x16'));var utils=require(_0x12ec('0x17'));var config=require(_0x12ec('0x18'));var licenseUtil=require(_0x12ec('0x19'));var db=require(_0x12ec('0x1a'))['db'];var jayson=require(_0x12ec('0x1b'));var client=jayson[_0x12ec('0x1c')][_0x12ec('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x2e969f,_0x5e34b1,_0x2fa4e3,_0x47c99e){return new BPromise(function(_0x51f8e7,_0x51ecb7){var _0x5d7e55=_0x47c99e||client;return _0x5d7e55['request'](_0x2e969f,_0x2fa4e3)['then'](function(_0x47d81c){logger[_0x12ec('0x1e')](_0x12ec('0x1f'),_0x5e34b1,_0x12ec('0x20'));logger['debug'](_0x12ec('0x21'),_0x5e34b1,_0x12ec('0x20'),JSON[_0x12ec('0x22')](_0x47d81c));if(_0x47d81c[_0x12ec('0x23')]){if(_0x47d81c[_0x12ec('0x23')]['code']===0x1f4){logger[_0x12ec('0x23')]('Trunk,\x20%s,\x20%s',_0x5e34b1,_0x47d81c[_0x12ec('0x23')][_0x12ec('0x24')]);return _0x51ecb7(_0x47d81c['error'][_0x12ec('0x24')]);}logger[_0x12ec('0x23')](_0x12ec('0x1f'),_0x5e34b1,_0x47d81c[_0x12ec('0x23')][_0x12ec('0x24')]);return _0x51f8e7(_0x47d81c[_0x12ec('0x23')][_0x12ec('0x24')]);}else{logger[_0x12ec('0x1e')](_0x12ec('0x1f'),_0x5e34b1,'request\x20sent');_0x51f8e7(_0x47d81c[_0x12ec('0x25')]['message']);}})['catch'](function(_0x423a7e){logger[_0x12ec('0x23')](_0x12ec('0x1f'),_0x5e34b1,_0x423a7e);_0x51ecb7(_0x423a7e);});});}function respondWithStatusCode(_0x290f3d,_0x4d5bc8){_0x4d5bc8=_0x4d5bc8||0xcc;return function(_0x5a9f06){if(_0x5a9f06){return _0x290f3d[_0x12ec('0x26')](_0x4d5bc8);}return _0x290f3d['status'](_0x4d5bc8)[_0x12ec('0x27')]();};}function respondWithResult(_0x18f4c8,_0x1c7e89){_0x1c7e89=_0x1c7e89||0xc8;return function(_0x321ff4){if(_0x321ff4){return _0x18f4c8['status'](_0x1c7e89)[_0x12ec('0x28')](_0x321ff4);}};}function respondWithFilteredResult(_0x4b7e26,_0x2591ed){return function(_0x1450fc){if(_0x1450fc){var _0x1fe139=_0x1450fc[_0x12ec('0x29')],_0xcb6cbf=_0x2591ed[_0x12ec('0x2a')],_0x3111d6=_0x2591ed['offset']+_0x2591ed[_0x12ec('0x2b')],_0x59db71;if(_0x3111d6>=_0x1fe139){_0x3111d6=_0x1fe139;_0x59db71=0xc8;}else{_0x59db71=0xce;}_0x4b7e26[_0x12ec('0x2c')](_0x59db71);return _0x4b7e26[_0x12ec('0x2d')]('Content-Range',_0xcb6cbf+'-'+_0x3111d6+'/'+_0x1fe139)[_0x12ec('0x28')](_0x1450fc);}return null;};}function patchUpdates(_0x5313f8){return function(_0x596246){try{jsonpatch[_0x12ec('0x2e')](_0x596246,_0x5313f8,!![]);}catch(_0x22235d){return BPromise['reject'](_0x22235d);}return _0x596246['save']();};}function saveUpdates(_0x441e99,_0xe6b645){return function(_0x18d315){if(_0x18d315){return _0x18d315[_0x12ec('0x2f')](_0x441e99)[_0x12ec('0x30')](function(_0x1927b6){return _0x1927b6;});}return null;};}function removeEntity(_0x2478b4,_0x2ad9eb){return function(_0x29dc3e){if(_0x29dc3e){return _0x29dc3e[_0x12ec('0x31')]()[_0x12ec('0x30')](function(){var _0x3d68ed=_0x29dc3e[_0x12ec('0x32')]({'plain':!![]});var _0x179ae4=_0x12ec('0x33');return db[_0x12ec('0x34')][_0x12ec('0x31')]({'where':{'type':_0x179ae4,'resourceId':_0x3d68ed['id']}})[_0x12ec('0x30')](function(){return _0x29dc3e;});})[_0x12ec('0x30')](function(){_0x2478b4[_0x12ec('0x2c')](0xcc)[_0x12ec('0x27')]();});}};}function handleEntityNotFound(_0x25a0c0,_0x56ed22){return function(_0x5d91d2){if(!_0x5d91d2){_0x25a0c0[_0x12ec('0x26')](0x194);}return _0x5d91d2;};}function handleError(_0x1711ae,_0x3b7279){_0x3b7279=_0x3b7279||0x1f4;return function(_0x5e296b){logger[_0x12ec('0x23')](_0x5e296b['stack']);if(_0x5e296b['name']){delete _0x5e296b['name'];}_0x1711ae[_0x12ec('0x2c')](_0x3b7279)[_0x12ec('0x35')](_0x5e296b);};}exports['index']=function(_0x2c2360,_0x4379ad){var _0x3fe1b9={},_0xf69033={},_0x502782={'count':0x0,'rows':[]};var _0x4fb77a=_[_0x12ec('0x36')](db[_0x12ec('0x37')][_0x12ec('0x38')],function(_0x3477a0){return{'name':_0x3477a0[_0x12ec('0x39')],'type':_0x3477a0[_0x12ec('0x3a')][_0x12ec('0x3b')]};});_0xf69033[_0x12ec('0x3c')]=_['map'](_0x4fb77a,_0x12ec('0x3d'));_0xf69033[_0x12ec('0x3e')]=_[_0x12ec('0x3f')](_0x2c2360[_0x12ec('0x3e')]);_0xf69033[_0x12ec('0x40')]=_[_0x12ec('0x41')](_0xf69033['model'],_0xf69033[_0x12ec('0x3e')]);_0x3fe1b9[_0x12ec('0x42')]=_[_0x12ec('0x41')](_0xf69033[_0x12ec('0x3c')],qs[_0x12ec('0x43')](_0x2c2360[_0x12ec('0x3e')]['fields']));_0x3fe1b9[_0x12ec('0x42')]=_0x3fe1b9[_0x12ec('0x42')][_0x12ec('0x44')]?_0x3fe1b9[_0x12ec('0x42')]:_0xf69033[_0x12ec('0x3c')];if(!_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x45')](_0x12ec('0x46'))){_0x3fe1b9[_0x12ec('0x2b')]=qs[_0x12ec('0x2b')](_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x2b')]);_0x3fe1b9['offset']=qs['offset'](_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x2a')]);}_0x3fe1b9[_0x12ec('0x47')]=qs['sort'](_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x48')]);_0x3fe1b9['where']=qs['filters'](_[_0x12ec('0x49')](_0x2c2360[_0x12ec('0x3e')],_0xf69033[_0x12ec('0x40')]),_0x4fb77a);if(_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x4a')]){_0x3fe1b9[_0x12ec('0x4b')]=_[_0x12ec('0x4c')](_0x3fe1b9[_0x12ec('0x4b')],{'$or':_[_0x12ec('0x36')](_0x4fb77a,function(_0x1d1f71){if(_0x1d1f71['type']!==_0x12ec('0x4d')){var _0x3c2905={};_0x3c2905[_0x1d1f71[_0x12ec('0x3d')]]={'$like':'%'+_0x2c2360[_0x12ec('0x3e')][_0x12ec('0x4a')]+'%'};return _0x3c2905;}})});}_0x3fe1b9=_[_0x12ec('0x4c')]({},_0x3fe1b9,_0x2c2360[_0x12ec('0x4e')]);var _0x2d4031={'where':_0x3fe1b9[_0x12ec('0x4b')]};return db[_0x12ec('0x37')][_0x12ec('0x29')](_0x2d4031)[_0x12ec('0x30')](function(_0x21e2be){_0x502782[_0x12ec('0x29')]=_0x21e2be;if(_0x2c2360[_0x12ec('0x3e')]['includeAll']){_0x3fe1b9[_0x12ec('0x4f')]=[{'all':!![]}];}return db[_0x12ec('0x37')][_0x12ec('0x50')](_0x3fe1b9);})['then'](function(_0x523d14){_0x502782[_0x12ec('0x51')]=_0x523d14;return _0x502782;})[_0x12ec('0x30')](respondWithFilteredResult(_0x4379ad,_0x3fe1b9))[_0x12ec('0x52')](handleError(_0x4379ad,null));};exports['show']=function(_0x2c5060,_0x364320){var _0x35599f={'raw':![],'where':{'id':_0x2c5060[_0x12ec('0x53')]['id']}},_0x47a295={};_0x47a295[_0x12ec('0x3c')]=_[_0x12ec('0x3f')](db[_0x12ec('0x37')][_0x12ec('0x38')]);_0x47a295[_0x12ec('0x3e')]=_[_0x12ec('0x3f')](_0x2c5060[_0x12ec('0x3e')]);_0x47a295[_0x12ec('0x40')]=_[_0x12ec('0x41')](_0x47a295[_0x12ec('0x3c')],_0x47a295[_0x12ec('0x3e')]);_0x35599f[_0x12ec('0x42')]=_[_0x12ec('0x41')](_0x47a295[_0x12ec('0x3c')],qs[_0x12ec('0x43')](_0x2c5060[_0x12ec('0x3e')][_0x12ec('0x43')]));_0x35599f[_0x12ec('0x42')]=_0x35599f[_0x12ec('0x42')][_0x12ec('0x44')]?_0x35599f[_0x12ec('0x42')]:_0x47a295[_0x12ec('0x3c')];if(_0x2c5060[_0x12ec('0x3e')][_0x12ec('0x54')]){_0x35599f[_0x12ec('0x4f')]=[{'all':!![]}];}_0x35599f=_[_0x12ec('0x4c')]({},_0x35599f,_0x2c5060['options']);return db[_0x12ec('0x37')][_0x12ec('0x55')](_0x35599f)[_0x12ec('0x30')](handleEntityNotFound(_0x364320,null))[_0x12ec('0x30')](respondWithResult(_0x364320,null))[_0x12ec('0x52')](handleError(_0x364320,null));};exports[_0x12ec('0x56')]=function(_0x136124,_0x37bc05){var _0x4b003e={'where':{'id':_0x136124[_0x12ec('0x53')]['id']}},_0x2baf1d={};_0x2baf1d['model']=_[_0x12ec('0x3f')](db[_0x12ec('0x37')]['rawAttributes']);_0x4b003e[_0x12ec('0x42')]=_['intersection'](_0x2baf1d['model'],qs[_0x12ec('0x43')](_0x136124[_0x12ec('0x3e')][_0x12ec('0x43')]));_0x4b003e['attributes']=_0x4b003e[_0x12ec('0x42')][_0x12ec('0x44')]?_0x4b003e[_0x12ec('0x42')]:_0x2baf1d['model'];if(_0x136124[_0x12ec('0x3e')][_0x12ec('0x54')]){_0x4b003e[_0x12ec('0x4f')]=[{'all':!![]}];}_0x4b003e=_[_0x12ec('0x4c')]({},_0x4b003e,_0x136124['options']);return db[_0x12ec('0x37')]['find'](_0x4b003e)['then'](handleEntityNotFound(_0x37bc05,null))[_0x12ec('0x30')](function(_0x5c6201){if(_0x5c6201){var _0x483db9=_0x5c6201[_0x12ec('0x32')]({'plain':!![]});_0x483db9=qs['omit'](_0x483db9,['id',_0x12ec('0x57'),_0x12ec('0x58')]);_0x136124[_0x12ec('0x59')]=_[_0x12ec('0x5a')](_0x136124['body'],['id',_0x12ec('0x57'),_0x12ec('0x58')]);return db[_0x12ec('0x37')][_0x12ec('0x5b')](_[_0x12ec('0x4c')](_0x483db9,_0x136124['body']),{'include':_0x136124['query'][_0x12ec('0x54')]?[{'all':!![]}]:undefined})[_0x12ec('0x30')](function(_0x3dda1c){var _0x201e90=_0x136124['user']['get']({'plain':!![]});if(!_0x201e90)throw new Error(_0x12ec('0x5c'));if(_0x201e90[_0x12ec('0x5d')]===_0x12ec('0x5e')){var _0x173ebb=_0x3dda1c[_0x12ec('0x32')]({'plain':!![]});var _0x20789d=_0x12ec('0x33');return db[_0x12ec('0x5f')][_0x12ec('0x55')]({'where':{'name':_0x20789d,'userProfileId':_0x201e90[_0x12ec('0x60')]},'raw':!![]})[_0x12ec('0x30')](function(_0x32d157){if(_0x32d157&&_0x32d157[_0x12ec('0x61')]===0x0){return db[_0x12ec('0x34')][_0x12ec('0x5b')]({'name':_0x173ebb[_0x12ec('0x3d')],'resourceId':_0x173ebb['id'],'type':_0x32d157[_0x12ec('0x3d')],'sectionId':_0x32d157['id']},{})[_0x12ec('0x30')](function(){return _0x3dda1c;});}else{return _0x3dda1c;}})[_0x12ec('0x52')](function(_0x4c3e2a){logger[_0x12ec('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4c3e2a);throw _0x4c3e2a;});}return _0x3dda1c;});}})[_0x12ec('0x30')](respondWithResult(_0x37bc05,0xc9))[_0x12ec('0x52')](handleError(_0x37bc05,null));};exports[_0x12ec('0x5b')]=function(_0xcb6f87,_0x76b20a,_0x1d65a8){var _0xc4f0f4;return db['Trunk'][_0x12ec('0x5b')](_0xcb6f87[_0x12ec('0x59')],{'raw':!![]})['then'](function(_0x420012){_0xc4f0f4=_0x420012;return db[_0x12ec('0x37')][_0x12ec('0x50')]({'raw':!![]});})['then'](function(_0x4c1778){var _0x446ff7=fs['readFileSync'](path[_0x12ec('0x62')](config[_0x12ec('0x63')],_0x12ec('0x64')),_0x12ec('0x65'));var _0x21acd5=fs['readFileSync'](path[_0x12ec('0x62')](config[_0x12ec('0x63')],_0x12ec('0x66')),_0x12ec('0x65'));var _0x55ece8=ejs['render'](_0x446ff7,{'trunks':_0x4c1778||[]});fs['writeFileSync'](_0x12ec('0x67'),_0x55ece8);if(_0xc4f0f4[_0x12ec('0x68')]){var _0x5a7ade=ejs[_0x12ec('0x69')](_0x21acd5,{'trunks':_0x4c1778||[]});fs[_0x12ec('0x6a')](_0x12ec('0x6b'),_0x5a7ade);}})[_0x12ec('0x30')](function(){return respondWithRpcPromise(_0x12ec('0x6c'),_0x12ec('0x5b'),{'module':_0x12ec('0x6d')});})[_0x12ec('0x30')](function(){var _0x3ac4d0=_0xcb6f87[_0x12ec('0x5e')][_0x12ec('0x32')]({'plain':!![]});if(!_0x3ac4d0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3ac4d0['role']===_0x12ec('0x5e')){var _0x1cdd32=_0xc4f0f4[_0x12ec('0x32')]({'plain':!![]});return db['UserProfileSection'][_0x12ec('0x55')]({'where':{'name':_0x12ec('0x33'),'userProfileId':_0x3ac4d0['userProfileId']},'raw':!![]})[_0x12ec('0x30')](function(_0x2c8225){if(_0x2c8225&&_0x2c8225[_0x12ec('0x61')]===0x0){return db['UserProfileResource']['create']({'name':_0x1cdd32['name'],'resourceId':_0x1cdd32['id'],'type':_0x2c8225[_0x12ec('0x3d')],'sectionId':_0x2c8225['id']},{})[_0x12ec('0x30')](function(){return _0xc4f0f4;});}else{return _0xc4f0f4;}})[_0x12ec('0x52')](function(_0x35580a){logger[_0x12ec('0x23')](_0x12ec('0x6e'),_0x35580a);throw _0x35580a;});}return _0xc4f0f4;})[_0x12ec('0x30')](respondWithResult(_0x76b20a,0xc9))[_0x12ec('0x52')](handleError(_0x76b20a,null));};exports[_0x12ec('0x2f')]=function(_0x4caadd,_0x47d6d3,_0x234771){var _0x4b629d;return db[_0x12ec('0x37')]['find']({'where':{'id':_0x4caadd[_0x12ec('0x53')]['id']}})['then'](handleEntityNotFound(_0x47d6d3,null))['then'](saveUpdates(_0x4caadd[_0x12ec('0x59')],null))['then'](function(_0x5d3d9a){if(_0x5d3d9a){_0x4b629d=_0x5d3d9a;return db[_0x12ec('0x37')][_0x12ec('0x50')]({'raw':!![]});}})[_0x12ec('0x30')](function(_0x4bb087){if(_0x4bb087){var _0x534f1e=fs[_0x12ec('0x6f')](path[_0x12ec('0x62')](config['root'],_0x12ec('0x64')),_0x12ec('0x65'));var _0x239a28=fs[_0x12ec('0x6f')](path[_0x12ec('0x62')](config[_0x12ec('0x63')],_0x12ec('0x66')),_0x12ec('0x65'));var _0x3a54bc=ejs[_0x12ec('0x69')](_0x534f1e,{'trunks':_0x4bb087||[]});fs[_0x12ec('0x6a')](_0x12ec('0x67'),_0x3a54bc);var _0x3669c5=ejs[_0x12ec('0x69')](_0x239a28,{'trunks':_0x4bb087||[]});fs['writeFileSync'](_0x12ec('0x6b'),_0x3669c5);return respondWithRpcPromise('Reload','update',{'module':_0x12ec('0x6d')});}return null;})['then'](function(_0x16358f){if(_0x16358f){return _0x4b629d;}})[_0x12ec('0x30')](respondWithResult(_0x47d6d3,null))['catch'](handleError(_0x47d6d3,null));};exports[_0x12ec('0x31')]=function(_0x4bedf3,_0xb69e0,_0x39343b){var _0x537f00;return db['Trunk'][_0x12ec('0x55')]({'where':{'id':_0x4bedf3['params']['id']}})[_0x12ec('0x30')](handleEntityNotFound(_0xb69e0,null))['then'](removeEntity(_0xb69e0,null))[_0x12ec('0x30')](function(){return db[_0x12ec('0x37')][_0x12ec('0x50')]({'raw':!![]});})[_0x12ec('0x30')](function(_0x401650){var _0xab7c75=fs['readFileSync'](path['join'](config[_0x12ec('0x63')],_0x12ec('0x64')),'utf8');var _0x552d53=fs[_0x12ec('0x6f')](path[_0x12ec('0x62')](config['root'],_0x12ec('0x66')),_0x12ec('0x65'));var _0x2ccabd=ejs[_0x12ec('0x69')](_0xab7c75,{'trunks':_0x401650});var _0xf2fa04=ejs['render'](_0x552d53,{'trunks':_0x401650});fs['writeFileSync'](_0x12ec('0x67'),_0x2ccabd);fs[_0x12ec('0x6a')]('/etc/asterisk/sip_xcally_registers.conf',_0xf2fa04);return respondWithRpcPromise(_0x12ec('0x6c'),'destroy',{'module':'chan_sip.so'});})[_0x12ec('0x52')](handleError(_0xb69e0,null));};