Built motion from commit (unavailable).|2.3.91
[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 _0xf5e1=['Trunk,\x20%s,\x20%s','message','catch','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Trunks','UserProfileResource','sendStatus','stack','name','send','index','Trunk','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','map','type','key','VIRTUAL','field','merge','options','count','includeAll','include','show','params','clone','find','omit','body','createdAt','updatedAt','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','join','server/files/templates/trunk.ejs','root','server/files/templates/registry.ejs','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','render','/etc/asterisk/sip_xcally_registers.conf','UserProfileSection','userProfileId','readFileSync','utf8','Reload','chan_sip.so','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','client','http','request','info','request\x20sent','debug','stringify','error','code'];(function(_0x48c4ef,_0x319d44){var _0x435715=function(_0x925d50){while(--_0x925d50){_0x48c4ef['push'](_0x48c4ef['shift']());}};_0x435715(++_0x319d44);}(_0xf5e1,0x12b));var _0x1f5e=function(_0x356dcc,_0xb32b97){_0x356dcc=_0x356dcc-0x0;var _0x2aa02c=_0xf5e1[_0x356dcc];return _0x2aa02c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1f5e('0x0'));var rimraf=require(_0x1f5e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1f5e('0x2'));var rp=require(_0x1f5e('0x3'));var moment=require(_0x1f5e('0x4'));var BPromise=require(_0x1f5e('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1f5e('0x6'));var sox=require(_0x1f5e('0x7'));var csv=require(_0x1f5e('0x8'));var ejs=require(_0x1f5e('0x9'));var fs=require('fs');var _=require(_0x1f5e('0xa'));var squel=require(_0x1f5e('0xb'));var crypto=require('crypto');var jsforce=require(_0x1f5e('0xc'));var deskjs=require(_0x1f5e('0xd'));var toCsv=require('to-csv');var querystring=require(_0x1f5e('0xe'));var Papa=require(_0x1f5e('0xf'));var authService=require(_0x1f5e('0x10'));var hardwareService=require('../../config/license/hardware');var Redis=require(_0x1f5e('0x11'));var qs=require(_0x1f5e('0x12'));var logger=require(_0x1f5e('0x13'))(_0x1f5e('0x14'));var utils=require('../../config/utils');var config=require(_0x1f5e('0x15'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x1f5e('0x16')][_0x1f5e('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x4c60ad,_0x143523,_0x3224a2,_0x19633d){return new BPromise(function(_0xb7968e,_0x175fd4){var _0x61cbb8=_0x19633d||client;return _0x61cbb8[_0x1f5e('0x18')](_0x4c60ad,_0x3224a2)['then'](function(_0x5739c5){logger[_0x1f5e('0x19')]('Trunk,\x20%s,\x20%s',_0x143523,_0x1f5e('0x1a'));logger[_0x1f5e('0x1b')]('Trunk,\x20%s,\x20%s,\x20%s',_0x143523,_0x1f5e('0x1a'),JSON[_0x1f5e('0x1c')](_0x5739c5));if(_0x5739c5[_0x1f5e('0x1d')]){if(_0x5739c5[_0x1f5e('0x1d')][_0x1f5e('0x1e')]===0x1f4){logger[_0x1f5e('0x1d')](_0x1f5e('0x1f'),_0x143523,_0x5739c5[_0x1f5e('0x1d')][_0x1f5e('0x20')]);return _0x175fd4(_0x5739c5[_0x1f5e('0x1d')]['message']);}logger['error'](_0x1f5e('0x1f'),_0x143523,_0x5739c5['error'][_0x1f5e('0x20')]);return _0xb7968e(_0x5739c5[_0x1f5e('0x1d')]['message']);}else{logger[_0x1f5e('0x19')](_0x1f5e('0x1f'),_0x143523,_0x1f5e('0x1a'));_0xb7968e(_0x5739c5['result'][_0x1f5e('0x20')]);}})[_0x1f5e('0x21')](function(_0x287df6){logger[_0x1f5e('0x1d')](_0x1f5e('0x1f'),_0x143523,_0x287df6);_0x175fd4(_0x287df6);});});}function respondWithStatusCode(_0x14be9d,_0x32c85a){_0x32c85a=_0x32c85a||0xcc;return function(_0x57d56b){if(_0x57d56b){return _0x14be9d['sendStatus'](_0x32c85a);}return _0x14be9d[_0x1f5e('0x22')](_0x32c85a)[_0x1f5e('0x23')]();};}function respondWithResult(_0x5e21e9,_0x416322){_0x416322=_0x416322||0xc8;return function(_0x58d2a8){if(_0x58d2a8){return _0x5e21e9[_0x1f5e('0x22')](_0x416322)[_0x1f5e('0x24')](_0x58d2a8);}};}function respondWithFilteredResult(_0x3b4f91,_0x1004ca){return function(_0x23ef84){if(_0x23ef84){var _0x2c5b9d=_0x23ef84['count'],_0x5de55f=_0x1004ca[_0x1f5e('0x25')],_0x43c7c2=_0x1004ca['offset']+_0x1004ca[_0x1f5e('0x26')],_0x328559;if(_0x43c7c2>=_0x2c5b9d){_0x43c7c2=_0x2c5b9d;_0x328559=0xc8;}else{_0x328559=0xce;}_0x3b4f91[_0x1f5e('0x22')](_0x328559);return _0x3b4f91[_0x1f5e('0x27')](_0x1f5e('0x28'),_0x5de55f+'-'+_0x43c7c2+'/'+_0x2c5b9d)[_0x1f5e('0x24')](_0x23ef84);}return null;};}function patchUpdates(_0x58efb8){return function(_0x582370){try{jsonpatch[_0x1f5e('0x29')](_0x582370,_0x58efb8,!![]);}catch(_0x2c59ca){return BPromise[_0x1f5e('0x2a')](_0x2c59ca);}return _0x582370[_0x1f5e('0x2b')]();};}function saveUpdates(_0x2d910,_0x197fa2){return function(_0x93fc1f){if(_0x93fc1f){return _0x93fc1f[_0x1f5e('0x2c')](_0x2d910)[_0x1f5e('0x2d')](function(_0x5c391e){return _0x5c391e;});}return null;};}function removeEntity(_0x56cbbf,_0x253acb){return function(_0x4680f8){if(_0x4680f8){return _0x4680f8[_0x1f5e('0x2e')]()[_0x1f5e('0x2d')](function(){var _0x525710=_0x4680f8[_0x1f5e('0x2f')]({'plain':!![]});var _0x508d25=_0x1f5e('0x30');return db[_0x1f5e('0x31')][_0x1f5e('0x2e')]({'where':{'type':_0x508d25,'resourceId':_0x525710['id']}})[_0x1f5e('0x2d')](function(){return _0x4680f8;});})[_0x1f5e('0x2d')](function(){_0x56cbbf[_0x1f5e('0x22')](0xcc)[_0x1f5e('0x23')]();});}};}function handleEntityNotFound(_0x3af012,_0x13ce5a){return function(_0x522a12){if(!_0x522a12){_0x3af012[_0x1f5e('0x32')](0x194);}return _0x522a12;};}function handleError(_0x434ff7,_0x19e80d){_0x19e80d=_0x19e80d||0x1f4;return function(_0x3958a7){logger['error'](_0x3958a7[_0x1f5e('0x33')]);if(_0x3958a7[_0x1f5e('0x34')]){delete _0x3958a7[_0x1f5e('0x34')];}_0x434ff7[_0x1f5e('0x22')](_0x19e80d)[_0x1f5e('0x35')](_0x3958a7);};}exports[_0x1f5e('0x36')]=function(_0x32bc32,_0x10686a){var _0x5e3ee8={},_0x237fbb={},_0x2cd256={'count':0x0,'rows':[]};var _0x27c7cf=db[_0x1f5e('0x37')]['rawAttributes'];_0x237fbb[_0x1f5e('0x38')]=_[_0x1f5e('0x39')](_0x27c7cf);_0x237fbb[_0x1f5e('0x3a')]=_['keys'](_0x32bc32['query']);_0x237fbb[_0x1f5e('0x3b')]=_[_0x1f5e('0x3c')](_0x237fbb[_0x1f5e('0x38')],_0x237fbb[_0x1f5e('0x3a')]);_0x5e3ee8[_0x1f5e('0x3d')]=_[_0x1f5e('0x3c')](_0x237fbb['model'],qs['fields'](_0x32bc32[_0x1f5e('0x3a')][_0x1f5e('0x3e')]));_0x5e3ee8['attributes']=_0x5e3ee8[_0x1f5e('0x3d')][_0x1f5e('0x3f')]?_0x5e3ee8['attributes']:_0x237fbb[_0x1f5e('0x38')];if(!_0x32bc32[_0x1f5e('0x3a')]['hasOwnProperty'](_0x1f5e('0x40'))){_0x5e3ee8[_0x1f5e('0x26')]=qs['limit'](_0x32bc32[_0x1f5e('0x3a')][_0x1f5e('0x26')]);_0x5e3ee8[_0x1f5e('0x25')]=qs[_0x1f5e('0x25')](_0x32bc32[_0x1f5e('0x3a')]['offset']);}_0x5e3ee8[_0x1f5e('0x41')]=qs[_0x1f5e('0x42')](_0x32bc32[_0x1f5e('0x3a')]['sort']);_0x5e3ee8[_0x1f5e('0x43')]=qs[_0x1f5e('0x3b')](_[_0x1f5e('0x44')](_0x32bc32[_0x1f5e('0x3a')],_0x237fbb[_0x1f5e('0x3b')]));if(_0x32bc32[_0x1f5e('0x3a')][_0x1f5e('0x45')]){_0x5e3ee8[_0x1f5e('0x43')]=_['merge'](_0x5e3ee8[_0x1f5e('0x43')],{'$or':_[_0x1f5e('0x46')](_0x27c7cf,function(_0x457e32){if(_0x457e32[_0x1f5e('0x47')][_0x1f5e('0x48')]!==_0x1f5e('0x49')){var _0x49619a={};_0x49619a[_0x457e32[_0x1f5e('0x4a')]]={'$like':'%'+_0x32bc32[_0x1f5e('0x3a')][_0x1f5e('0x45')]+'%'};return _0x49619a;}})});}_0x5e3ee8=_[_0x1f5e('0x4b')]({},_0x5e3ee8,_0x32bc32[_0x1f5e('0x4c')]);var _0x54746c={'where':_0x5e3ee8[_0x1f5e('0x43')]};return db[_0x1f5e('0x37')][_0x1f5e('0x4d')](_0x54746c)[_0x1f5e('0x2d')](function(_0x3cb9b1){_0x2cd256[_0x1f5e('0x4d')]=_0x3cb9b1;if(_0x32bc32[_0x1f5e('0x3a')][_0x1f5e('0x4e')]){_0x5e3ee8[_0x1f5e('0x4f')]=[{'all':!![]}];}return db[_0x1f5e('0x37')]['findAll'](_0x5e3ee8);})[_0x1f5e('0x2d')](function(_0x24b8f2){_0x2cd256['rows']=_0x24b8f2;return _0x2cd256;})['then'](respondWithFilteredResult(_0x10686a,_0x5e3ee8))[_0x1f5e('0x21')](handleError(_0x10686a,null));};exports[_0x1f5e('0x50')]=function(_0x184f4f,_0x1feba4){var _0x37e328={'raw':![],'where':{'id':_0x184f4f[_0x1f5e('0x51')]['id']}},_0x11b4f4={};_0x11b4f4[_0x1f5e('0x38')]=_['keys'](db['Trunk']['rawAttributes']);_0x11b4f4[_0x1f5e('0x3a')]=_[_0x1f5e('0x39')](_0x184f4f[_0x1f5e('0x3a')]);_0x11b4f4['filters']=_[_0x1f5e('0x3c')](_0x11b4f4[_0x1f5e('0x38')],_0x11b4f4[_0x1f5e('0x3a')]);_0x37e328[_0x1f5e('0x3d')]=_[_0x1f5e('0x3c')](_0x11b4f4[_0x1f5e('0x38')],qs[_0x1f5e('0x3e')](_0x184f4f[_0x1f5e('0x3a')][_0x1f5e('0x3e')]));_0x37e328[_0x1f5e('0x3d')]=_0x37e328[_0x1f5e('0x3d')]['length']?_0x37e328[_0x1f5e('0x3d')]:_0x11b4f4[_0x1f5e('0x38')];if(_0x184f4f[_0x1f5e('0x3a')][_0x1f5e('0x4e')]){_0x37e328[_0x1f5e('0x4f')]=[{'all':!![]}];}_0x37e328=_[_0x1f5e('0x4b')]({},_0x37e328,_0x184f4f[_0x1f5e('0x4c')]);return db[_0x1f5e('0x37')]['find'](_0x37e328)[_0x1f5e('0x2d')](handleEntityNotFound(_0x1feba4,null))[_0x1f5e('0x2d')](respondWithResult(_0x1feba4,null))[_0x1f5e('0x21')](handleError(_0x1feba4,null));};exports[_0x1f5e('0x52')]=function(_0x4bf59e,_0xf3fc92){var _0x1f8a45={'raw':![],'where':{'id':_0x4bf59e[_0x1f5e('0x51')]['id']}},_0x3cf4cf={};_0x3cf4cf['model']=_[_0x1f5e('0x39')](db[_0x1f5e('0x37')]['rawAttributes']);_0x1f8a45[_0x1f5e('0x3d')]=_[_0x1f5e('0x3c')](_0x3cf4cf[_0x1f5e('0x38')],qs[_0x1f5e('0x3e')](_0x4bf59e['query']['fields']));_0x1f8a45['attributes']=_0x1f8a45[_0x1f5e('0x3d')][_0x1f5e('0x3f')]?_0x1f8a45[_0x1f5e('0x3d')]:_0x3cf4cf[_0x1f5e('0x38')];if(_0x4bf59e['query'][_0x1f5e('0x4e')]){_0x1f8a45[_0x1f5e('0x4f')]=[{'all':!![]}];}_0x1f8a45=_[_0x1f5e('0x4b')]({},_0x1f8a45,_0x4bf59e['options']);return db[_0x1f5e('0x37')][_0x1f5e('0x53')](_0x1f8a45)[_0x1f5e('0x2d')](handleEntityNotFound(_0xf3fc92,null))[_0x1f5e('0x2d')](function(_0x963259){if(_0x963259){var _0x229122=_0x963259['get']({'plain':!![]});_0x229122=qs[_0x1f5e('0x54')](_0x229122,['id','createdAt','updatedAt']);_0x4bf59e[_0x1f5e('0x55')]=_[_0x1f5e('0x54')](_0x4bf59e[_0x1f5e('0x55')],['id',_0x1f5e('0x56'),_0x1f5e('0x57')]);return db['Trunk'][_0x1f5e('0x58')](_[_0x1f5e('0x4b')](_0x229122,_0x4bf59e['body']),{'include':_0x4bf59e['query'][_0x1f5e('0x4e')]?[{'all':!![]}]:undefined})['then'](function(_0x6361a5){var _0x818b1d=_0x4bf59e[_0x1f5e('0x59')][_0x1f5e('0x2f')]({'plain':!![]});if(!_0x818b1d)throw new Error(_0x1f5e('0x5a'));if(_0x818b1d[_0x1f5e('0x5b')]===_0x1f5e('0x59')){var _0x39c0e4=_0x6361a5['get']({'plain':!![]});var _0x28daa9=_0x1f5e('0x30');return db['UserProfileSection'][_0x1f5e('0x53')]({'where':{'name':_0x28daa9,'userProfileId':_0x818b1d['userProfileId']},'raw':!![]})[_0x1f5e('0x2d')](function(_0x39e1b8){if(_0x39e1b8&&_0x39e1b8[_0x1f5e('0x5c')]===0x0){return db['UserProfileResource'][_0x1f5e('0x58')]({'name':_0x39c0e4[_0x1f5e('0x34')],'resourceId':_0x39c0e4['id'],'type':_0x39e1b8[_0x1f5e('0x34')],'sectionId':_0x39e1b8['id']},{})['then'](function(){return _0x6361a5;});}else{return _0x6361a5;}})[_0x1f5e('0x21')](function(_0x3c16c6){logger[_0x1f5e('0x1d')](_0x1f5e('0x5d'),_0x3c16c6);throw _0x3c16c6;});}return _0x6361a5;});}})[_0x1f5e('0x2d')](respondWithResult(_0xf3fc92,0xc9))[_0x1f5e('0x21')](handleError(_0xf3fc92,null));};exports['create']=function(_0x7c6a33,_0x152181,_0x3de8e3){var _0x3ff2a7;return db[_0x1f5e('0x37')][_0x1f5e('0x58')](_0x7c6a33['body'],{'raw':!![]})['then'](function(_0x5e89ad){_0x3ff2a7=_0x5e89ad;return db[_0x1f5e('0x37')][_0x1f5e('0x5e')]({'raw':!![]});})[_0x1f5e('0x2d')](function(_0x4bc082){var _0x118988=fs['readFileSync'](path[_0x1f5e('0x5f')](config['root'],_0x1f5e('0x60')),'utf8');var _0x5b13a0=fs['readFileSync'](path[_0x1f5e('0x5f')](config[_0x1f5e('0x61')],_0x1f5e('0x62')),'utf8');var _0x5462ff=ejs['render'](_0x118988,{'trunks':_0x4bc082||[]});fs[_0x1f5e('0x63')](_0x1f5e('0x64'),_0x5462ff);if(_0x3ff2a7[_0x1f5e('0x65')]){var _0x4dda3a=ejs[_0x1f5e('0x66')](_0x5b13a0,{'trunks':_0x4bc082||[]});fs[_0x1f5e('0x63')](_0x1f5e('0x67'),_0x4dda3a);}})[_0x1f5e('0x2d')](function(){return respondWithRpcPromise('Reload',_0x1f5e('0x58'),{'module':'chan_sip.so'});})[_0x1f5e('0x2d')](function(){var _0xfb378d=_0x7c6a33[_0x1f5e('0x59')][_0x1f5e('0x2f')]({'plain':!![]});if(!_0xfb378d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xfb378d[_0x1f5e('0x5b')]===_0x1f5e('0x59')){var _0x37e9f0=_0x3ff2a7['get']({'plain':!![]});return db[_0x1f5e('0x68')][_0x1f5e('0x53')]({'where':{'name':_0x1f5e('0x30'),'userProfileId':_0xfb378d[_0x1f5e('0x69')]},'raw':!![]})[_0x1f5e('0x2d')](function(_0x8492c2){if(_0x8492c2&&_0x8492c2[_0x1f5e('0x5c')]===0x0){return db[_0x1f5e('0x31')][_0x1f5e('0x58')]({'name':_0x37e9f0[_0x1f5e('0x34')],'resourceId':_0x37e9f0['id'],'type':_0x8492c2[_0x1f5e('0x34')],'sectionId':_0x8492c2['id']},{})[_0x1f5e('0x2d')](function(){return _0x3ff2a7;});}else{return _0x3ff2a7;}})['catch'](function(_0xfdbbdd){logger[_0x1f5e('0x1d')](_0x1f5e('0x5d'),_0xfdbbdd);throw _0xfdbbdd;});}return _0x3ff2a7;})['then'](respondWithResult(_0x152181,0xc9))[_0x1f5e('0x21')](handleError(_0x152181,null));};exports[_0x1f5e('0x2c')]=function(_0x5be801,_0x2f1649,_0x5f039a){var _0xef3e68;return db[_0x1f5e('0x37')][_0x1f5e('0x53')]({'where':{'id':_0x5be801[_0x1f5e('0x51')]['id']}})[_0x1f5e('0x2d')](handleEntityNotFound(_0x2f1649,null))[_0x1f5e('0x2d')](saveUpdates(_0x5be801[_0x1f5e('0x55')],null))['then'](function(_0x54caa8){if(_0x54caa8){_0xef3e68=_0x54caa8;return db[_0x1f5e('0x37')][_0x1f5e('0x5e')]({'raw':!![]});}})[_0x1f5e('0x2d')](function(_0xa6a364){if(_0xa6a364){var _0x12fae2=fs[_0x1f5e('0x6a')](path[_0x1f5e('0x5f')](config[_0x1f5e('0x61')],_0x1f5e('0x60')),_0x1f5e('0x6b'));var _0x184806=fs['readFileSync'](path['join'](config[_0x1f5e('0x61')],'server/files/templates/registry.ejs'),_0x1f5e('0x6b'));var _0x52fab4=ejs[_0x1f5e('0x66')](_0x12fae2,{'trunks':_0xa6a364||[]});fs[_0x1f5e('0x63')]('/etc/asterisk/sip_xcally_trunks.conf',_0x52fab4);var _0x623d25=ejs[_0x1f5e('0x66')](_0x184806,{'trunks':_0xa6a364||[]});fs['writeFileSync'](_0x1f5e('0x67'),_0x623d25);return respondWithRpcPromise(_0x1f5e('0x6c'),_0x1f5e('0x2c'),{'module':_0x1f5e('0x6d')});}return null;})['then'](function(_0x434cf8){if(_0x434cf8){return _0xef3e68;}})[_0x1f5e('0x2d')](respondWithResult(_0x2f1649,null))[_0x1f5e('0x21')](handleError(_0x2f1649,null));};exports['destroy']=function(_0x1536ff,_0x3aebf9,_0x3847f1){var _0x35b23c;return db['Trunk'][_0x1f5e('0x53')]({'where':{'id':_0x1536ff['params']['id']}})[_0x1f5e('0x2d')](handleEntityNotFound(_0x3aebf9,null))[_0x1f5e('0x2d')](removeEntity(_0x3aebf9,null))[_0x1f5e('0x2d')](function(){return db['Trunk'][_0x1f5e('0x5e')]({'raw':!![]});})[_0x1f5e('0x2d')](function(_0x5baf5f){var _0x3f652c=fs['readFileSync'](path[_0x1f5e('0x5f')](config[_0x1f5e('0x61')],'server/files/templates/trunk.ejs'),'utf8');var _0x4bbbe0=fs[_0x1f5e('0x6a')](path[_0x1f5e('0x5f')](config[_0x1f5e('0x61')],_0x1f5e('0x62')),_0x1f5e('0x6b'));var _0x58ebc2=ejs[_0x1f5e('0x66')](_0x3f652c,{'trunks':_0x5baf5f});var _0x5b9e5e=ejs[_0x1f5e('0x66')](_0x4bbbe0,{'trunks':_0x5baf5f});fs[_0x1f5e('0x63')](_0x1f5e('0x64'),_0x58ebc2);fs[_0x1f5e('0x63')](_0x1f5e('0x67'),_0x5b9e5e);return respondWithRpcPromise('Reload',_0x1f5e('0x2e'),{'module':'chan_sip.so'});})['catch'](handleError(_0x3aebf9,null));};