Built motion from commit (unavailable).|2.5.11
[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 _0x5f25=['save','update','then','get','Trunks','UserProfileResource','destroy','stack','index','Trunk','rawAttributes','fieldName','type','key','model','map','name','query','keys','attributes','intersection','fields','length','hasOwnProperty','limit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','find','clone','createdAt','updatedAt','omit','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','writeFileSync','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','autoAssociation','readFileSync','/etc/asterisk/sip_xcally_trunks.conf','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','request','Trunk,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','info','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject'];(function(_0x23f837,_0x2ce071){var _0xf6df8e=function(_0x34883c){while(--_0x34883c){_0x23f837['push'](_0x23f837['shift']());}};_0xf6df8e(++_0x2ce071);}(_0x5f25,0xb4));var _0x55f2=function(_0x161ac3,_0x142e49){_0x161ac3=_0x161ac3-0x0;var _0x3bb837=_0x5f25[_0x161ac3];return _0x3bb837;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x55f2('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x55f2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x55f2('0x2'));var BPromise=require(_0x55f2('0x3'));var Mustache=require(_0x55f2('0x4'));var util=require(_0x55f2('0x5'));var path=require(_0x55f2('0x6'));var sox=require(_0x55f2('0x7'));var csv=require(_0x55f2('0x8'));var ejs=require(_0x55f2('0x9'));var fs=require('fs');var _=require(_0x55f2('0xa'));var squel=require(_0x55f2('0xb'));var crypto=require(_0x55f2('0xc'));var jsforce=require(_0x55f2('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x55f2('0x8'));var querystring=require(_0x55f2('0xe'));var Papa=require(_0x55f2('0xf'));var Redis=require(_0x55f2('0x10'));var authService=require(_0x55f2('0x11'));var qs=require(_0x55f2('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x55f2('0x13'));var logger=require(_0x55f2('0x14'))(_0x55f2('0x15'));var utils=require(_0x55f2('0x16'));var config=require(_0x55f2('0x17'));var licenseUtil=require(_0x55f2('0x18'));var db=require(_0x55f2('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x437aeb,_0x37c1a8,_0x1bf48e,_0x489ed6){return new BPromise(function(_0xbdcb0d,_0x2352dd){var _0x3ab5fd=_0x489ed6||client;return _0x3ab5fd[_0x55f2('0x1a')](_0x437aeb,_0x1bf48e)['then'](function(_0x247b6c){logger['info'](_0x55f2('0x1b'),_0x37c1a8,_0x55f2('0x1c'));logger['debug']('Trunk,\x20%s,\x20%s,\x20%s',_0x37c1a8,'request\x20sent',JSON[_0x55f2('0x1d')](_0x247b6c));if(_0x247b6c['error']){if(_0x247b6c['error'][_0x55f2('0x1e')]===0x1f4){logger[_0x55f2('0x1f')]('Trunk,\x20%s,\x20%s',_0x37c1a8,_0x247b6c['error'][_0x55f2('0x20')]);return _0x2352dd(_0x247b6c[_0x55f2('0x1f')][_0x55f2('0x20')]);}logger[_0x55f2('0x1f')](_0x55f2('0x1b'),_0x37c1a8,_0x247b6c['error'][_0x55f2('0x20')]);return _0xbdcb0d(_0x247b6c[_0x55f2('0x1f')]['message']);}else{logger[_0x55f2('0x21')](_0x55f2('0x1b'),_0x37c1a8,_0x55f2('0x1c'));_0xbdcb0d(_0x247b6c[_0x55f2('0x22')]['message']);}})[_0x55f2('0x23')](function(_0x192e9b){logger[_0x55f2('0x1f')](_0x55f2('0x1b'),_0x37c1a8,_0x192e9b);_0x2352dd(_0x192e9b);});});}function respondWithStatusCode(_0x55f5cf,_0x59f5e5){_0x59f5e5=_0x59f5e5||0xcc;return function(_0x5167f9){if(_0x5167f9){return _0x55f5cf[_0x55f2('0x24')](_0x59f5e5);}return _0x55f5cf[_0x55f2('0x25')](_0x59f5e5)[_0x55f2('0x26')]();};}function respondWithResult(_0x559d0b,_0x2484b8){_0x2484b8=_0x2484b8||0xc8;return function(_0x164484){if(_0x164484){return _0x559d0b[_0x55f2('0x25')](_0x2484b8)[_0x55f2('0x27')](_0x164484);}};}function respondWithFilteredResult(_0xe496b0,_0x4137a6){return function(_0x2bb3e4){if(_0x2bb3e4){var _0x45db2e=_0x2bb3e4[_0x55f2('0x28')],_0x187f46=_0x4137a6[_0x55f2('0x29')],_0x33a72a=_0x4137a6['offset']+_0x4137a6['limit'],_0x152097;if(_0x33a72a>=_0x45db2e){_0x33a72a=_0x45db2e;_0x152097=0xc8;}else{_0x152097=0xce;}_0xe496b0['status'](_0x152097);return _0xe496b0[_0x55f2('0x2a')](_0x55f2('0x2b'),_0x187f46+'-'+_0x33a72a+'/'+_0x45db2e)[_0x55f2('0x27')](_0x2bb3e4);}return null;};}function patchUpdates(_0x3d2aec){return function(_0x46ca47){try{jsonpatch[_0x55f2('0x2c')](_0x46ca47,_0x3d2aec,!![]);}catch(_0x20becb){return BPromise[_0x55f2('0x2d')](_0x20becb);}return _0x46ca47[_0x55f2('0x2e')]();};}function saveUpdates(_0x10101c,_0x51e3a0){return function(_0x340dbc){if(_0x340dbc){return _0x340dbc[_0x55f2('0x2f')](_0x10101c)[_0x55f2('0x30')](function(_0x34846b){return _0x34846b;});}return null;};}function removeEntity(_0xee6a9,_0x37159a){return function(_0x37ca14){if(_0x37ca14){return _0x37ca14['destroy']()[_0x55f2('0x30')](function(){var _0x450d21=_0x37ca14[_0x55f2('0x31')]({'plain':!![]});var _0x2adf48=_0x55f2('0x32');return db[_0x55f2('0x33')][_0x55f2('0x34')]({'where':{'type':_0x2adf48,'resourceId':_0x450d21['id']}})[_0x55f2('0x30')](function(){return _0x37ca14;});})[_0x55f2('0x30')](function(){_0xee6a9[_0x55f2('0x25')](0xcc)[_0x55f2('0x26')]();});}};}function handleEntityNotFound(_0x5eda7b,_0x512401){return function(_0xb59052){if(!_0xb59052){_0x5eda7b['sendStatus'](0x194);}return _0xb59052;};}function handleError(_0x36fe3,_0x2eed0c){_0x2eed0c=_0x2eed0c||0x1f4;return function(_0x24a736){logger['error'](_0x24a736[_0x55f2('0x35')]);if(_0x24a736['name']){delete _0x24a736['name'];}_0x36fe3[_0x55f2('0x25')](_0x2eed0c)['send'](_0x24a736);};}exports[_0x55f2('0x36')]=function(_0x1e95c4,_0x184ef){var _0xa62e9a={},_0x47420a={},_0x4f2e1e={'count':0x0,'rows':[]};var _0x5bb32e=_['map'](db[_0x55f2('0x37')][_0x55f2('0x38')],function(_0x8a4064){return{'name':_0x8a4064[_0x55f2('0x39')],'type':_0x8a4064[_0x55f2('0x3a')][_0x55f2('0x3b')]};});_0x47420a[_0x55f2('0x3c')]=_[_0x55f2('0x3d')](_0x5bb32e,_0x55f2('0x3e'));_0x47420a[_0x55f2('0x3f')]=_[_0x55f2('0x40')](_0x1e95c4[_0x55f2('0x3f')]);_0x47420a['filters']=_['intersection'](_0x47420a[_0x55f2('0x3c')],_0x47420a[_0x55f2('0x3f')]);_0xa62e9a[_0x55f2('0x41')]=_[_0x55f2('0x42')](_0x47420a[_0x55f2('0x3c')],qs[_0x55f2('0x43')](_0x1e95c4[_0x55f2('0x3f')][_0x55f2('0x43')]));_0xa62e9a[_0x55f2('0x41')]=_0xa62e9a[_0x55f2('0x41')][_0x55f2('0x44')]?_0xa62e9a['attributes']:_0x47420a[_0x55f2('0x3c')];if(!_0x1e95c4[_0x55f2('0x3f')][_0x55f2('0x45')]('nolimit')){_0xa62e9a[_0x55f2('0x46')]=qs[_0x55f2('0x46')](_0x1e95c4['query'][_0x55f2('0x46')]);_0xa62e9a[_0x55f2('0x29')]=qs[_0x55f2('0x29')](_0x1e95c4[_0x55f2('0x3f')][_0x55f2('0x29')]);}_0xa62e9a[_0x55f2('0x47')]=qs[_0x55f2('0x48')](_0x1e95c4[_0x55f2('0x3f')]['sort']);_0xa62e9a[_0x55f2('0x49')]=qs['filters'](_[_0x55f2('0x4a')](_0x1e95c4[_0x55f2('0x3f')],_0x47420a[_0x55f2('0x4b')]),_0x5bb32e);if(_0x1e95c4[_0x55f2('0x3f')][_0x55f2('0x4c')]){_0xa62e9a[_0x55f2('0x49')]=_[_0x55f2('0x4d')](_0xa62e9a[_0x55f2('0x49')],{'$or':_[_0x55f2('0x3d')](_0x5bb32e,function(_0x833591){if(_0x833591[_0x55f2('0x3a')]!==_0x55f2('0x4e')){var _0x2c34b1={};_0x2c34b1[_0x833591[_0x55f2('0x3e')]]={'$like':'%'+_0x1e95c4['query']['filter']+'%'};return _0x2c34b1;}})});}_0xa62e9a=_[_0x55f2('0x4d')]({},_0xa62e9a,_0x1e95c4[_0x55f2('0x4f')]);var _0x5c4ef7={'where':_0xa62e9a[_0x55f2('0x49')]};return db[_0x55f2('0x37')][_0x55f2('0x28')](_0x5c4ef7)[_0x55f2('0x30')](function(_0x17a38b){_0x4f2e1e[_0x55f2('0x28')]=_0x17a38b;if(_0x1e95c4[_0x55f2('0x3f')][_0x55f2('0x50')]){_0xa62e9a[_0x55f2('0x51')]=[{'all':!![]}];}return db['Trunk']['findAll'](_0xa62e9a);})[_0x55f2('0x30')](function(_0x57b978){_0x4f2e1e[_0x55f2('0x52')]=_0x57b978;return _0x4f2e1e;})[_0x55f2('0x30')](respondWithFilteredResult(_0x184ef,_0xa62e9a))[_0x55f2('0x23')](handleError(_0x184ef,null));};exports[_0x55f2('0x53')]=function(_0x1fe51b,_0x3d86e9){var _0x39c441={'raw':![],'where':{'id':_0x1fe51b[_0x55f2('0x54')]['id']}},_0x56b2df={};_0x56b2df['model']=_[_0x55f2('0x40')](db[_0x55f2('0x37')]['rawAttributes']);_0x56b2df['query']=_[_0x55f2('0x40')](_0x1fe51b[_0x55f2('0x3f')]);_0x56b2df[_0x55f2('0x4b')]=_[_0x55f2('0x42')](_0x56b2df['model'],_0x56b2df['query']);_0x39c441['attributes']=_['intersection'](_0x56b2df['model'],qs['fields'](_0x1fe51b[_0x55f2('0x3f')][_0x55f2('0x43')]));_0x39c441[_0x55f2('0x41')]=_0x39c441[_0x55f2('0x41')][_0x55f2('0x44')]?_0x39c441[_0x55f2('0x41')]:_0x56b2df[_0x55f2('0x3c')];if(_0x1fe51b['query'][_0x55f2('0x50')]){_0x39c441['include']=[{'all':!![]}];}_0x39c441=_[_0x55f2('0x4d')]({},_0x39c441,_0x1fe51b[_0x55f2('0x4f')]);return db[_0x55f2('0x37')][_0x55f2('0x55')](_0x39c441)[_0x55f2('0x30')](handleEntityNotFound(_0x3d86e9,null))['then'](respondWithResult(_0x3d86e9,null))[_0x55f2('0x23')](handleError(_0x3d86e9,null));};exports[_0x55f2('0x56')]=function(_0x21b83c,_0x28d067){var _0x4f21f6={'where':{'id':_0x21b83c[_0x55f2('0x54')]['id']}},_0x292126={};_0x292126['model']=_[_0x55f2('0x40')](db['Trunk'][_0x55f2('0x38')]);_0x4f21f6[_0x55f2('0x41')]=_[_0x55f2('0x42')](_0x292126[_0x55f2('0x3c')],qs['fields'](_0x21b83c[_0x55f2('0x3f')][_0x55f2('0x43')]));_0x4f21f6[_0x55f2('0x41')]=_0x4f21f6[_0x55f2('0x41')]['length']?_0x4f21f6[_0x55f2('0x41')]:_0x292126[_0x55f2('0x3c')];if(_0x21b83c[_0x55f2('0x3f')][_0x55f2('0x50')]){_0x4f21f6[_0x55f2('0x51')]=[{'all':!![]}];}_0x4f21f6=_['merge']({},_0x4f21f6,_0x21b83c[_0x55f2('0x4f')]);return db[_0x55f2('0x37')][_0x55f2('0x55')](_0x4f21f6)['then'](handleEntityNotFound(_0x28d067,null))[_0x55f2('0x30')](function(_0x45c31e){if(_0x45c31e){var _0x4e964c=_0x45c31e['get']({'plain':!![]});_0x4e964c=qs['omit'](_0x4e964c,['id',_0x55f2('0x57'),_0x55f2('0x58')]);_0x21b83c['body']=_[_0x55f2('0x59')](_0x21b83c[_0x55f2('0x5a')],['id',_0x55f2('0x57'),'updatedAt']);return db[_0x55f2('0x37')][_0x55f2('0x5b')](_[_0x55f2('0x4d')](_0x4e964c,_0x21b83c[_0x55f2('0x5a')]),{'include':_0x21b83c[_0x55f2('0x3f')][_0x55f2('0x50')]?[{'all':!![]}]:undefined})[_0x55f2('0x30')](function(_0x2f8edd){var _0x476db1=_0x21b83c[_0x55f2('0x5c')][_0x55f2('0x31')]({'plain':!![]});if(!_0x476db1)throw new Error(_0x55f2('0x5d'));if(_0x476db1[_0x55f2('0x5e')]===_0x55f2('0x5c')){var _0x53eb1c=_0x2f8edd['get']({'plain':!![]});var _0x218013=_0x55f2('0x32');return db[_0x55f2('0x5f')]['find']({'where':{'name':_0x218013,'userProfileId':_0x476db1[_0x55f2('0x60')]},'raw':!![]})[_0x55f2('0x30')](function(_0xca2475){if(_0xca2475&&_0xca2475['autoAssociation']===0x0){return db[_0x55f2('0x33')][_0x55f2('0x5b')]({'name':_0x53eb1c[_0x55f2('0x3e')],'resourceId':_0x53eb1c['id'],'type':_0xca2475[_0x55f2('0x3e')],'sectionId':_0xca2475['id']},{})['then'](function(){return _0x2f8edd;});}else{return _0x2f8edd;}})[_0x55f2('0x23')](function(_0x252f61){logger['error'](_0x55f2('0x61'),_0x252f61);throw _0x252f61;});}return _0x2f8edd;});}})[_0x55f2('0x30')](respondWithResult(_0x28d067,0xc9))[_0x55f2('0x23')](handleError(_0x28d067,null));};exports[_0x55f2('0x5b')]=function(_0x499f6a,_0x30ec73,_0x4d5662){var _0x327c87;return db['Trunk']['create'](_0x499f6a[_0x55f2('0x5a')],{'raw':!![]})[_0x55f2('0x30')](function(_0x1b6309){_0x327c87=_0x1b6309;return db[_0x55f2('0x37')][_0x55f2('0x62')]({'raw':!![]});})['then'](function(_0x522594){var _0x28970a=fs['readFileSync'](path[_0x55f2('0x63')](config[_0x55f2('0x64')],_0x55f2('0x65')),_0x55f2('0x66'));var _0x57394b=fs['readFileSync'](path[_0x55f2('0x63')](config[_0x55f2('0x64')],_0x55f2('0x67')),_0x55f2('0x66'));var _0x276dbd=ejs[_0x55f2('0x68')](_0x28970a,{'trunks':_0x522594||[]});fs[_0x55f2('0x69')]('/etc/asterisk/sip_xcally_trunks.conf',_0x276dbd);if(_0x327c87[_0x55f2('0x6a')]){var _0x1ead3e=ejs[_0x55f2('0x68')](_0x57394b,{'trunks':_0x522594||[]});fs[_0x55f2('0x69')](_0x55f2('0x6b'),_0x1ead3e);}})[_0x55f2('0x30')](function(){return respondWithRpcPromise(_0x55f2('0x6c'),'create',{'module':_0x55f2('0x6d')});})[_0x55f2('0x30')](function(){var _0x357897=_0x499f6a['user'][_0x55f2('0x31')]({'plain':!![]});if(!_0x357897)throw new Error(_0x55f2('0x5d'));if(_0x357897['role']===_0x55f2('0x5c')){var _0x4a9dfe=_0x327c87[_0x55f2('0x31')]({'plain':!![]});return db[_0x55f2('0x5f')][_0x55f2('0x55')]({'where':{'name':'Trunks','userProfileId':_0x357897['userProfileId']},'raw':!![]})[_0x55f2('0x30')](function(_0x38dca5){if(_0x38dca5&&_0x38dca5[_0x55f2('0x6e')]===0x0){return db[_0x55f2('0x33')]['create']({'name':_0x4a9dfe['name'],'resourceId':_0x4a9dfe['id'],'type':_0x38dca5['name'],'sectionId':_0x38dca5['id']},{})[_0x55f2('0x30')](function(){return _0x327c87;});}else{return _0x327c87;}})[_0x55f2('0x23')](function(_0x29b435){logger[_0x55f2('0x1f')](_0x55f2('0x61'),_0x29b435);throw _0x29b435;});}return _0x327c87;})[_0x55f2('0x30')](respondWithResult(_0x30ec73,0xc9))[_0x55f2('0x23')](handleError(_0x30ec73,null));};exports[_0x55f2('0x2f')]=function(_0x43504c,_0x2b8aa3,_0x4684e7){var _0x1f40a1;return db[_0x55f2('0x37')][_0x55f2('0x55')]({'where':{'id':_0x43504c[_0x55f2('0x54')]['id']}})[_0x55f2('0x30')](handleEntityNotFound(_0x2b8aa3,null))['then'](saveUpdates(_0x43504c[_0x55f2('0x5a')],null))[_0x55f2('0x30')](function(_0x21edad){if(_0x21edad){_0x1f40a1=_0x21edad;return db['Trunk'][_0x55f2('0x62')]({'raw':!![]});}})[_0x55f2('0x30')](function(_0xf04bde){if(_0xf04bde){var _0x492749=fs['readFileSync'](path[_0x55f2('0x63')](config['root'],_0x55f2('0x65')),_0x55f2('0x66'));var _0x345294=fs[_0x55f2('0x6f')](path['join'](config[_0x55f2('0x64')],_0x55f2('0x67')),_0x55f2('0x66'));var _0x227375=ejs[_0x55f2('0x68')](_0x492749,{'trunks':_0xf04bde||[]});fs['writeFileSync'](_0x55f2('0x70'),_0x227375);var _0x18ac79=ejs['render'](_0x345294,{'trunks':_0xf04bde||[]});fs[_0x55f2('0x69')](_0x55f2('0x6b'),_0x18ac79);return respondWithRpcPromise('Reload','update',{'module':_0x55f2('0x6d')});}return null;})[_0x55f2('0x30')](function(_0x554f72){if(_0x554f72){return _0x1f40a1;}})[_0x55f2('0x30')](respondWithResult(_0x2b8aa3,null))['catch'](handleError(_0x2b8aa3,null));};exports[_0x55f2('0x34')]=function(_0x198ec3,_0x58d6ff,_0x3a2a0a){var _0x55ac98;return db[_0x55f2('0x37')]['find']({'where':{'id':_0x198ec3[_0x55f2('0x54')]['id']}})[_0x55f2('0x30')](handleEntityNotFound(_0x58d6ff,null))[_0x55f2('0x30')](removeEntity(_0x58d6ff,null))['then'](function(){return db[_0x55f2('0x37')]['findAll']({'raw':!![]});})['then'](function(_0x3ff499){var _0x3f3faa=fs[_0x55f2('0x6f')](path[_0x55f2('0x63')](config[_0x55f2('0x64')],'server/files/templates/trunk.ejs'),_0x55f2('0x66'));var _0x34528c=fs[_0x55f2('0x6f')](path[_0x55f2('0x63')](config[_0x55f2('0x64')],_0x55f2('0x67')),_0x55f2('0x66'));var _0xd5a8b1=ejs[_0x55f2('0x68')](_0x3f3faa,{'trunks':_0x3ff499});var _0x4392d3=ejs[_0x55f2('0x68')](_0x34528c,{'trunks':_0x3ff499});fs[_0x55f2('0x69')](_0x55f2('0x70'),_0xd5a8b1);fs[_0x55f2('0x69')]('/etc/asterisk/sip_xcally_registers.conf',_0x4392d3);return respondWithRpcPromise(_0x55f2('0x6c'),_0x55f2('0x34'),{'module':_0x55f2('0x6d')});})[_0x55f2('0x23')](handleError(_0x58d6ff,null));};