Built motion from commit (unavailable).|2.5.29
[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 _0x236c=['rows','show','params','keys','include','merge','clone','find','get','omit','createdAt','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','client','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','error','code','message','catch','sendStatus','status','end','json','offset','limit','reject','update','then','destroy','Trunks','UserProfileResource','name','send','index','map','Trunk','rawAttributes','fieldName','type','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','options','count','includeAll','findAll'];(function(_0x4baae2,_0x487ab6){var _0x1a2285=function(_0x1cea47){while(--_0x1cea47){_0x4baae2['push'](_0x4baae2['shift']());}};_0x1a2285(++_0x487ab6);}(_0x236c,0x155));var _0xc236=function(_0x1e1912,_0xb716a9){_0x1e1912=_0x1e1912-0x0;var _0xe32b83=_0x236c[_0x1e1912];return _0xe32b83;};'use strict';var emlformat=require(_0xc236('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc236('0x1'));var jsonpatch=require(_0xc236('0x2'));var rp=require(_0xc236('0x3'));var moment=require(_0xc236('0x4'));var BPromise=require(_0xc236('0x5'));var Mustache=require('mustache');var util=require(_0xc236('0x6'));var path=require(_0xc236('0x7'));var sox=require(_0xc236('0x8'));var csv=require(_0xc236('0x9'));var ejs=require(_0xc236('0xa'));var fs=require('fs');var fs_extra=require(_0xc236('0xb'));var _=require('lodash');var squel=require(_0xc236('0xc'));var crypto=require(_0xc236('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xc236('0xe'));var Papa=require('papaparse');var Redis=require(_0xc236('0xf'));var authService=require(_0xc236('0x10'));var qs=require(_0xc236('0x11'));var as=require(_0xc236('0x12'));var hardwareService=require(_0xc236('0x13'));var logger=require('../../config/logger')(_0xc236('0x14'));var utils=require(_0xc236('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xc236('0x16'));var db=require(_0xc236('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xc236('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x599d36,_0x6db6b9,_0x442095,_0x2184c9){return new BPromise(function(_0x71bce2,_0x5052db){var _0x13a42b=_0x2184c9||client;return _0x13a42b['request'](_0x599d36,_0x442095)['then'](function(_0x9a65e8){logger[_0xc236('0x19')](_0xc236('0x1a'),_0x6db6b9,_0xc236('0x1b'));logger[_0xc236('0x1c')]('Trunk,\x20%s,\x20%s,\x20%s',_0x6db6b9,'request\x20sent',JSON['stringify'](_0x9a65e8));if(_0x9a65e8[_0xc236('0x1d')]){if(_0x9a65e8[_0xc236('0x1d')][_0xc236('0x1e')]===0x1f4){logger['error'](_0xc236('0x1a'),_0x6db6b9,_0x9a65e8['error']['message']);return _0x5052db(_0x9a65e8[_0xc236('0x1d')][_0xc236('0x1f')]);}logger[_0xc236('0x1d')](_0xc236('0x1a'),_0x6db6b9,_0x9a65e8[_0xc236('0x1d')][_0xc236('0x1f')]);return _0x71bce2(_0x9a65e8[_0xc236('0x1d')][_0xc236('0x1f')]);}else{logger[_0xc236('0x19')](_0xc236('0x1a'),_0x6db6b9,_0xc236('0x1b'));_0x71bce2(_0x9a65e8['result'][_0xc236('0x1f')]);}})[_0xc236('0x20')](function(_0x3bd41b){logger[_0xc236('0x1d')](_0xc236('0x1a'),_0x6db6b9,_0x3bd41b);_0x5052db(_0x3bd41b);});});}function respondWithStatusCode(_0x21fab8,_0x3a315b){_0x3a315b=_0x3a315b||0xcc;return function(_0xf921e6){if(_0xf921e6){return _0x21fab8[_0xc236('0x21')](_0x3a315b);}return _0x21fab8[_0xc236('0x22')](_0x3a315b)[_0xc236('0x23')]();};}function respondWithResult(_0x5d4edc,_0x308cd6){_0x308cd6=_0x308cd6||0xc8;return function(_0x21d78f){if(_0x21d78f){return _0x5d4edc[_0xc236('0x22')](_0x308cd6)[_0xc236('0x24')](_0x21d78f);}};}function respondWithFilteredResult(_0x561da1,_0x42f248){return function(_0x5da4b2){if(_0x5da4b2){var _0x5351bc=typeof _0x42f248[_0xc236('0x25')]==='undefined'&&typeof _0x42f248[_0xc236('0x26')]==='undefined';var _0x54365=_0x5da4b2['count'];var _0x423842=_0x5351bc?0x0:_0x42f248[_0xc236('0x25')];var _0x4f5175=_0x5351bc?_0x5da4b2['count']:_0x42f248[_0xc236('0x25')]+_0x42f248[_0xc236('0x26')];var _0x1f4995;if(_0x4f5175>=_0x54365){_0x4f5175=_0x54365;_0x1f4995=0xc8;}else{_0x1f4995=0xce;}_0x561da1[_0xc236('0x22')](_0x1f4995);return _0x561da1['set']('Content-Range',_0x423842+'-'+_0x4f5175+'/'+_0x54365)[_0xc236('0x24')](_0x5da4b2);}return null;};}function patchUpdates(_0x53b767){return function(_0x2c756f){try{jsonpatch['apply'](_0x2c756f,_0x53b767,!![]);}catch(_0x1a3409){return BPromise[_0xc236('0x27')](_0x1a3409);}return _0x2c756f['save']();};}function saveUpdates(_0x5a5ec3,_0x2537f9){return function(_0x3053a3){if(_0x3053a3){return _0x3053a3[_0xc236('0x28')](_0x5a5ec3)[_0xc236('0x29')](function(_0x944298){return _0x944298;});}return null;};}function removeEntity(_0xa298f8,_0x259c0f){return function(_0x22a2ca){if(_0x22a2ca){return _0x22a2ca[_0xc236('0x2a')]()['then'](function(){var _0x51fd41=_0x22a2ca['get']({'plain':!![]});var _0x1b4fb2=_0xc236('0x2b');return db[_0xc236('0x2c')][_0xc236('0x2a')]({'where':{'type':_0x1b4fb2,'resourceId':_0x51fd41['id']}})[_0xc236('0x29')](function(){return _0x22a2ca;});})[_0xc236('0x29')](function(){_0xa298f8[_0xc236('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x15f8c0,_0x3f9b1d){return function(_0xc77281){if(!_0xc77281){_0x15f8c0['sendStatus'](0x194);}return _0xc77281;};}function handleError(_0x40de85,_0x2a8f33){_0x2a8f33=_0x2a8f33||0x1f4;return function(_0x3740c9){logger[_0xc236('0x1d')](_0x3740c9['stack']);if(_0x3740c9[_0xc236('0x2d')]){delete _0x3740c9[_0xc236('0x2d')];}_0x40de85[_0xc236('0x22')](_0x2a8f33)[_0xc236('0x2e')](_0x3740c9);};}exports[_0xc236('0x2f')]=function(_0x1edab3,_0x282c8c){var _0x11ca1c={},_0x131212={},_0x1251af={'count':0x0,'rows':[]};var _0x2bb05e=_[_0xc236('0x30')](db[_0xc236('0x31')][_0xc236('0x32')],function(_0x12e802){return{'name':_0x12e802[_0xc236('0x33')],'type':_0x12e802[_0xc236('0x34')]['key']};});_0x131212['model']=_['map'](_0x2bb05e,'name');_0x131212[_0xc236('0x35')]=_['keys'](_0x1edab3[_0xc236('0x35')]);_0x131212[_0xc236('0x36')]=_[_0xc236('0x37')](_0x131212[_0xc236('0x38')],_0x131212[_0xc236('0x35')]);_0x11ca1c[_0xc236('0x39')]=_[_0xc236('0x37')](_0x131212[_0xc236('0x38')],qs[_0xc236('0x3a')](_0x1edab3[_0xc236('0x35')][_0xc236('0x3a')]));_0x11ca1c[_0xc236('0x39')]=_0x11ca1c[_0xc236('0x39')][_0xc236('0x3b')]?_0x11ca1c[_0xc236('0x39')]:_0x131212['model'];if(!_0x1edab3[_0xc236('0x35')][_0xc236('0x3c')]('nolimit')){_0x11ca1c[_0xc236('0x26')]=qs['limit'](_0x1edab3[_0xc236('0x35')]['limit']);_0x11ca1c[_0xc236('0x25')]=qs[_0xc236('0x25')](_0x1edab3[_0xc236('0x35')]['offset']);}_0x11ca1c[_0xc236('0x3d')]=qs[_0xc236('0x3e')](_0x1edab3[_0xc236('0x35')]['sort']);_0x11ca1c[_0xc236('0x3f')]=qs[_0xc236('0x36')](_[_0xc236('0x40')](_0x1edab3[_0xc236('0x35')],_0x131212[_0xc236('0x36')]),_0x2bb05e);if(_0x1edab3[_0xc236('0x35')]['filter']){_0x11ca1c[_0xc236('0x3f')]=_['merge'](_0x11ca1c[_0xc236('0x3f')],{'$or':_[_0xc236('0x30')](_0x2bb05e,function(_0x21b7ff){if(_0x21b7ff[_0xc236('0x34')]!==_0xc236('0x41')){var _0xcd341c={};_0xcd341c[_0x21b7ff[_0xc236('0x2d')]]={'$like':'%'+_0x1edab3['query'][_0xc236('0x42')]+'%'};return _0xcd341c;}})});}_0x11ca1c=_['merge']({},_0x11ca1c,_0x1edab3[_0xc236('0x43')]);var _0x2f52b9={'where':_0x11ca1c['where']};return db[_0xc236('0x31')][_0xc236('0x44')](_0x2f52b9)[_0xc236('0x29')](function(_0x161890){_0x1251af[_0xc236('0x44')]=_0x161890;if(_0x1edab3[_0xc236('0x35')][_0xc236('0x45')]){_0x11ca1c['include']=[{'all':!![]}];}return db['Trunk'][_0xc236('0x46')](_0x11ca1c);})[_0xc236('0x29')](function(_0x510f7f){_0x1251af[_0xc236('0x47')]=_0x510f7f;return _0x1251af;})[_0xc236('0x29')](respondWithFilteredResult(_0x282c8c,_0x11ca1c))[_0xc236('0x20')](handleError(_0x282c8c,null));};exports[_0xc236('0x48')]=function(_0x45fa20,_0x1683f4){var _0x300523={'raw':![],'where':{'id':_0x45fa20[_0xc236('0x49')]['id']}},_0x14a83d={};_0x14a83d['model']=_[_0xc236('0x4a')](db[_0xc236('0x31')][_0xc236('0x32')]);_0x14a83d[_0xc236('0x35')]=_[_0xc236('0x4a')](_0x45fa20[_0xc236('0x35')]);_0x14a83d[_0xc236('0x36')]=_['intersection'](_0x14a83d[_0xc236('0x38')],_0x14a83d[_0xc236('0x35')]);_0x300523[_0xc236('0x39')]=_[_0xc236('0x37')](_0x14a83d['model'],qs[_0xc236('0x3a')](_0x45fa20[_0xc236('0x35')][_0xc236('0x3a')]));_0x300523[_0xc236('0x39')]=_0x300523[_0xc236('0x39')]['length']?_0x300523[_0xc236('0x39')]:_0x14a83d['model'];if(_0x45fa20[_0xc236('0x35')][_0xc236('0x45')]){_0x300523[_0xc236('0x4b')]=[{'all':!![]}];}_0x300523=_[_0xc236('0x4c')]({},_0x300523,_0x45fa20[_0xc236('0x43')]);return db['Trunk']['find'](_0x300523)[_0xc236('0x29')](handleEntityNotFound(_0x1683f4,null))[_0xc236('0x29')](respondWithResult(_0x1683f4,null))[_0xc236('0x20')](handleError(_0x1683f4,null));};exports[_0xc236('0x4d')]=function(_0x3c4256,_0x22b929){var _0x3fd22b={'where':{'id':_0x3c4256[_0xc236('0x49')]['id']}},_0x3abc9b={};_0x3abc9b[_0xc236('0x38')]=_['keys'](db['Trunk'][_0xc236('0x32')]);_0x3fd22b[_0xc236('0x39')]=_[_0xc236('0x37')](_0x3abc9b[_0xc236('0x38')],qs['fields'](_0x3c4256[_0xc236('0x35')][_0xc236('0x3a')]));_0x3fd22b['attributes']=_0x3fd22b[_0xc236('0x39')][_0xc236('0x3b')]?_0x3fd22b[_0xc236('0x39')]:_0x3abc9b[_0xc236('0x38')];if(_0x3c4256['query'][_0xc236('0x45')]){_0x3fd22b[_0xc236('0x4b')]=[{'all':!![]}];}_0x3fd22b=_[_0xc236('0x4c')]({},_0x3fd22b,_0x3c4256[_0xc236('0x43')]);return db[_0xc236('0x31')][_0xc236('0x4e')](_0x3fd22b)[_0xc236('0x29')](handleEntityNotFound(_0x22b929,null))['then'](function(_0x490a69){if(_0x490a69){var _0x4c99a4=_0x490a69[_0xc236('0x4f')]({'plain':!![]});_0x4c99a4=qs[_0xc236('0x50')](_0x4c99a4,['id',_0xc236('0x51'),_0xc236('0x52')]);_0x3c4256['body']=_[_0xc236('0x50')](_0x3c4256[_0xc236('0x53')],['id',_0xc236('0x51'),'updatedAt']);return db[_0xc236('0x31')][_0xc236('0x54')](_[_0xc236('0x4c')](_0x4c99a4,_0x3c4256[_0xc236('0x53')]),{'include':_0x3c4256[_0xc236('0x35')][_0xc236('0x45')]?[{'all':!![]}]:undefined})['then'](function(_0x59a87c){var _0xee40c7=_0x3c4256[_0xc236('0x55')][_0xc236('0x4f')]({'plain':!![]});if(!_0xee40c7)throw new Error(_0xc236('0x56'));if(_0xee40c7[_0xc236('0x57')]===_0xc236('0x55')){var _0x264dcd=_0x59a87c['get']({'plain':!![]});var _0x59466f='Trunks';return db[_0xc236('0x58')][_0xc236('0x4e')]({'where':{'name':_0x59466f,'userProfileId':_0xee40c7[_0xc236('0x59')]},'raw':!![]})[_0xc236('0x29')](function(_0x47aa3f){if(_0x47aa3f&&_0x47aa3f['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x264dcd[_0xc236('0x2d')],'resourceId':_0x264dcd['id'],'type':_0x47aa3f['name'],'sectionId':_0x47aa3f['id']},{})[_0xc236('0x29')](function(){return _0x59a87c;});}else{return _0x59a87c;}})['catch'](function(_0x9fa6b2){logger[_0xc236('0x1d')](_0xc236('0x5a'),_0x9fa6b2);throw _0x9fa6b2;});}return _0x59a87c;});}})[_0xc236('0x29')](respondWithResult(_0x22b929,0xc9))[_0xc236('0x20')](handleError(_0x22b929,null));};exports[_0xc236('0x54')]=function(_0x1d019d,_0x48f0bd,_0x32e876){var _0x5d0172;return db[_0xc236('0x31')][_0xc236('0x54')](_0x1d019d[_0xc236('0x53')],{'raw':!![]})[_0xc236('0x29')](function(_0x1f9fcd){_0x5d0172=_0x1f9fcd;return db[_0xc236('0x31')]['findAll']({'raw':!![]});})[_0xc236('0x29')](function(_0x94f65d){var _0x4bb0c6=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config[_0xc236('0x5d')],'server/files/templates/trunk.ejs'),_0xc236('0x5e'));var _0x45fe5a=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config[_0xc236('0x5d')],_0xc236('0x5f')),_0xc236('0x5e'));var _0xd308b7=ejs[_0xc236('0x60')](_0x4bb0c6,{'trunks':_0x94f65d||[]});fs[_0xc236('0x61')](_0xc236('0x62'),_0xd308b7);if(_0x5d0172[_0xc236('0x63')]){var _0x5d627d=ejs[_0xc236('0x60')](_0x45fe5a,{'trunks':_0x94f65d||[]});fs[_0xc236('0x61')](_0xc236('0x64'),_0x5d627d);}})['then'](function(){return respondWithRpcPromise(_0xc236('0x65'),_0xc236('0x54'),{'module':_0xc236('0x66')});})[_0xc236('0x29')](function(){var _0x510314=_0x1d019d[_0xc236('0x55')]['get']({'plain':!![]});if(!_0x510314)throw new Error(_0xc236('0x56'));if(_0x510314['role']===_0xc236('0x55')){var _0x9e8038=_0x5d0172['get']({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xc236('0x2b'),'userProfileId':_0x510314['userProfileId']},'raw':!![]})[_0xc236('0x29')](function(_0x340c01){if(_0x340c01&&_0x340c01['autoAssociation']===0x0){return db[_0xc236('0x2c')][_0xc236('0x54')]({'name':_0x9e8038['name'],'resourceId':_0x9e8038['id'],'type':_0x340c01[_0xc236('0x2d')],'sectionId':_0x340c01['id']},{})[_0xc236('0x29')](function(){return _0x5d0172;});}else{return _0x5d0172;}})[_0xc236('0x20')](function(_0x1561a9){logger['error'](_0xc236('0x5a'),_0x1561a9);throw _0x1561a9;});}return _0x5d0172;})[_0xc236('0x29')](respondWithResult(_0x48f0bd,0xc9))[_0xc236('0x20')](handleError(_0x48f0bd,null));};exports[_0xc236('0x28')]=function(_0x93aa0f,_0x8b7651,_0x141497){var _0x509f3b;return db['Trunk'][_0xc236('0x4e')]({'where':{'id':_0x93aa0f[_0xc236('0x49')]['id']}})[_0xc236('0x29')](handleEntityNotFound(_0x8b7651,null))[_0xc236('0x29')](saveUpdates(_0x93aa0f[_0xc236('0x53')],null))[_0xc236('0x29')](function(_0x8967c){if(_0x8967c){_0x509f3b=_0x8967c;return db[_0xc236('0x31')]['findAll']({'raw':!![]});}})['then'](function(_0x2c037a){if(_0x2c037a){var _0x47cd85=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config[_0xc236('0x5d')],'server/files/templates/trunk.ejs'),_0xc236('0x5e'));var _0x4b0345=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config[_0xc236('0x5d')],_0xc236('0x5f')),'utf8');var _0x41c76d=ejs[_0xc236('0x60')](_0x47cd85,{'trunks':_0x2c037a||[]});fs['writeFileSync'](_0xc236('0x62'),_0x41c76d);var _0x237209=ejs[_0xc236('0x60')](_0x4b0345,{'trunks':_0x2c037a||[]});fs[_0xc236('0x61')](_0xc236('0x64'),_0x237209);return respondWithRpcPromise(_0xc236('0x65'),_0xc236('0x28'),{'module':'chan_sip.so'});}return null;})[_0xc236('0x29')](function(_0x40350d){if(_0x40350d){return _0x509f3b;}})[_0xc236('0x29')](respondWithResult(_0x8b7651,null))[_0xc236('0x20')](handleError(_0x8b7651,null));};exports['destroy']=function(_0x3646c6,_0x1ee8d0,_0x50d1c6){var _0x40fd6d;return db['Trunk'][_0xc236('0x4e')]({'where':{'id':_0x3646c6[_0xc236('0x49')]['id']}})['then'](handleEntityNotFound(_0x1ee8d0,null))[_0xc236('0x29')](removeEntity(_0x1ee8d0,null))[_0xc236('0x29')](function(){return db['Trunk']['findAll']({'raw':!![]});})[_0xc236('0x29')](function(_0x433761){var _0xae0769=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config[_0xc236('0x5d')],'server/files/templates/trunk.ejs'),_0xc236('0x5e'));var _0x4019e5=fs[_0xc236('0x5b')](path[_0xc236('0x5c')](config['root'],_0xc236('0x5f')),_0xc236('0x5e'));var _0xaedad5=ejs[_0xc236('0x60')](_0xae0769,{'trunks':_0x433761});var _0x161999=ejs['render'](_0x4019e5,{'trunks':_0x433761});fs['writeFileSync'](_0xc236('0x62'),_0xaedad5);fs['writeFileSync'](_0xc236('0x64'),_0x161999);return respondWithRpcPromise(_0xc236('0x65'),_0xc236('0x2a'),{'module':_0xc236('0x66')});})['catch'](handleError(_0x1ee8d0,null));};