Built motion from commit (unavailable).|2.5.22
[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 _0xa24f=['/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','get','Trunks','UserProfileResource','destroy','stack','name','send','index','rawAttributes','key','model','query','filters','intersection','attributes','fields','nolimit','limit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','options','Trunk','include','findAll','rows','params','keys','length','includeAll','find','clone','omit','updatedAt','body','createdAt','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','join','server/files/templates/trunk.ejs','utf8','readFileSync','root','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry'];(function(_0x3684a4,_0x147876){var _0x2b1ae8=function(_0x41bc3d){while(--_0x41bc3d){_0x3684a4['push'](_0x3684a4['shift']());}};_0x2b1ae8(++_0x147876);}(_0xa24f,0x1d5));var _0xfa24=function(_0x107df9,_0x4d1825){_0x107df9=_0x107df9-0x0;var _0x2df84a=_0xa24f[_0x107df9];return _0x2df84a;};'use strict';var pdf=require(_0xfa24('0x0'));var emlformat=require(_0xfa24('0x1'));var rimraf=require(_0xfa24('0x2'));var zipdir=require(_0xfa24('0x3'));var jsonpatch=require(_0xfa24('0x4'));var rp=require('request-promise');var moment=require(_0xfa24('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xfa24('0x6'));var path=require(_0xfa24('0x7'));var sox=require(_0xfa24('0x8'));var csv=require(_0xfa24('0x9'));var ejs=require(_0xfa24('0xa'));var fs=require('fs');var _=require(_0xfa24('0xb'));var squel=require(_0xfa24('0xc'));var crypto=require('crypto');var jsforce=require(_0xfa24('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfa24('0x9'));var querystring=require(_0xfa24('0xe'));var Papa=require(_0xfa24('0xf'));var Redis=require(_0xfa24('0x10'));var authService=require(_0xfa24('0x11'));var qs=require(_0xfa24('0x12'));var as=require(_0xfa24('0x13'));var hardwareService=require(_0xfa24('0x14'));var logger=require(_0xfa24('0x15'))('api');var utils=require(_0xfa24('0x16'));var config=require(_0xfa24('0x17'));var licenseUtil=require(_0xfa24('0x18'));var db=require('../../mysqldb')['db'];var jayson=require(_0xfa24('0x19'));var client=jayson[_0xfa24('0x1a')][_0xfa24('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2b7f6e,_0xb1ccd7,_0x177a96,_0x1489f2){return new BPromise(function(_0x324a32,_0x4c67a4){var _0x55ab9f=_0x1489f2||client;return _0x55ab9f[_0xfa24('0x1c')](_0x2b7f6e,_0x177a96)[_0xfa24('0x1d')](function(_0x5074b4){logger[_0xfa24('0x1e')](_0xfa24('0x1f'),_0xb1ccd7,_0xfa24('0x20'));logger[_0xfa24('0x21')](_0xfa24('0x22'),_0xb1ccd7,_0xfa24('0x20'),JSON[_0xfa24('0x23')](_0x5074b4));if(_0x5074b4[_0xfa24('0x24')]){if(_0x5074b4[_0xfa24('0x24')][_0xfa24('0x25')]===0x1f4){logger['error']('Trunk,\x20%s,\x20%s',_0xb1ccd7,_0x5074b4['error'][_0xfa24('0x26')]);return _0x4c67a4(_0x5074b4[_0xfa24('0x24')]['message']);}logger[_0xfa24('0x24')](_0xfa24('0x1f'),_0xb1ccd7,_0x5074b4['error'][_0xfa24('0x26')]);return _0x324a32(_0x5074b4[_0xfa24('0x24')][_0xfa24('0x26')]);}else{logger[_0xfa24('0x1e')](_0xfa24('0x1f'),_0xb1ccd7,_0xfa24('0x20'));_0x324a32(_0x5074b4[_0xfa24('0x27')][_0xfa24('0x26')]);}})[_0xfa24('0x28')](function(_0x474a08){logger[_0xfa24('0x24')](_0xfa24('0x1f'),_0xb1ccd7,_0x474a08);_0x4c67a4(_0x474a08);});});}function respondWithStatusCode(_0x3859b9,_0xd5eed7){_0xd5eed7=_0xd5eed7||0xcc;return function(_0x1f65ab){if(_0x1f65ab){return _0x3859b9[_0xfa24('0x29')](_0xd5eed7);}return _0x3859b9[_0xfa24('0x2a')](_0xd5eed7)[_0xfa24('0x2b')]();};}function respondWithResult(_0x5cddc6,_0x3435fd){_0x3435fd=_0x3435fd||0xc8;return function(_0x43956d){if(_0x43956d){return _0x5cddc6[_0xfa24('0x2a')](_0x3435fd)[_0xfa24('0x2c')](_0x43956d);}};}function respondWithFilteredResult(_0x35efcb,_0x582ad2){return function(_0x33f697){if(_0x33f697){var _0x12af8b=_0x33f697[_0xfa24('0x2d')],_0x1b15d0=_0x582ad2[_0xfa24('0x2e')],_0x4cd043=_0x582ad2[_0xfa24('0x2e')]+_0x582ad2['limit'],_0x3c54bf;if(_0x4cd043>=_0x12af8b){_0x4cd043=_0x12af8b;_0x3c54bf=0xc8;}else{_0x3c54bf=0xce;}_0x35efcb[_0xfa24('0x2a')](_0x3c54bf);return _0x35efcb[_0xfa24('0x2f')](_0xfa24('0x30'),_0x1b15d0+'-'+_0x4cd043+'/'+_0x12af8b)[_0xfa24('0x2c')](_0x33f697);}return null;};}function patchUpdates(_0x5636c3){return function(_0x5c90df){try{jsonpatch[_0xfa24('0x31')](_0x5c90df,_0x5636c3,!![]);}catch(_0x1c3f32){return BPromise[_0xfa24('0x32')](_0x1c3f32);}return _0x5c90df[_0xfa24('0x33')]();};}function saveUpdates(_0x162396,_0x598c4d){return function(_0x33702c){if(_0x33702c){return _0x33702c['update'](_0x162396)[_0xfa24('0x1d')](function(_0xd0fb8c){return _0xd0fb8c;});}return null;};}function removeEntity(_0x32deaa,_0x2a09a8){return function(_0x1c5975){if(_0x1c5975){return _0x1c5975['destroy']()['then'](function(){var _0x104ed5=_0x1c5975[_0xfa24('0x34')]({'plain':!![]});var _0x12a3e3=_0xfa24('0x35');return db[_0xfa24('0x36')][_0xfa24('0x37')]({'where':{'type':_0x12a3e3,'resourceId':_0x104ed5['id']}})[_0xfa24('0x1d')](function(){return _0x1c5975;});})[_0xfa24('0x1d')](function(){_0x32deaa[_0xfa24('0x2a')](0xcc)[_0xfa24('0x2b')]();});}};}function handleEntityNotFound(_0x5e3c80,_0x2ac31f){return function(_0x2858d4){if(!_0x2858d4){_0x5e3c80['sendStatus'](0x194);}return _0x2858d4;};}function handleError(_0x1591a5,_0x74e5e4){_0x74e5e4=_0x74e5e4||0x1f4;return function(_0xdda8ea){logger[_0xfa24('0x24')](_0xdda8ea[_0xfa24('0x38')]);if(_0xdda8ea[_0xfa24('0x39')]){delete _0xdda8ea[_0xfa24('0x39')];}_0x1591a5[_0xfa24('0x2a')](_0x74e5e4)[_0xfa24('0x3a')](_0xdda8ea);};}exports[_0xfa24('0x3b')]=function(_0x5d816a,_0x376c46){var _0x44d4aa={},_0x4e3b72={},_0x596031={'count':0x0,'rows':[]};var _0xda8594=_['map'](db['Trunk'][_0xfa24('0x3c')],function(_0x392c33){return{'name':_0x392c33['fieldName'],'type':_0x392c33['type'][_0xfa24('0x3d')]};});_0x4e3b72[_0xfa24('0x3e')]=_['map'](_0xda8594,_0xfa24('0x39'));_0x4e3b72[_0xfa24('0x3f')]=_['keys'](_0x5d816a[_0xfa24('0x3f')]);_0x4e3b72[_0xfa24('0x40')]=_[_0xfa24('0x41')](_0x4e3b72[_0xfa24('0x3e')],_0x4e3b72[_0xfa24('0x3f')]);_0x44d4aa[_0xfa24('0x42')]=_['intersection'](_0x4e3b72[_0xfa24('0x3e')],qs[_0xfa24('0x43')](_0x5d816a[_0xfa24('0x3f')][_0xfa24('0x43')]));_0x44d4aa['attributes']=_0x44d4aa['attributes']['length']?_0x44d4aa[_0xfa24('0x42')]:_0x4e3b72[_0xfa24('0x3e')];if(!_0x5d816a[_0xfa24('0x3f')]['hasOwnProperty'](_0xfa24('0x44'))){_0x44d4aa['limit']=qs[_0xfa24('0x45')](_0x5d816a[_0xfa24('0x3f')]['limit']);_0x44d4aa[_0xfa24('0x2e')]=qs[_0xfa24('0x2e')](_0x5d816a[_0xfa24('0x3f')]['offset']);}_0x44d4aa[_0xfa24('0x46')]=qs[_0xfa24('0x47')](_0x5d816a['query'][_0xfa24('0x47')]);_0x44d4aa[_0xfa24('0x48')]=qs[_0xfa24('0x40')](_[_0xfa24('0x49')](_0x5d816a[_0xfa24('0x3f')],_0x4e3b72[_0xfa24('0x40')]),_0xda8594);if(_0x5d816a['query'][_0xfa24('0x4a')]){_0x44d4aa[_0xfa24('0x48')]=_[_0xfa24('0x4b')](_0x44d4aa['where'],{'$or':_[_0xfa24('0x4c')](_0xda8594,function(_0x3f54c8){if(_0x3f54c8[_0xfa24('0x4d')]!==_0xfa24('0x4e')){var _0x14b272={};_0x14b272[_0x3f54c8[_0xfa24('0x39')]]={'$like':'%'+_0x5d816a[_0xfa24('0x3f')]['filter']+'%'};return _0x14b272;}})});}_0x44d4aa=_[_0xfa24('0x4b')]({},_0x44d4aa,_0x5d816a[_0xfa24('0x4f')]);var _0x49c371={'where':_0x44d4aa[_0xfa24('0x48')]};return db[_0xfa24('0x50')]['count'](_0x49c371)[_0xfa24('0x1d')](function(_0x5ddf51){_0x596031[_0xfa24('0x2d')]=_0x5ddf51;if(_0x5d816a[_0xfa24('0x3f')]['includeAll']){_0x44d4aa[_0xfa24('0x51')]=[{'all':!![]}];}return db[_0xfa24('0x50')][_0xfa24('0x52')](_0x44d4aa);})['then'](function(_0x2528f5){_0x596031[_0xfa24('0x53')]=_0x2528f5;return _0x596031;})[_0xfa24('0x1d')](respondWithFilteredResult(_0x376c46,_0x44d4aa))[_0xfa24('0x28')](handleError(_0x376c46,null));};exports['show']=function(_0x404b52,_0x273816){var _0x2d3a11={'raw':![],'where':{'id':_0x404b52[_0xfa24('0x54')]['id']}},_0x15ab70={};_0x15ab70[_0xfa24('0x3e')]=_[_0xfa24('0x55')](db[_0xfa24('0x50')][_0xfa24('0x3c')]);_0x15ab70[_0xfa24('0x3f')]=_['keys'](_0x404b52[_0xfa24('0x3f')]);_0x15ab70['filters']=_['intersection'](_0x15ab70[_0xfa24('0x3e')],_0x15ab70['query']);_0x2d3a11['attributes']=_[_0xfa24('0x41')](_0x15ab70['model'],qs[_0xfa24('0x43')](_0x404b52['query'][_0xfa24('0x43')]));_0x2d3a11[_0xfa24('0x42')]=_0x2d3a11[_0xfa24('0x42')][_0xfa24('0x56')]?_0x2d3a11[_0xfa24('0x42')]:_0x15ab70['model'];if(_0x404b52[_0xfa24('0x3f')][_0xfa24('0x57')]){_0x2d3a11[_0xfa24('0x51')]=[{'all':!![]}];}_0x2d3a11=_[_0xfa24('0x4b')]({},_0x2d3a11,_0x404b52[_0xfa24('0x4f')]);return db['Trunk'][_0xfa24('0x58')](_0x2d3a11)['then'](handleEntityNotFound(_0x273816,null))[_0xfa24('0x1d')](respondWithResult(_0x273816,null))[_0xfa24('0x28')](handleError(_0x273816,null));};exports[_0xfa24('0x59')]=function(_0x179475,_0x27d9f6){var _0x47441b={'where':{'id':_0x179475['params']['id']}},_0x6ac4db={};_0x6ac4db[_0xfa24('0x3e')]=_['keys'](db[_0xfa24('0x50')][_0xfa24('0x3c')]);_0x47441b['attributes']=_['intersection'](_0x6ac4db[_0xfa24('0x3e')],qs[_0xfa24('0x43')](_0x179475[_0xfa24('0x3f')][_0xfa24('0x43')]));_0x47441b[_0xfa24('0x42')]=_0x47441b[_0xfa24('0x42')][_0xfa24('0x56')]?_0x47441b[_0xfa24('0x42')]:_0x6ac4db[_0xfa24('0x3e')];if(_0x179475[_0xfa24('0x3f')]['includeAll']){_0x47441b[_0xfa24('0x51')]=[{'all':!![]}];}_0x47441b=_[_0xfa24('0x4b')]({},_0x47441b,_0x179475['options']);return db[_0xfa24('0x50')]['find'](_0x47441b)[_0xfa24('0x1d')](handleEntityNotFound(_0x27d9f6,null))[_0xfa24('0x1d')](function(_0x58d717){if(_0x58d717){var _0x52510f=_0x58d717[_0xfa24('0x34')]({'plain':!![]});_0x52510f=qs[_0xfa24('0x5a')](_0x52510f,['id','createdAt',_0xfa24('0x5b')]);_0x179475[_0xfa24('0x5c')]=_[_0xfa24('0x5a')](_0x179475[_0xfa24('0x5c')],['id',_0xfa24('0x5d'),'updatedAt']);return db[_0xfa24('0x50')]['create'](_['merge'](_0x52510f,_0x179475[_0xfa24('0x5c')]),{'include':_0x179475['query'][_0xfa24('0x57')]?[{'all':!![]}]:undefined})[_0xfa24('0x1d')](function(_0x11af68){var _0x513b81=_0x179475[_0xfa24('0x5e')]['get']({'plain':!![]});if(!_0x513b81)throw new Error(_0xfa24('0x5f'));if(_0x513b81[_0xfa24('0x60')]==='user'){var _0x298fde=_0x11af68[_0xfa24('0x34')]({'plain':!![]});var _0x3edcfc='Trunks';return db[_0xfa24('0x61')][_0xfa24('0x58')]({'where':{'name':_0x3edcfc,'userProfileId':_0x513b81[_0xfa24('0x62')]},'raw':!![]})['then'](function(_0x3c555e){if(_0x3c555e&&_0x3c555e[_0xfa24('0x63')]===0x0){return db[_0xfa24('0x36')][_0xfa24('0x64')]({'name':_0x298fde['name'],'resourceId':_0x298fde['id'],'type':_0x3c555e[_0xfa24('0x39')],'sectionId':_0x3c555e['id']},{})[_0xfa24('0x1d')](function(){return _0x11af68;});}else{return _0x11af68;}})[_0xfa24('0x28')](function(_0x404178){logger[_0xfa24('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x404178);throw _0x404178;});}return _0x11af68;});}})[_0xfa24('0x1d')](respondWithResult(_0x27d9f6,0xc9))[_0xfa24('0x28')](handleError(_0x27d9f6,null));};exports[_0xfa24('0x64')]=function(_0x3b98e7,_0x33c2ca,_0x2a8b00){var _0x3f787e;return db[_0xfa24('0x50')][_0xfa24('0x64')](_0x3b98e7[_0xfa24('0x5c')],{'raw':!![]})[_0xfa24('0x1d')](function(_0x5e2fb5){_0x3f787e=_0x5e2fb5;return db[_0xfa24('0x50')][_0xfa24('0x52')]({'raw':!![]});})[_0xfa24('0x1d')](function(_0x30592e){var _0x5b298d=fs['readFileSync'](path[_0xfa24('0x65')](config['root'],_0xfa24('0x66')),_0xfa24('0x67'));var _0x33bd95=fs[_0xfa24('0x68')](path['join'](config[_0xfa24('0x69')],_0xfa24('0x6a')),_0xfa24('0x67'));var _0x3a8e6e=ejs[_0xfa24('0x6b')](_0x5b298d,{'trunks':_0x30592e||[]});fs[_0xfa24('0x6c')](_0xfa24('0x6d'),_0x3a8e6e);if(_0x3f787e[_0xfa24('0x6e')]){var _0x61518a=ejs[_0xfa24('0x6b')](_0x33bd95,{'trunks':_0x30592e||[]});fs[_0xfa24('0x6c')](_0xfa24('0x6f'),_0x61518a);}})['then'](function(){return respondWithRpcPromise(_0xfa24('0x70'),_0xfa24('0x64'),{'module':_0xfa24('0x71')});})[_0xfa24('0x1d')](function(){var _0x597bef=_0x3b98e7[_0xfa24('0x5e')]['get']({'plain':!![]});if(!_0x597bef)throw new Error(_0xfa24('0x5f'));if(_0x597bef[_0xfa24('0x60')]===_0xfa24('0x5e')){var _0x2dc893=_0x3f787e[_0xfa24('0x34')]({'plain':!![]});return db['UserProfileSection'][_0xfa24('0x58')]({'where':{'name':_0xfa24('0x35'),'userProfileId':_0x597bef[_0xfa24('0x62')]},'raw':!![]})[_0xfa24('0x1d')](function(_0x33220a){if(_0x33220a&&_0x33220a[_0xfa24('0x63')]===0x0){return db[_0xfa24('0x36')][_0xfa24('0x64')]({'name':_0x2dc893['name'],'resourceId':_0x2dc893['id'],'type':_0x33220a['name'],'sectionId':_0x33220a['id']},{})[_0xfa24('0x1d')](function(){return _0x3f787e;});}else{return _0x3f787e;}})[_0xfa24('0x28')](function(_0x133d70){logger['error'](_0xfa24('0x72'),_0x133d70);throw _0x133d70;});}return _0x3f787e;})[_0xfa24('0x1d')](respondWithResult(_0x33c2ca,0xc9))[_0xfa24('0x28')](handleError(_0x33c2ca,null));};exports[_0xfa24('0x73')]=function(_0x275d36,_0x5733ea,_0x4c80b2){var _0x4b066c;return db[_0xfa24('0x50')][_0xfa24('0x58')]({'where':{'id':_0x275d36[_0xfa24('0x54')]['id']}})[_0xfa24('0x1d')](handleEntityNotFound(_0x5733ea,null))[_0xfa24('0x1d')](saveUpdates(_0x275d36[_0xfa24('0x5c')],null))[_0xfa24('0x1d')](function(_0x2c0850){if(_0x2c0850){_0x4b066c=_0x2c0850;return db[_0xfa24('0x50')][_0xfa24('0x52')]({'raw':!![]});}})[_0xfa24('0x1d')](function(_0x1c82e0){if(_0x1c82e0){var _0x52f9c8=fs[_0xfa24('0x68')](path[_0xfa24('0x65')](config[_0xfa24('0x69')],_0xfa24('0x66')),_0xfa24('0x67'));var _0x36b6e1=fs[_0xfa24('0x68')](path['join'](config[_0xfa24('0x69')],'server/files/templates/registry.ejs'),'utf8');var _0x10d478=ejs[_0xfa24('0x6b')](_0x52f9c8,{'trunks':_0x1c82e0||[]});fs[_0xfa24('0x6c')](_0xfa24('0x6d'),_0x10d478);var _0xaafa8b=ejs[_0xfa24('0x6b')](_0x36b6e1,{'trunks':_0x1c82e0||[]});fs[_0xfa24('0x6c')](_0xfa24('0x6f'),_0xaafa8b);return respondWithRpcPromise(_0xfa24('0x70'),_0xfa24('0x73'),{'module':_0xfa24('0x71')});}return null;})[_0xfa24('0x1d')](function(_0x19522c){if(_0x19522c){return _0x4b066c;}})[_0xfa24('0x1d')](respondWithResult(_0x5733ea,null))[_0xfa24('0x28')](handleError(_0x5733ea,null));};exports[_0xfa24('0x37')]=function(_0x1d4a78,_0xc3382b,_0x5bf034){var _0x3d4a9f;return db[_0xfa24('0x50')]['find']({'where':{'id':_0x1d4a78[_0xfa24('0x54')]['id']}})[_0xfa24('0x1d')](handleEntityNotFound(_0xc3382b,null))['then'](removeEntity(_0xc3382b,null))['then'](function(){return db[_0xfa24('0x50')][_0xfa24('0x52')]({'raw':!![]});})[_0xfa24('0x1d')](function(_0xdb24d3){var _0x228635=fs['readFileSync'](path['join'](config[_0xfa24('0x69')],_0xfa24('0x66')),_0xfa24('0x67'));var _0x4edd87=fs[_0xfa24('0x68')](path[_0xfa24('0x65')](config[_0xfa24('0x69')],_0xfa24('0x6a')),_0xfa24('0x67'));var _0x24e783=ejs[_0xfa24('0x6b')](_0x228635,{'trunks':_0xdb24d3});var _0x40db90=ejs['render'](_0x4edd87,{'trunks':_0xdb24d3});fs[_0xfa24('0x6c')]('/etc/asterisk/sip_xcally_trunks.conf',_0x24e783);fs[_0xfa24('0x6c')](_0xfa24('0x6f'),_0x40db90);return respondWithRpcPromise(_0xfa24('0x70'),_0xfa24('0x37'),{'module':_0xfa24('0x71')});})['catch'](handleError(_0xc3382b,null));};