1b2f45ec23c3f06811e12991fccd807d9f097558
[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 _0xde5a=['send','map','Trunk','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','length','attributes','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','rows','show','params','includeAll','find','clone','omit','createdAt','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','root','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','utf8','render','writeFileSync','Reload','findAll','readFileSync','/etc/asterisk/sip_xcally_registers.conf','chan_sip.so','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','http','then','Trunk,\x20%s,\x20%s','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','sendStatus','end','status','count','offset','Content-Range','apply','reject','update','Trunks','UserProfileResource','stack','name'];(function(_0x7cb10c,_0x2fcc3a){var _0x11df59=function(_0x75305f){while(--_0x75305f){_0x7cb10c['push'](_0x7cb10c['shift']());}};_0x11df59(++_0x2fcc3a);}(_0xde5a,0x10f));var _0xade5=function(_0x29f110,_0x283f83){_0x29f110=_0x29f110-0x0;var _0x2793d5=_0xde5a[_0x29f110];return _0x2793d5;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xade5('0x0'));var rimraf=require(_0xade5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xade5('0x2'));var rp=require(_0xade5('0x3'));var moment=require(_0xade5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xade5('0x5'));var util=require(_0xade5('0x6'));var path=require(_0xade5('0x7'));var sox=require(_0xade5('0x8'));var csv=require(_0xade5('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xade5('0xa'));var squel=require(_0xade5('0xb'));var crypto=require(_0xade5('0xc'));var jsforce=require(_0xade5('0xd'));var deskjs=require(_0xade5('0xe'));var toCsv=require(_0xade5('0x9'));var querystring=require('querystring');var Papa=require(_0xade5('0xf'));var Redis=require(_0xade5('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xade5('0x11'));var as=require(_0xade5('0x12'));var hardwareService=require(_0xade5('0x13'));var logger=require(_0xade5('0x14'))(_0xade5('0x15'));var utils=require(_0xade5('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xade5('0x17'));var db=require(_0xade5('0x18'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0xade5('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x2dbb8c,_0xc6b16f,_0x5ae988,_0x3a520c){return new BPromise(function(_0x17c8c1,_0x31a253){var _0x1ee2cd=_0x3a520c||client;return _0x1ee2cd['request'](_0x2dbb8c,_0x5ae988)[_0xade5('0x1a')](function(_0x5bd034){logger['info'](_0xade5('0x1b'),_0xc6b16f,'request\x20sent');logger[_0xade5('0x1c')](_0xade5('0x1d'),_0xc6b16f,_0xade5('0x1e'),JSON[_0xade5('0x1f')](_0x5bd034));if(_0x5bd034['error']){if(_0x5bd034['error'][_0xade5('0x20')]===0x1f4){logger[_0xade5('0x21')]('Trunk,\x20%s,\x20%s',_0xc6b16f,_0x5bd034[_0xade5('0x21')][_0xade5('0x22')]);return _0x31a253(_0x5bd034[_0xade5('0x21')][_0xade5('0x22')]);}logger[_0xade5('0x21')]('Trunk,\x20%s,\x20%s',_0xc6b16f,_0x5bd034['error']['message']);return _0x17c8c1(_0x5bd034['error'][_0xade5('0x22')]);}else{logger['info'](_0xade5('0x1b'),_0xc6b16f,_0xade5('0x1e'));_0x17c8c1(_0x5bd034[_0xade5('0x23')][_0xade5('0x22')]);}})[_0xade5('0x24')](function(_0x5768a2){logger[_0xade5('0x21')](_0xade5('0x1b'),_0xc6b16f,_0x5768a2);_0x31a253(_0x5768a2);});});}function respondWithStatusCode(_0x394d8c,_0x277fab){_0x277fab=_0x277fab||0xcc;return function(_0x432af1){if(_0x432af1){return _0x394d8c[_0xade5('0x25')](_0x277fab);}return _0x394d8c['status'](_0x277fab)[_0xade5('0x26')]();};}function respondWithResult(_0x28d65b,_0x378922){_0x378922=_0x378922||0xc8;return function(_0x42a8e3){if(_0x42a8e3){return _0x28d65b[_0xade5('0x27')](_0x378922)['json'](_0x42a8e3);}};}function respondWithFilteredResult(_0x5190b6,_0x4656bb){return function(_0xfb019){if(_0xfb019){var _0x1fc2c3=_0xfb019[_0xade5('0x28')],_0x59cf2b=_0x4656bb['offset'],_0x2f5ce4=_0x4656bb[_0xade5('0x29')]+_0x4656bb['limit'],_0x3b8aa2;if(_0x2f5ce4>=_0x1fc2c3){_0x2f5ce4=_0x1fc2c3;_0x3b8aa2=0xc8;}else{_0x3b8aa2=0xce;}_0x5190b6[_0xade5('0x27')](_0x3b8aa2);return _0x5190b6['set'](_0xade5('0x2a'),_0x59cf2b+'-'+_0x2f5ce4+'/'+_0x1fc2c3)['json'](_0xfb019);}return null;};}function patchUpdates(_0x122c8a){return function(_0x5e4c6d){try{jsonpatch[_0xade5('0x2b')](_0x5e4c6d,_0x122c8a,!![]);}catch(_0x4f4b91){return BPromise[_0xade5('0x2c')](_0x4f4b91);}return _0x5e4c6d['save']();};}function saveUpdates(_0x5c9eb3,_0x4bb67b){return function(_0x5e5368){if(_0x5e5368){return _0x5e5368[_0xade5('0x2d')](_0x5c9eb3)[_0xade5('0x1a')](function(_0x57381f){return _0x57381f;});}return null;};}function removeEntity(_0x86c87a,_0x5cc68a){return function(_0x1a5b7d){if(_0x1a5b7d){return _0x1a5b7d['destroy']()[_0xade5('0x1a')](function(){var _0x176670=_0x1a5b7d['get']({'plain':!![]});var _0xb1bb3c=_0xade5('0x2e');return db[_0xade5('0x2f')]['destroy']({'where':{'type':_0xb1bb3c,'resourceId':_0x176670['id']}})['then'](function(){return _0x1a5b7d;});})[_0xade5('0x1a')](function(){_0x86c87a[_0xade5('0x27')](0xcc)[_0xade5('0x26')]();});}};}function handleEntityNotFound(_0x3dba5d,_0xa7aeb2){return function(_0x529bee){if(!_0x529bee){_0x3dba5d['sendStatus'](0x194);}return _0x529bee;};}function handleError(_0x47484b,_0x15b8f3){_0x15b8f3=_0x15b8f3||0x1f4;return function(_0x53e7f3){logger[_0xade5('0x21')](_0x53e7f3[_0xade5('0x30')]);if(_0x53e7f3[_0xade5('0x31')]){delete _0x53e7f3['name'];}_0x47484b[_0xade5('0x27')](_0x15b8f3)[_0xade5('0x32')](_0x53e7f3);};}exports['index']=function(_0xfb3c34,_0x5ec60d){var _0x5865b7={},_0x129a43={},_0x4e4355={'count':0x0,'rows':[]};var _0x1151b6=_[_0xade5('0x33')](db[_0xade5('0x34')][_0xade5('0x35')],function(_0x1812da){return{'name':_0x1812da[_0xade5('0x36')],'type':_0x1812da[_0xade5('0x37')][_0xade5('0x38')]};});_0x129a43[_0xade5('0x39')]=_['map'](_0x1151b6,_0xade5('0x31'));_0x129a43['query']=_[_0xade5('0x3a')](_0xfb3c34[_0xade5('0x3b')]);_0x129a43[_0xade5('0x3c')]=_[_0xade5('0x3d')](_0x129a43[_0xade5('0x39')],_0x129a43[_0xade5('0x3b')]);_0x5865b7['attributes']=_[_0xade5('0x3d')](_0x129a43[_0xade5('0x39')],qs[_0xade5('0x3e')](_0xfb3c34[_0xade5('0x3b')][_0xade5('0x3e')]));_0x5865b7['attributes']=_0x5865b7['attributes'][_0xade5('0x3f')]?_0x5865b7[_0xade5('0x40')]:_0x129a43['model'];if(!_0xfb3c34[_0xade5('0x3b')]['hasOwnProperty'](_0xade5('0x41'))){_0x5865b7[_0xade5('0x42')]=qs[_0xade5('0x42')](_0xfb3c34[_0xade5('0x3b')]['limit']);_0x5865b7[_0xade5('0x29')]=qs[_0xade5('0x29')](_0xfb3c34[_0xade5('0x3b')][_0xade5('0x29')]);}_0x5865b7[_0xade5('0x43')]=qs[_0xade5('0x44')](_0xfb3c34[_0xade5('0x3b')][_0xade5('0x44')]);_0x5865b7[_0xade5('0x45')]=qs[_0xade5('0x3c')](_[_0xade5('0x46')](_0xfb3c34[_0xade5('0x3b')],_0x129a43[_0xade5('0x3c')]),_0x1151b6);if(_0xfb3c34['query'][_0xade5('0x47')]){_0x5865b7[_0xade5('0x45')]=_['merge'](_0x5865b7['where'],{'$or':_[_0xade5('0x33')](_0x1151b6,function(_0x1d90e5){if(_0x1d90e5[_0xade5('0x37')]!==_0xade5('0x48')){var _0x14459e={};_0x14459e[_0x1d90e5[_0xade5('0x31')]]={'$like':'%'+_0xfb3c34['query'][_0xade5('0x47')]+'%'};return _0x14459e;}})});}_0x5865b7=_[_0xade5('0x49')]({},_0x5865b7,_0xfb3c34[_0xade5('0x4a')]);var _0x23e843={'where':_0x5865b7[_0xade5('0x45')]};return db[_0xade5('0x34')][_0xade5('0x28')](_0x23e843)[_0xade5('0x1a')](function(_0x9231db){_0x4e4355['count']=_0x9231db;if(_0xfb3c34[_0xade5('0x3b')]['includeAll']){_0x5865b7[_0xade5('0x4b')]=[{'all':!![]}];}return db['Trunk']['findAll'](_0x5865b7);})[_0xade5('0x1a')](function(_0x21f366){_0x4e4355[_0xade5('0x4c')]=_0x21f366;return _0x4e4355;})['then'](respondWithFilteredResult(_0x5ec60d,_0x5865b7))[_0xade5('0x24')](handleError(_0x5ec60d,null));};exports[_0xade5('0x4d')]=function(_0x116622,_0x3e8d36){var _0x8e3f8e={'raw':![],'where':{'id':_0x116622[_0xade5('0x4e')]['id']}},_0x590a8e={};_0x590a8e['model']=_[_0xade5('0x3a')](db['Trunk'][_0xade5('0x35')]);_0x590a8e[_0xade5('0x3b')]=_['keys'](_0x116622[_0xade5('0x3b')]);_0x590a8e[_0xade5('0x3c')]=_[_0xade5('0x3d')](_0x590a8e[_0xade5('0x39')],_0x590a8e[_0xade5('0x3b')]);_0x8e3f8e[_0xade5('0x40')]=_[_0xade5('0x3d')](_0x590a8e[_0xade5('0x39')],qs[_0xade5('0x3e')](_0x116622[_0xade5('0x3b')][_0xade5('0x3e')]));_0x8e3f8e['attributes']=_0x8e3f8e[_0xade5('0x40')]['length']?_0x8e3f8e[_0xade5('0x40')]:_0x590a8e[_0xade5('0x39')];if(_0x116622[_0xade5('0x3b')][_0xade5('0x4f')]){_0x8e3f8e[_0xade5('0x4b')]=[{'all':!![]}];}_0x8e3f8e=_['merge']({},_0x8e3f8e,_0x116622['options']);return db[_0xade5('0x34')][_0xade5('0x50')](_0x8e3f8e)[_0xade5('0x1a')](handleEntityNotFound(_0x3e8d36,null))['then'](respondWithResult(_0x3e8d36,null))['catch'](handleError(_0x3e8d36,null));};exports[_0xade5('0x51')]=function(_0x5221de,_0x4cc17a){var _0x1fa7ff={'where':{'id':_0x5221de['params']['id']}},_0x3acfed={};_0x3acfed[_0xade5('0x39')]=_[_0xade5('0x3a')](db[_0xade5('0x34')][_0xade5('0x35')]);_0x1fa7ff[_0xade5('0x40')]=_[_0xade5('0x3d')](_0x3acfed[_0xade5('0x39')],qs[_0xade5('0x3e')](_0x5221de['query'][_0xade5('0x3e')]));_0x1fa7ff[_0xade5('0x40')]=_0x1fa7ff[_0xade5('0x40')][_0xade5('0x3f')]?_0x1fa7ff[_0xade5('0x40')]:_0x3acfed[_0xade5('0x39')];if(_0x5221de[_0xade5('0x3b')][_0xade5('0x4f')]){_0x1fa7ff[_0xade5('0x4b')]=[{'all':!![]}];}_0x1fa7ff=_[_0xade5('0x49')]({},_0x1fa7ff,_0x5221de['options']);return db[_0xade5('0x34')][_0xade5('0x50')](_0x1fa7ff)[_0xade5('0x1a')](handleEntityNotFound(_0x4cc17a,null))[_0xade5('0x1a')](function(_0x45265f){if(_0x45265f){var _0x2c2168=_0x45265f['get']({'plain':!![]});_0x2c2168=qs[_0xade5('0x52')](_0x2c2168,['id',_0xade5('0x53'),_0xade5('0x54')]);_0x5221de['body']=_[_0xade5('0x52')](_0x5221de[_0xade5('0x55')],['id',_0xade5('0x53'),_0xade5('0x54')]);return db[_0xade5('0x34')][_0xade5('0x56')](_[_0xade5('0x49')](_0x2c2168,_0x5221de[_0xade5('0x55')]),{'include':_0x5221de[_0xade5('0x3b')]['includeAll']?[{'all':!![]}]:undefined})['then'](function(_0x2f90df){var _0x3bce83=_0x5221de[_0xade5('0x57')]['get']({'plain':!![]});if(!_0x3bce83)throw new Error(_0xade5('0x58'));if(_0x3bce83[_0xade5('0x59')]===_0xade5('0x57')){var _0x4cfc1a=_0x2f90df[_0xade5('0x5a')]({'plain':!![]});var _0x9ae9ef=_0xade5('0x2e');return db[_0xade5('0x5b')][_0xade5('0x50')]({'where':{'name':_0x9ae9ef,'userProfileId':_0x3bce83['userProfileId']},'raw':!![]})[_0xade5('0x1a')](function(_0x5272f0){if(_0x5272f0&&_0x5272f0[_0xade5('0x5c')]===0x0){return db[_0xade5('0x2f')]['create']({'name':_0x4cfc1a[_0xade5('0x31')],'resourceId':_0x4cfc1a['id'],'type':_0x5272f0['name'],'sectionId':_0x5272f0['id']},{})['then'](function(){return _0x2f90df;});}else{return _0x2f90df;}})[_0xade5('0x24')](function(_0x366468){logger['error'](_0xade5('0x5d'),_0x366468);throw _0x366468;});}return _0x2f90df;});}})['then'](respondWithResult(_0x4cc17a,0xc9))['catch'](handleError(_0x4cc17a,null));};exports[_0xade5('0x56')]=function(_0x451b28,_0x30f11f,_0x9cd29d){var _0x2ad922;return db[_0xade5('0x34')][_0xade5('0x56')](_0x451b28['body'],{'raw':!![]})['then'](function(_0x3d858c){_0x2ad922=_0x3d858c;return db[_0xade5('0x34')]['findAll']({'raw':!![]});})[_0xade5('0x1a')](function(_0x4d8f2f){var _0x5d46f9=fs['readFileSync'](path[_0xade5('0x5e')](config[_0xade5('0x5f')],_0xade5('0x60')),'utf8');var _0x270c49=fs['readFileSync'](path['join'](config[_0xade5('0x5f')],_0xade5('0x61')),_0xade5('0x62'));var _0x9e222e=ejs[_0xade5('0x63')](_0x5d46f9,{'trunks':_0x4d8f2f||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_trunks.conf',_0x9e222e);if(_0x2ad922['registry']){var _0x457ac6=ejs[_0xade5('0x63')](_0x270c49,{'trunks':_0x4d8f2f||[]});fs[_0xade5('0x64')]('/etc/asterisk/sip_xcally_registers.conf',_0x457ac6);}})['then'](function(){return respondWithRpcPromise(_0xade5('0x65'),_0xade5('0x56'),{'module':'chan_sip.so'});})[_0xade5('0x1a')](function(){var _0xd35918=_0x451b28[_0xade5('0x57')][_0xade5('0x5a')]({'plain':!![]});if(!_0xd35918)throw new Error(_0xade5('0x58'));if(_0xd35918[_0xade5('0x59')]===_0xade5('0x57')){var _0x34aa7f=_0x2ad922[_0xade5('0x5a')]({'plain':!![]});return db[_0xade5('0x5b')][_0xade5('0x50')]({'where':{'name':'Trunks','userProfileId':_0xd35918['userProfileId']},'raw':!![]})[_0xade5('0x1a')](function(_0x190ae6){if(_0x190ae6&&_0x190ae6[_0xade5('0x5c')]===0x0){return db['UserProfileResource']['create']({'name':_0x34aa7f[_0xade5('0x31')],'resourceId':_0x34aa7f['id'],'type':_0x190ae6[_0xade5('0x31')],'sectionId':_0x190ae6['id']},{})['then'](function(){return _0x2ad922;});}else{return _0x2ad922;}})[_0xade5('0x24')](function(_0x81278a){logger[_0xade5('0x21')](_0xade5('0x5d'),_0x81278a);throw _0x81278a;});}return _0x2ad922;})[_0xade5('0x1a')](respondWithResult(_0x30f11f,0xc9))[_0xade5('0x24')](handleError(_0x30f11f,null));};exports[_0xade5('0x2d')]=function(_0x18c46b,_0x41d963,_0x3d373b){var _0xda7e3c;return db[_0xade5('0x34')][_0xade5('0x50')]({'where':{'id':_0x18c46b[_0xade5('0x4e')]['id']}})[_0xade5('0x1a')](handleEntityNotFound(_0x41d963,null))[_0xade5('0x1a')](saveUpdates(_0x18c46b['body'],null))[_0xade5('0x1a')](function(_0x33f8b0){if(_0x33f8b0){_0xda7e3c=_0x33f8b0;return db[_0xade5('0x34')][_0xade5('0x66')]({'raw':!![]});}})[_0xade5('0x1a')](function(_0xd4cd26){if(_0xd4cd26){var _0x9ed399=fs['readFileSync'](path[_0xade5('0x5e')](config[_0xade5('0x5f')],'server/files/templates/trunk.ejs'),_0xade5('0x62'));var _0x59a979=fs[_0xade5('0x67')](path['join'](config[_0xade5('0x5f')],_0xade5('0x61')),_0xade5('0x62'));var _0x4df488=ejs['render'](_0x9ed399,{'trunks':_0xd4cd26||[]});fs[_0xade5('0x64')]('/etc/asterisk/sip_xcally_trunks.conf',_0x4df488);var _0x206ec5=ejs['render'](_0x59a979,{'trunks':_0xd4cd26||[]});fs[_0xade5('0x64')](_0xade5('0x68'),_0x206ec5);return respondWithRpcPromise(_0xade5('0x65'),_0xade5('0x2d'),{'module':_0xade5('0x69')});}return null;})[_0xade5('0x1a')](function(_0x5e5d66){if(_0x5e5d66){return _0xda7e3c;}})['then'](respondWithResult(_0x41d963,null))[_0xade5('0x24')](handleError(_0x41d963,null));};exports['destroy']=function(_0x188671,_0x371f08,_0x32175e){var _0x463a35;return db[_0xade5('0x34')][_0xade5('0x50')]({'where':{'id':_0x188671[_0xade5('0x4e')]['id']}})[_0xade5('0x1a')](handleEntityNotFound(_0x371f08,null))[_0xade5('0x1a')](removeEntity(_0x371f08,null))[_0xade5('0x1a')](function(){return db[_0xade5('0x34')][_0xade5('0x66')]({'raw':!![]});})[_0xade5('0x1a')](function(_0x5d39e4){var _0x38450c=fs[_0xade5('0x67')](path[_0xade5('0x5e')](config[_0xade5('0x5f')],_0xade5('0x60')),_0xade5('0x62'));var _0x562799=fs[_0xade5('0x67')](path['join'](config[_0xade5('0x5f')],_0xade5('0x61')),_0xade5('0x62'));var _0x25ccf9=ejs[_0xade5('0x63')](_0x38450c,{'trunks':_0x5d39e4});var _0x3b4b4c=ejs['render'](_0x562799,{'trunks':_0x5d39e4});fs[_0xade5('0x64')]('/etc/asterisk/sip_xcally_trunks.conf',_0x25ccf9);fs[_0xade5('0x64')](_0xade5('0x68'),_0x3b4b4c);return respondWithRpcPromise(_0xade5('0x65'),_0xade5('0x6a'),{'module':_0xade5('0x69')});})['catch'](handleError(_0x371f08,null));};