Built motion from commit (unavailable).|2.5.14
[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 _0xf20a=['update','get','Trunks','UserProfileResource','destroy','stack','name','send','index','map','type','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','options','Trunk','includeAll','include','findAll','rows','show','params','rawAttributes','fields','find','clone','omit','createdAt','body','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','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','role','userProfileId','autoAssociation','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','then','info','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','apply','save'];(function(_0x4b9678,_0x382652){var _0x286037=function(_0x3c5550){while(--_0x3c5550){_0x4b9678['push'](_0x4b9678['shift']());}};_0x286037(++_0x382652);}(_0xf20a,0xad));var _0xaf20=function(_0xcb0237,_0x115e19){_0xcb0237=_0xcb0237-0x0;var _0x2c0354=_0xf20a[_0xcb0237];return _0x2c0354;};'use strict';var pdf=require(_0xaf20('0x0'));var emlformat=require(_0xaf20('0x1'));var rimraf=require(_0xaf20('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xaf20('0x3'));var moment=require(_0xaf20('0x4'));var BPromise=require(_0xaf20('0x5'));var Mustache=require(_0xaf20('0x6'));var util=require(_0xaf20('0x7'));var path=require(_0xaf20('0x8'));var sox=require(_0xaf20('0x9'));var csv=require(_0xaf20('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xaf20('0xb'));var squel=require(_0xaf20('0xc'));var crypto=require(_0xaf20('0xd'));var jsforce=require(_0xaf20('0xe'));var deskjs=require(_0xaf20('0xf'));var toCsv=require(_0xaf20('0xa'));var querystring=require(_0xaf20('0x10'));var Papa=require(_0xaf20('0x11'));var Redis=require('ioredis');var authService=require(_0xaf20('0x12'));var qs=require(_0xaf20('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaf20('0x14'));var logger=require('../../config/logger')(_0xaf20('0x15'));var utils=require(_0xaf20('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xaf20('0x17'));var db=require(_0xaf20('0x18'))['db'];var jayson=require(_0xaf20('0x19'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x8092a1,_0x58c5a3,_0x11fc91,_0x10c21b){return new BPromise(function(_0x17165d,_0x482545){var _0x204491=_0x10c21b||client;return _0x204491['request'](_0x8092a1,_0x11fc91)[_0xaf20('0x1a')](function(_0x4888be){logger[_0xaf20('0x1b')](_0xaf20('0x1c'),_0x58c5a3,_0xaf20('0x1d'));logger['debug'](_0xaf20('0x1e'),_0x58c5a3,'request\x20sent',JSON[_0xaf20('0x1f')](_0x4888be));if(_0x4888be[_0xaf20('0x20')]){if(_0x4888be[_0xaf20('0x20')][_0xaf20('0x21')]===0x1f4){logger[_0xaf20('0x20')](_0xaf20('0x1c'),_0x58c5a3,_0x4888be['error'][_0xaf20('0x22')]);return _0x482545(_0x4888be[_0xaf20('0x20')][_0xaf20('0x22')]);}logger[_0xaf20('0x20')]('Trunk,\x20%s,\x20%s',_0x58c5a3,_0x4888be[_0xaf20('0x20')][_0xaf20('0x22')]);return _0x17165d(_0x4888be[_0xaf20('0x20')]['message']);}else{logger[_0xaf20('0x1b')](_0xaf20('0x1c'),_0x58c5a3,_0xaf20('0x1d'));_0x17165d(_0x4888be[_0xaf20('0x23')][_0xaf20('0x22')]);}})[_0xaf20('0x24')](function(_0x33c3f4){logger['error']('Trunk,\x20%s,\x20%s',_0x58c5a3,_0x33c3f4);_0x482545(_0x33c3f4);});});}function respondWithStatusCode(_0x20e543,_0x2e70d9){_0x2e70d9=_0x2e70d9||0xcc;return function(_0x269a51){if(_0x269a51){return _0x20e543[_0xaf20('0x25')](_0x2e70d9);}return _0x20e543[_0xaf20('0x26')](_0x2e70d9)[_0xaf20('0x27')]();};}function respondWithResult(_0x206cbb,_0x4a0159){_0x4a0159=_0x4a0159||0xc8;return function(_0x4fe4c1){if(_0x4fe4c1){return _0x206cbb[_0xaf20('0x26')](_0x4a0159)[_0xaf20('0x28')](_0x4fe4c1);}};}function respondWithFilteredResult(_0xc1f2d8,_0x343e6d){return function(_0xe92aa2){if(_0xe92aa2){var _0x30593e=_0xe92aa2[_0xaf20('0x29')],_0x489c5a=_0x343e6d[_0xaf20('0x2a')],_0x5246f7=_0x343e6d[_0xaf20('0x2a')]+_0x343e6d[_0xaf20('0x2b')],_0x5ecf01;if(_0x5246f7>=_0x30593e){_0x5246f7=_0x30593e;_0x5ecf01=0xc8;}else{_0x5ecf01=0xce;}_0xc1f2d8[_0xaf20('0x26')](_0x5ecf01);return _0xc1f2d8[_0xaf20('0x2c')]('Content-Range',_0x489c5a+'-'+_0x5246f7+'/'+_0x30593e)[_0xaf20('0x28')](_0xe92aa2);}return null;};}function patchUpdates(_0x522c16){return function(_0x493321){try{jsonpatch[_0xaf20('0x2d')](_0x493321,_0x522c16,!![]);}catch(_0x556e9e){return BPromise['reject'](_0x556e9e);}return _0x493321[_0xaf20('0x2e')]();};}function saveUpdates(_0x5e16c8,_0x2dd718){return function(_0x22acbb){if(_0x22acbb){return _0x22acbb[_0xaf20('0x2f')](_0x5e16c8)[_0xaf20('0x1a')](function(_0x4a48cb){return _0x4a48cb;});}return null;};}function removeEntity(_0x1d321c,_0x40b716){return function(_0x3be27e){if(_0x3be27e){return _0x3be27e['destroy']()[_0xaf20('0x1a')](function(){var _0x8a4f36=_0x3be27e[_0xaf20('0x30')]({'plain':!![]});var _0x26fcc4=_0xaf20('0x31');return db[_0xaf20('0x32')][_0xaf20('0x33')]({'where':{'type':_0x26fcc4,'resourceId':_0x8a4f36['id']}})[_0xaf20('0x1a')](function(){return _0x3be27e;});})[_0xaf20('0x1a')](function(){_0x1d321c[_0xaf20('0x26')](0xcc)[_0xaf20('0x27')]();});}};}function handleEntityNotFound(_0x59be2e,_0x438bb1){return function(_0x12ff2e){if(!_0x12ff2e){_0x59be2e[_0xaf20('0x25')](0x194);}return _0x12ff2e;};}function handleError(_0x1a2374,_0x41beaf){_0x41beaf=_0x41beaf||0x1f4;return function(_0x3fba9d){logger[_0xaf20('0x20')](_0x3fba9d[_0xaf20('0x34')]);if(_0x3fba9d['name']){delete _0x3fba9d[_0xaf20('0x35')];}_0x1a2374[_0xaf20('0x26')](_0x41beaf)[_0xaf20('0x36')](_0x3fba9d);};}exports[_0xaf20('0x37')]=function(_0x3e8cb3,_0x2a4a09){var _0x5869a0={},_0xbed784={},_0x2037b1={'count':0x0,'rows':[]};var _0x4ca78b=_[_0xaf20('0x38')](db['Trunk']['rawAttributes'],function(_0x1202de){return{'name':_0x1202de['fieldName'],'type':_0x1202de[_0xaf20('0x39')]['key']};});_0xbed784[_0xaf20('0x3a')]=_['map'](_0x4ca78b,_0xaf20('0x35'));_0xbed784[_0xaf20('0x3b')]=_[_0xaf20('0x3c')](_0x3e8cb3[_0xaf20('0x3b')]);_0xbed784['filters']=_[_0xaf20('0x3d')](_0xbed784[_0xaf20('0x3a')],_0xbed784[_0xaf20('0x3b')]);_0x5869a0[_0xaf20('0x3e')]=_[_0xaf20('0x3d')](_0xbed784['model'],qs['fields'](_0x3e8cb3[_0xaf20('0x3b')]['fields']));_0x5869a0[_0xaf20('0x3e')]=_0x5869a0['attributes'][_0xaf20('0x3f')]?_0x5869a0[_0xaf20('0x3e')]:_0xbed784[_0xaf20('0x3a')];if(!_0x3e8cb3[_0xaf20('0x3b')][_0xaf20('0x40')](_0xaf20('0x41'))){_0x5869a0[_0xaf20('0x2b')]=qs[_0xaf20('0x2b')](_0x3e8cb3[_0xaf20('0x3b')][_0xaf20('0x2b')]);_0x5869a0[_0xaf20('0x2a')]=qs[_0xaf20('0x2a')](_0x3e8cb3[_0xaf20('0x3b')][_0xaf20('0x2a')]);}_0x5869a0[_0xaf20('0x42')]=qs[_0xaf20('0x43')](_0x3e8cb3['query']['sort']);_0x5869a0[_0xaf20('0x44')]=qs[_0xaf20('0x45')](_[_0xaf20('0x46')](_0x3e8cb3[_0xaf20('0x3b')],_0xbed784[_0xaf20('0x45')]),_0x4ca78b);if(_0x3e8cb3['query']['filter']){_0x5869a0[_0xaf20('0x44')]=_[_0xaf20('0x47')](_0x5869a0[_0xaf20('0x44')],{'$or':_[_0xaf20('0x38')](_0x4ca78b,function(_0x51e4a1){if(_0x51e4a1[_0xaf20('0x39')]!=='VIRTUAL'){var _0x42b278={};_0x42b278[_0x51e4a1[_0xaf20('0x35')]]={'$like':'%'+_0x3e8cb3[_0xaf20('0x3b')][_0xaf20('0x48')]+'%'};return _0x42b278;}})});}_0x5869a0=_['merge']({},_0x5869a0,_0x3e8cb3[_0xaf20('0x49')]);var _0x2bbbd1={'where':_0x5869a0['where']};return db[_0xaf20('0x4a')][_0xaf20('0x29')](_0x2bbbd1)[_0xaf20('0x1a')](function(_0xee157f){_0x2037b1['count']=_0xee157f;if(_0x3e8cb3[_0xaf20('0x3b')][_0xaf20('0x4b')]){_0x5869a0[_0xaf20('0x4c')]=[{'all':!![]}];}return db['Trunk'][_0xaf20('0x4d')](_0x5869a0);})[_0xaf20('0x1a')](function(_0x43b3f0){_0x2037b1[_0xaf20('0x4e')]=_0x43b3f0;return _0x2037b1;})['then'](respondWithFilteredResult(_0x2a4a09,_0x5869a0))[_0xaf20('0x24')](handleError(_0x2a4a09,null));};exports[_0xaf20('0x4f')]=function(_0x2c2bf2,_0x576e9e){var _0x39fdea={'raw':![],'where':{'id':_0x2c2bf2[_0xaf20('0x50')]['id']}},_0x17cc3d={};_0x17cc3d[_0xaf20('0x3a')]=_[_0xaf20('0x3c')](db[_0xaf20('0x4a')][_0xaf20('0x51')]);_0x17cc3d[_0xaf20('0x3b')]=_[_0xaf20('0x3c')](_0x2c2bf2['query']);_0x17cc3d[_0xaf20('0x45')]=_[_0xaf20('0x3d')](_0x17cc3d[_0xaf20('0x3a')],_0x17cc3d[_0xaf20('0x3b')]);_0x39fdea[_0xaf20('0x3e')]=_[_0xaf20('0x3d')](_0x17cc3d[_0xaf20('0x3a')],qs['fields'](_0x2c2bf2[_0xaf20('0x3b')][_0xaf20('0x52')]));_0x39fdea[_0xaf20('0x3e')]=_0x39fdea[_0xaf20('0x3e')][_0xaf20('0x3f')]?_0x39fdea[_0xaf20('0x3e')]:_0x17cc3d[_0xaf20('0x3a')];if(_0x2c2bf2['query'][_0xaf20('0x4b')]){_0x39fdea['include']=[{'all':!![]}];}_0x39fdea=_[_0xaf20('0x47')]({},_0x39fdea,_0x2c2bf2[_0xaf20('0x49')]);return db['Trunk'][_0xaf20('0x53')](_0x39fdea)[_0xaf20('0x1a')](handleEntityNotFound(_0x576e9e,null))['then'](respondWithResult(_0x576e9e,null))[_0xaf20('0x24')](handleError(_0x576e9e,null));};exports[_0xaf20('0x54')]=function(_0x3ae41d,_0x2439e2){var _0x215d75={'where':{'id':_0x3ae41d['params']['id']}},_0x56c993={};_0x56c993['model']=_[_0xaf20('0x3c')](db['Trunk'][_0xaf20('0x51')]);_0x215d75[_0xaf20('0x3e')]=_['intersection'](_0x56c993[_0xaf20('0x3a')],qs[_0xaf20('0x52')](_0x3ae41d[_0xaf20('0x3b')][_0xaf20('0x52')]));_0x215d75[_0xaf20('0x3e')]=_0x215d75['attributes']['length']?_0x215d75[_0xaf20('0x3e')]:_0x56c993['model'];if(_0x3ae41d[_0xaf20('0x3b')][_0xaf20('0x4b')]){_0x215d75[_0xaf20('0x4c')]=[{'all':!![]}];}_0x215d75=_[_0xaf20('0x47')]({},_0x215d75,_0x3ae41d[_0xaf20('0x49')]);return db[_0xaf20('0x4a')][_0xaf20('0x53')](_0x215d75)['then'](handleEntityNotFound(_0x2439e2,null))[_0xaf20('0x1a')](function(_0x3b68ac){if(_0x3b68ac){var _0x22b07b=_0x3b68ac['get']({'plain':!![]});_0x22b07b=qs[_0xaf20('0x55')](_0x22b07b,['id',_0xaf20('0x56'),'updatedAt']);_0x3ae41d[_0xaf20('0x57')]=_[_0xaf20('0x55')](_0x3ae41d[_0xaf20('0x57')],['id',_0xaf20('0x56'),_0xaf20('0x58')]);return db[_0xaf20('0x4a')]['create'](_['merge'](_0x22b07b,_0x3ae41d[_0xaf20('0x57')]),{'include':_0x3ae41d['query'][_0xaf20('0x4b')]?[{'all':!![]}]:undefined})[_0xaf20('0x1a')](function(_0x33a481){var _0x53a8db=_0x3ae41d['user'][_0xaf20('0x30')]({'plain':!![]});if(!_0x53a8db)throw new Error(_0xaf20('0x59'));if(_0x53a8db['role']===_0xaf20('0x5a')){var _0xe57991=_0x33a481[_0xaf20('0x30')]({'plain':!![]});var _0x24f5cf=_0xaf20('0x31');return db[_0xaf20('0x5b')][_0xaf20('0x53')]({'where':{'name':_0x24f5cf,'userProfileId':_0x53a8db['userProfileId']},'raw':!![]})[_0xaf20('0x1a')](function(_0x57ddc2){if(_0x57ddc2&&_0x57ddc2['autoAssociation']===0x0){return db[_0xaf20('0x32')][_0xaf20('0x5c')]({'name':_0xe57991['name'],'resourceId':_0xe57991['id'],'type':_0x57ddc2['name'],'sectionId':_0x57ddc2['id']},{})[_0xaf20('0x1a')](function(){return _0x33a481;});}else{return _0x33a481;}})[_0xaf20('0x24')](function(_0x3b4b6b){logger['error'](_0xaf20('0x5d'),_0x3b4b6b);throw _0x3b4b6b;});}return _0x33a481;});}})[_0xaf20('0x1a')](respondWithResult(_0x2439e2,0xc9))[_0xaf20('0x24')](handleError(_0x2439e2,null));};exports[_0xaf20('0x5c')]=function(_0x1fdfdb,_0xae1870,_0x515484){var _0x31359f;return db[_0xaf20('0x4a')][_0xaf20('0x5c')](_0x1fdfdb[_0xaf20('0x57')],{'raw':!![]})[_0xaf20('0x1a')](function(_0x5496f0){_0x31359f=_0x5496f0;return db[_0xaf20('0x4a')][_0xaf20('0x4d')]({'raw':!![]});})[_0xaf20('0x1a')](function(_0x15ed53){var _0x35e787=fs[_0xaf20('0x5e')](path[_0xaf20('0x5f')](config[_0xaf20('0x60')],_0xaf20('0x61')),_0xaf20('0x62'));var _0xc3883d=fs[_0xaf20('0x5e')](path['join'](config[_0xaf20('0x60')],_0xaf20('0x63')),_0xaf20('0x62'));var _0x116545=ejs[_0xaf20('0x64')](_0x35e787,{'trunks':_0x15ed53||[]});fs[_0xaf20('0x65')](_0xaf20('0x66'),_0x116545);if(_0x31359f[_0xaf20('0x67')]){var _0x3047e0=ejs[_0xaf20('0x64')](_0xc3883d,{'trunks':_0x15ed53||[]});fs[_0xaf20('0x65')](_0xaf20('0x68'),_0x3047e0);}})[_0xaf20('0x1a')](function(){return respondWithRpcPromise(_0xaf20('0x69'),_0xaf20('0x5c'),{'module':_0xaf20('0x6a')});})[_0xaf20('0x1a')](function(){var _0x1de592=_0x1fdfdb[_0xaf20('0x5a')]['get']({'plain':!![]});if(!_0x1de592)throw new Error(_0xaf20('0x59'));if(_0x1de592[_0xaf20('0x6b')]===_0xaf20('0x5a')){var _0x26ffcf=_0x31359f[_0xaf20('0x30')]({'plain':!![]});return db[_0xaf20('0x5b')][_0xaf20('0x53')]({'where':{'name':_0xaf20('0x31'),'userProfileId':_0x1de592[_0xaf20('0x6c')]},'raw':!![]})['then'](function(_0x119ae9){if(_0x119ae9&&_0x119ae9[_0xaf20('0x6d')]===0x0){return db['UserProfileResource']['create']({'name':_0x26ffcf[_0xaf20('0x35')],'resourceId':_0x26ffcf['id'],'type':_0x119ae9[_0xaf20('0x35')],'sectionId':_0x119ae9['id']},{})[_0xaf20('0x1a')](function(){return _0x31359f;});}else{return _0x31359f;}})[_0xaf20('0x24')](function(_0x3e433e){logger[_0xaf20('0x20')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3e433e);throw _0x3e433e;});}return _0x31359f;})[_0xaf20('0x1a')](respondWithResult(_0xae1870,0xc9))[_0xaf20('0x24')](handleError(_0xae1870,null));};exports[_0xaf20('0x2f')]=function(_0x5f0ccc,_0x1f9ce,_0x58b0c1){var _0x2d8cc8;return db['Trunk']['find']({'where':{'id':_0x5f0ccc['params']['id']}})[_0xaf20('0x1a')](handleEntityNotFound(_0x1f9ce,null))[_0xaf20('0x1a')](saveUpdates(_0x5f0ccc[_0xaf20('0x57')],null))[_0xaf20('0x1a')](function(_0x52d91b){if(_0x52d91b){_0x2d8cc8=_0x52d91b;return db[_0xaf20('0x4a')][_0xaf20('0x4d')]({'raw':!![]});}})['then'](function(_0x80a673){if(_0x80a673){var _0x1dcea5=fs[_0xaf20('0x5e')](path['join'](config['root'],_0xaf20('0x61')),_0xaf20('0x62'));var _0x522a13=fs[_0xaf20('0x5e')](path[_0xaf20('0x5f')](config[_0xaf20('0x60')],_0xaf20('0x63')),_0xaf20('0x62'));var _0x3dfbe5=ejs['render'](_0x1dcea5,{'trunks':_0x80a673||[]});fs[_0xaf20('0x65')](_0xaf20('0x66'),_0x3dfbe5);var _0x4fd007=ejs[_0xaf20('0x64')](_0x522a13,{'trunks':_0x80a673||[]});fs[_0xaf20('0x65')](_0xaf20('0x68'),_0x4fd007);return respondWithRpcPromise(_0xaf20('0x69'),_0xaf20('0x2f'),{'module':_0xaf20('0x6a')});}return null;})[_0xaf20('0x1a')](function(_0x4c3177){if(_0x4c3177){return _0x2d8cc8;}})[_0xaf20('0x1a')](respondWithResult(_0x1f9ce,null))[_0xaf20('0x24')](handleError(_0x1f9ce,null));};exports[_0xaf20('0x33')]=function(_0x2a0646,_0x371e0d,_0x2a291d){var _0x5768ad;return db[_0xaf20('0x4a')][_0xaf20('0x53')]({'where':{'id':_0x2a0646[_0xaf20('0x50')]['id']}})[_0xaf20('0x1a')](handleEntityNotFound(_0x371e0d,null))[_0xaf20('0x1a')](removeEntity(_0x371e0d,null))[_0xaf20('0x1a')](function(){return db[_0xaf20('0x4a')]['findAll']({'raw':!![]});})[_0xaf20('0x1a')](function(_0x50c1f5){var _0x1a4c88=fs[_0xaf20('0x5e')](path[_0xaf20('0x5f')](config[_0xaf20('0x60')],_0xaf20('0x61')),'utf8');var _0x31c9fd=fs[_0xaf20('0x5e')](path['join'](config['root'],_0xaf20('0x63')),_0xaf20('0x62'));var _0x5aaab1=ejs[_0xaf20('0x64')](_0x1a4c88,{'trunks':_0x50c1f5});var _0x280757=ejs['render'](_0x31c9fd,{'trunks':_0x50c1f5});fs[_0xaf20('0x65')](_0xaf20('0x66'),_0x5aaab1);fs[_0xaf20('0x65')]('/etc/asterisk/sip_xcally_registers.conf',_0x280757);return respondWithRpcPromise(_0xaf20('0x69'),_0xaf20('0x33'),{'module':_0xaf20('0x6a')});})[_0xaf20('0x24')](handleError(_0x371e0d,null));};