Built motion from commit (unavailable).|2.5.27
[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 _0x8d00=['pick','filters','filter','merge','Trunk','include','rows','show','params','rawAttributes','includeAll','clone','options','find','omit','updatedAt','body','createdAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','create','findAll','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','writeFileSync','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','UserProfileSection','UserProfileResource','update','render','rimraf','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','client','http','then','info','Trunk,\x20%s,\x20%s','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','result','catch','sendStatus','status','end','count','offset','Content-Range','apply','reject','save','destroy','get','Trunks','stack','name','send','index','map','type','key','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','sort','where'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x8d00,0x160));var _0x08d0=function(_0x21a746,_0x389e79){_0x21a746=_0x21a746-0x0;var _0x2c9076=_0x8d00[_0x21a746];return _0x2c9076;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x08d0('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x08d0('0x1'));var moment=require(_0x08d0('0x2'));var BPromise=require(_0x08d0('0x3'));var Mustache=require(_0x08d0('0x4'));var util=require('util');var path=require(_0x08d0('0x5'));var sox=require(_0x08d0('0x6'));var csv=require('to-csv');var ejs=require(_0x08d0('0x7'));var fs=require('fs');var fs_extra=require(_0x08d0('0x8'));var _=require(_0x08d0('0x9'));var squel=require('squel');var crypto=require(_0x08d0('0xa'));var jsforce=require(_0x08d0('0xb'));var deskjs=require(_0x08d0('0xc'));var toCsv=require(_0x08d0('0xd'));var querystring=require(_0x08d0('0xe'));var Papa=require(_0x08d0('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x08d0('0x10'));var as=require(_0x08d0('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x08d0('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x08d0('0x13'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x08d0('0x14')][_0x08d0('0x15')]({'port':0x232a});function respondWithRpcPromise(_0x52323e,_0x3f9310,_0x2b2f53,_0x5867c3){return new BPromise(function(_0x57fa2a,_0x151e49){var _0x1dca0a=_0x5867c3||client;return _0x1dca0a['request'](_0x52323e,_0x2b2f53)[_0x08d0('0x16')](function(_0x6dafae){logger[_0x08d0('0x17')](_0x08d0('0x18'),_0x3f9310,'request\x20sent');logger[_0x08d0('0x19')](_0x08d0('0x1a'),_0x3f9310,'request\x20sent',JSON['stringify'](_0x6dafae));if(_0x6dafae[_0x08d0('0x1b')]){if(_0x6dafae[_0x08d0('0x1b')][_0x08d0('0x1c')]===0x1f4){logger[_0x08d0('0x1b')](_0x08d0('0x18'),_0x3f9310,_0x6dafae[_0x08d0('0x1b')][_0x08d0('0x1d')]);return _0x151e49(_0x6dafae[_0x08d0('0x1b')][_0x08d0('0x1d')]);}logger[_0x08d0('0x1b')]('Trunk,\x20%s,\x20%s',_0x3f9310,_0x6dafae[_0x08d0('0x1b')][_0x08d0('0x1d')]);return _0x57fa2a(_0x6dafae[_0x08d0('0x1b')][_0x08d0('0x1d')]);}else{logger[_0x08d0('0x17')](_0x08d0('0x18'),_0x3f9310,_0x08d0('0x1e'));_0x57fa2a(_0x6dafae[_0x08d0('0x1f')]['message']);}})[_0x08d0('0x20')](function(_0x91c3ad){logger[_0x08d0('0x1b')](_0x08d0('0x18'),_0x3f9310,_0x91c3ad);_0x151e49(_0x91c3ad);});});}function respondWithStatusCode(_0x453ed2,_0x380b3a){_0x380b3a=_0x380b3a||0xcc;return function(_0x47ec7f){if(_0x47ec7f){return _0x453ed2[_0x08d0('0x21')](_0x380b3a);}return _0x453ed2[_0x08d0('0x22')](_0x380b3a)[_0x08d0('0x23')]();};}function respondWithResult(_0xb31ccd,_0x182eda){_0x182eda=_0x182eda||0xc8;return function(_0x5c189c){if(_0x5c189c){return _0xb31ccd[_0x08d0('0x22')](_0x182eda)['json'](_0x5c189c);}};}function respondWithFilteredResult(_0x41558d,_0x583b85){return function(_0x148fc3){if(_0x148fc3){var _0x4ebd8e=_0x148fc3[_0x08d0('0x24')],_0x31cf23=_0x583b85[_0x08d0('0x25')],_0x1714d5=_0x583b85[_0x08d0('0x25')]+_0x583b85['limit'],_0x1f2fa5;if(_0x1714d5>=_0x4ebd8e){_0x1714d5=_0x4ebd8e;_0x1f2fa5=0xc8;}else{_0x1f2fa5=0xce;}_0x41558d[_0x08d0('0x22')](_0x1f2fa5);return _0x41558d['set'](_0x08d0('0x26'),_0x31cf23+'-'+_0x1714d5+'/'+_0x4ebd8e)['json'](_0x148fc3);}return null;};}function patchUpdates(_0x2af407){return function(_0xc3dba){try{jsonpatch[_0x08d0('0x27')](_0xc3dba,_0x2af407,!![]);}catch(_0x3b39fc){return BPromise[_0x08d0('0x28')](_0x3b39fc);}return _0xc3dba[_0x08d0('0x29')]();};}function saveUpdates(_0x2f309f,_0x137baa){return function(_0x24f5ed){if(_0x24f5ed){return _0x24f5ed['update'](_0x2f309f)['then'](function(_0x3374a5){return _0x3374a5;});}return null;};}function removeEntity(_0x50632e,_0x3f5012){return function(_0x2b471b){if(_0x2b471b){return _0x2b471b[_0x08d0('0x2a')]()[_0x08d0('0x16')](function(){var _0x207497=_0x2b471b[_0x08d0('0x2b')]({'plain':!![]});var _0x1a69ce=_0x08d0('0x2c');return db['UserProfileResource'][_0x08d0('0x2a')]({'where':{'type':_0x1a69ce,'resourceId':_0x207497['id']}})[_0x08d0('0x16')](function(){return _0x2b471b;});})[_0x08d0('0x16')](function(){_0x50632e[_0x08d0('0x22')](0xcc)[_0x08d0('0x23')]();});}};}function handleEntityNotFound(_0x3ea793,_0x51e6f4){return function(_0x2b19b3){if(!_0x2b19b3){_0x3ea793[_0x08d0('0x21')](0x194);}return _0x2b19b3;};}function handleError(_0x463637,_0x37db5d){_0x37db5d=_0x37db5d||0x1f4;return function(_0x33d702){logger[_0x08d0('0x1b')](_0x33d702[_0x08d0('0x2d')]);if(_0x33d702['name']){delete _0x33d702[_0x08d0('0x2e')];}_0x463637['status'](_0x37db5d)[_0x08d0('0x2f')](_0x33d702);};}exports[_0x08d0('0x30')]=function(_0x50df48,_0x585c6c){var _0x95570a={},_0x2b7505={},_0x5eb30c={'count':0x0,'rows':[]};var _0x197022=_[_0x08d0('0x31')](db['Trunk']['rawAttributes'],function(_0x53464a){return{'name':_0x53464a['fieldName'],'type':_0x53464a[_0x08d0('0x32')][_0x08d0('0x33')]};});_0x2b7505[_0x08d0('0x34')]=_[_0x08d0('0x31')](_0x197022,_0x08d0('0x2e'));_0x2b7505['query']=_[_0x08d0('0x35')](_0x50df48[_0x08d0('0x36')]);_0x2b7505['filters']=_['intersection'](_0x2b7505[_0x08d0('0x34')],_0x2b7505[_0x08d0('0x36')]);_0x95570a[_0x08d0('0x37')]=_[_0x08d0('0x38')](_0x2b7505['model'],qs['fields'](_0x50df48['query'][_0x08d0('0x39')]));_0x95570a['attributes']=_0x95570a[_0x08d0('0x37')][_0x08d0('0x3a')]?_0x95570a[_0x08d0('0x37')]:_0x2b7505['model'];if(!_0x50df48[_0x08d0('0x36')][_0x08d0('0x3b')](_0x08d0('0x3c'))){_0x95570a[_0x08d0('0x3d')]=qs[_0x08d0('0x3d')](_0x50df48[_0x08d0('0x36')][_0x08d0('0x3d')]);_0x95570a[_0x08d0('0x25')]=qs[_0x08d0('0x25')](_0x50df48['query'][_0x08d0('0x25')]);}_0x95570a['order']=qs['sort'](_0x50df48['query'][_0x08d0('0x3e')]);_0x95570a[_0x08d0('0x3f')]=qs['filters'](_[_0x08d0('0x40')](_0x50df48['query'],_0x2b7505[_0x08d0('0x41')]),_0x197022);if(_0x50df48[_0x08d0('0x36')][_0x08d0('0x42')]){_0x95570a[_0x08d0('0x3f')]=_[_0x08d0('0x43')](_0x95570a[_0x08d0('0x3f')],{'$or':_[_0x08d0('0x31')](_0x197022,function(_0xed795){if(_0xed795[_0x08d0('0x32')]!=='VIRTUAL'){var _0x1fba19={};_0x1fba19[_0xed795[_0x08d0('0x2e')]]={'$like':'%'+_0x50df48[_0x08d0('0x36')][_0x08d0('0x42')]+'%'};return _0x1fba19;}})});}_0x95570a=_['merge']({},_0x95570a,_0x50df48['options']);var _0x320f20={'where':_0x95570a[_0x08d0('0x3f')]};return db[_0x08d0('0x44')][_0x08d0('0x24')](_0x320f20)[_0x08d0('0x16')](function(_0x580649){_0x5eb30c[_0x08d0('0x24')]=_0x580649;if(_0x50df48['query']['includeAll']){_0x95570a[_0x08d0('0x45')]=[{'all':!![]}];}return db[_0x08d0('0x44')]['findAll'](_0x95570a);})[_0x08d0('0x16')](function(_0x13313b){_0x5eb30c[_0x08d0('0x46')]=_0x13313b;return _0x5eb30c;})['then'](respondWithFilteredResult(_0x585c6c,_0x95570a))[_0x08d0('0x20')](handleError(_0x585c6c,null));};exports[_0x08d0('0x47')]=function(_0x44b602,_0x4ff944){var _0xcb8f51={'raw':![],'where':{'id':_0x44b602[_0x08d0('0x48')]['id']}},_0x31e871={};_0x31e871[_0x08d0('0x34')]=_['keys'](db[_0x08d0('0x44')][_0x08d0('0x49')]);_0x31e871['query']=_[_0x08d0('0x35')](_0x44b602['query']);_0x31e871[_0x08d0('0x41')]=_[_0x08d0('0x38')](_0x31e871['model'],_0x31e871[_0x08d0('0x36')]);_0xcb8f51['attributes']=_['intersection'](_0x31e871[_0x08d0('0x34')],qs[_0x08d0('0x39')](_0x44b602[_0x08d0('0x36')][_0x08d0('0x39')]));_0xcb8f51['attributes']=_0xcb8f51[_0x08d0('0x37')][_0x08d0('0x3a')]?_0xcb8f51[_0x08d0('0x37')]:_0x31e871[_0x08d0('0x34')];if(_0x44b602[_0x08d0('0x36')][_0x08d0('0x4a')]){_0xcb8f51[_0x08d0('0x45')]=[{'all':!![]}];}_0xcb8f51=_[_0x08d0('0x43')]({},_0xcb8f51,_0x44b602['options']);return db[_0x08d0('0x44')]['find'](_0xcb8f51)[_0x08d0('0x16')](handleEntityNotFound(_0x4ff944,null))[_0x08d0('0x16')](respondWithResult(_0x4ff944,null))[_0x08d0('0x20')](handleError(_0x4ff944,null));};exports[_0x08d0('0x4b')]=function(_0x48fb59,_0x101340){var _0x2f2155={'where':{'id':_0x48fb59[_0x08d0('0x48')]['id']}},_0x5b093d={};_0x5b093d['model']=_[_0x08d0('0x35')](db[_0x08d0('0x44')][_0x08d0('0x49')]);_0x2f2155[_0x08d0('0x37')]=_[_0x08d0('0x38')](_0x5b093d['model'],qs[_0x08d0('0x39')](_0x48fb59[_0x08d0('0x36')]['fields']));_0x2f2155[_0x08d0('0x37')]=_0x2f2155['attributes'][_0x08d0('0x3a')]?_0x2f2155[_0x08d0('0x37')]:_0x5b093d['model'];if(_0x48fb59[_0x08d0('0x36')]['includeAll']){_0x2f2155[_0x08d0('0x45')]=[{'all':!![]}];}_0x2f2155=_[_0x08d0('0x43')]({},_0x2f2155,_0x48fb59[_0x08d0('0x4c')]);return db[_0x08d0('0x44')][_0x08d0('0x4d')](_0x2f2155)[_0x08d0('0x16')](handleEntityNotFound(_0x101340,null))['then'](function(_0x40c6b0){if(_0x40c6b0){var _0x429941=_0x40c6b0[_0x08d0('0x2b')]({'plain':!![]});_0x429941=qs[_0x08d0('0x4e')](_0x429941,['id','createdAt',_0x08d0('0x4f')]);_0x48fb59['body']=_['omit'](_0x48fb59[_0x08d0('0x50')],['id',_0x08d0('0x51'),_0x08d0('0x4f')]);return db[_0x08d0('0x44')]['create'](_[_0x08d0('0x43')](_0x429941,_0x48fb59[_0x08d0('0x50')]),{'include':_0x48fb59[_0x08d0('0x36')]['includeAll']?[{'all':!![]}]:undefined})[_0x08d0('0x16')](function(_0x2fdc4e){var _0x201ae5=_0x48fb59['user']['get']({'plain':!![]});if(!_0x201ae5)throw new Error(_0x08d0('0x52'));if(_0x201ae5[_0x08d0('0x53')]===_0x08d0('0x54')){var _0x2ea642=_0x2fdc4e[_0x08d0('0x2b')]({'plain':!![]});var _0x5d7a50=_0x08d0('0x2c');return db['UserProfileSection']['find']({'where':{'name':_0x5d7a50,'userProfileId':_0x201ae5[_0x08d0('0x55')]},'raw':!![]})[_0x08d0('0x16')](function(_0x46486b){if(_0x46486b&&_0x46486b[_0x08d0('0x56')]===0x0){return db['UserProfileResource']['create']({'name':_0x2ea642[_0x08d0('0x2e')],'resourceId':_0x2ea642['id'],'type':_0x46486b[_0x08d0('0x2e')],'sectionId':_0x46486b['id']},{})['then'](function(){return _0x2fdc4e;});}else{return _0x2fdc4e;}})['catch'](function(_0x289785){logger[_0x08d0('0x1b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x289785);throw _0x289785;});}return _0x2fdc4e;});}})[_0x08d0('0x16')](respondWithResult(_0x101340,0xc9))[_0x08d0('0x20')](handleError(_0x101340,null));};exports[_0x08d0('0x57')]=function(_0x21df66,_0x6822f5,_0x2ff026){var _0x52ada2;return db[_0x08d0('0x44')][_0x08d0('0x57')](_0x21df66['body'],{'raw':!![]})['then'](function(_0x46295d){_0x52ada2=_0x46295d;return db[_0x08d0('0x44')][_0x08d0('0x58')]({'raw':!![]});})[_0x08d0('0x16')](function(_0x22d484){var _0x319837=fs[_0x08d0('0x59')](path[_0x08d0('0x5a')](config[_0x08d0('0x5b')],_0x08d0('0x5c')),_0x08d0('0x5d'));var _0x281065=fs[_0x08d0('0x59')](path[_0x08d0('0x5a')](config[_0x08d0('0x5b')],_0x08d0('0x5e')),'utf8');var _0x4f52fd=ejs['render'](_0x319837,{'trunks':_0x22d484||[]});fs[_0x08d0('0x5f')]('/etc/asterisk/sip_xcally_trunks.conf',_0x4f52fd);if(_0x52ada2[_0x08d0('0x60')]){var _0x4a838d=ejs['render'](_0x281065,{'trunks':_0x22d484||[]});fs[_0x08d0('0x5f')](_0x08d0('0x61'),_0x4a838d);}})[_0x08d0('0x16')](function(){return respondWithRpcPromise(_0x08d0('0x62'),_0x08d0('0x57'),{'module':_0x08d0('0x63')});})[_0x08d0('0x16')](function(){var _0x4c1842=_0x21df66[_0x08d0('0x54')]['get']({'plain':!![]});if(!_0x4c1842)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4c1842[_0x08d0('0x53')]===_0x08d0('0x54')){var _0x1d1244=_0x52ada2['get']({'plain':!![]});return db[_0x08d0('0x64')][_0x08d0('0x4d')]({'where':{'name':_0x08d0('0x2c'),'userProfileId':_0x4c1842[_0x08d0('0x55')]},'raw':!![]})[_0x08d0('0x16')](function(_0xfb3823){if(_0xfb3823&&_0xfb3823[_0x08d0('0x56')]===0x0){return db[_0x08d0('0x65')][_0x08d0('0x57')]({'name':_0x1d1244[_0x08d0('0x2e')],'resourceId':_0x1d1244['id'],'type':_0xfb3823[_0x08d0('0x2e')],'sectionId':_0xfb3823['id']},{})['then'](function(){return _0x52ada2;});}else{return _0x52ada2;}})['catch'](function(_0x3d780b){logger[_0x08d0('0x1b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d780b);throw _0x3d780b;});}return _0x52ada2;})[_0x08d0('0x16')](respondWithResult(_0x6822f5,0xc9))[_0x08d0('0x20')](handleError(_0x6822f5,null));};exports[_0x08d0('0x66')]=function(_0xd6936d,_0x214a32,_0xa054a4){var _0x533c53;return db['Trunk'][_0x08d0('0x4d')]({'where':{'id':_0xd6936d[_0x08d0('0x48')]['id']}})[_0x08d0('0x16')](handleEntityNotFound(_0x214a32,null))[_0x08d0('0x16')](saveUpdates(_0xd6936d[_0x08d0('0x50')],null))[_0x08d0('0x16')](function(_0x63a8b2){if(_0x63a8b2){_0x533c53=_0x63a8b2;return db[_0x08d0('0x44')][_0x08d0('0x58')]({'raw':!![]});}})[_0x08d0('0x16')](function(_0x3d1f02){if(_0x3d1f02){var _0x5d81c6=fs[_0x08d0('0x59')](path['join'](config[_0x08d0('0x5b')],_0x08d0('0x5c')),_0x08d0('0x5d'));var _0xa436c9=fs['readFileSync'](path[_0x08d0('0x5a')](config[_0x08d0('0x5b')],_0x08d0('0x5e')),'utf8');var _0x3d703c=ejs['render'](_0x5d81c6,{'trunks':_0x3d1f02||[]});fs[_0x08d0('0x5f')]('/etc/asterisk/sip_xcally_trunks.conf',_0x3d703c);var _0x5b0cce=ejs[_0x08d0('0x67')](_0xa436c9,{'trunks':_0x3d1f02||[]});fs[_0x08d0('0x5f')](_0x08d0('0x61'),_0x5b0cce);return respondWithRpcPromise(_0x08d0('0x62'),_0x08d0('0x66'),{'module':_0x08d0('0x63')});}return null;})[_0x08d0('0x16')](function(_0x54c368){if(_0x54c368){return _0x533c53;}})['then'](respondWithResult(_0x214a32,null))[_0x08d0('0x20')](handleError(_0x214a32,null));};exports['destroy']=function(_0x42c8c6,_0x324d42,_0x51405c){var _0x3eb8c8;return db[_0x08d0('0x44')][_0x08d0('0x4d')]({'where':{'id':_0x42c8c6['params']['id']}})[_0x08d0('0x16')](handleEntityNotFound(_0x324d42,null))[_0x08d0('0x16')](removeEntity(_0x324d42,null))[_0x08d0('0x16')](function(){return db[_0x08d0('0x44')][_0x08d0('0x58')]({'raw':!![]});})[_0x08d0('0x16')](function(_0x9ce842){var _0x5ac804=fs[_0x08d0('0x59')](path['join'](config[_0x08d0('0x5b')],'server/files/templates/trunk.ejs'),_0x08d0('0x5d'));var _0x5cdc9=fs[_0x08d0('0x59')](path['join'](config[_0x08d0('0x5b')],_0x08d0('0x5e')),_0x08d0('0x5d'));var _0x67fd5f=ejs[_0x08d0('0x67')](_0x5ac804,{'trunks':_0x9ce842});var _0x124781=ejs[_0x08d0('0x67')](_0x5cdc9,{'trunks':_0x9ce842});fs[_0x08d0('0x5f')]('/etc/asterisk/sip_xcally_trunks.conf',_0x67fd5f);fs[_0x08d0('0x5f')](_0x08d0('0x61'),_0x124781);return respondWithRpcPromise(_0x08d0('0x62'),'destroy',{'module':_0x08d0('0x63')});})[_0x08d0('0x20')](handleError(_0x324d42,null));};