Built motion from commit (unavailable).|2.5.30
[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 _0xeb3b=['../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','Trunk,\x20%s,\x20%s','debug','error','code','message','info','request\x20sent','catch','sendStatus','status','end','offset','undefined','limit','Content-Range','apply','reject','save','update','destroy','Trunks','UserProfileResource','stack','name','index','map','Trunk','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','count','includeAll','include','show','options','clone','params','find','omit','createdAt','updatedAt','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','/etc/asterisk/sip_xcally_registers.conf','Reload','userProfileId','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x29f8d6,_0x1c073c){var _0x40b7c0=function(_0x4e5af3){while(--_0x4e5af3){_0x29f8d6['push'](_0x29f8d6['shift']());}};_0x40b7c0(++_0x1c073c);}(_0xeb3b,0x19e));var _0xbeb3=function(_0x5f25b3,_0x35481a){_0x5f25b3=_0x5f25b3-0x0;var _0x4ab9bf=_0xeb3b[_0x5f25b3];return _0x4ab9bf;};'use strict';var emlformat=require(_0xbeb3('0x0'));var rimraf=require(_0xbeb3('0x1'));var zipdir=require(_0xbeb3('0x2'));var jsonpatch=require(_0xbeb3('0x3'));var rp=require(_0xbeb3('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbeb3('0x5'));var util=require('util');var path=require(_0xbeb3('0x6'));var sox=require('sox');var csv=require(_0xbeb3('0x7'));var ejs=require(_0xbeb3('0x8'));var fs=require('fs');var fs_extra=require(_0xbeb3('0x9'));var _=require(_0xbeb3('0xa'));var squel=require(_0xbeb3('0xb'));var crypto=require(_0xbeb3('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xbeb3('0xd'));var toCsv=require(_0xbeb3('0x7'));var querystring=require(_0xbeb3('0xe'));var Papa=require(_0xbeb3('0xf'));var Redis=require(_0xbeb3('0x10'));var authService=require(_0xbeb3('0x11'));var qs=require(_0xbeb3('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbeb3('0x13'));var logger=require(_0xbeb3('0x14'))('api');var utils=require(_0xbeb3('0x15'));var config=require(_0xbeb3('0x16'));var licenseUtil=require(_0xbeb3('0x17'));var db=require(_0xbeb3('0x18'))['db'];var jayson=require(_0xbeb3('0x19'));var client=jayson[_0xbeb3('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x50691f,_0x271548,_0x300c44,_0x5f521b){return new BPromise(function(_0x4dfb28,_0xed9879){var _0x40f586=_0x5f521b||client;return _0x40f586[_0xbeb3('0x1b')](_0x50691f,_0x300c44)[_0xbeb3('0x1c')](function(_0x26daf2){logger['info'](_0xbeb3('0x1d'),_0x271548,'request\x20sent');logger[_0xbeb3('0x1e')]('Trunk,\x20%s,\x20%s,\x20%s',_0x271548,'request\x20sent',JSON['stringify'](_0x26daf2));if(_0x26daf2[_0xbeb3('0x1f')]){if(_0x26daf2[_0xbeb3('0x1f')][_0xbeb3('0x20')]===0x1f4){logger[_0xbeb3('0x1f')]('Trunk,\x20%s,\x20%s',_0x271548,_0x26daf2[_0xbeb3('0x1f')][_0xbeb3('0x21')]);return _0xed9879(_0x26daf2[_0xbeb3('0x1f')]['message']);}logger['error'](_0xbeb3('0x1d'),_0x271548,_0x26daf2['error'][_0xbeb3('0x21')]);return _0x4dfb28(_0x26daf2['error']['message']);}else{logger[_0xbeb3('0x22')](_0xbeb3('0x1d'),_0x271548,_0xbeb3('0x23'));_0x4dfb28(_0x26daf2['result'][_0xbeb3('0x21')]);}})[_0xbeb3('0x24')](function(_0x5e047e){logger[_0xbeb3('0x1f')](_0xbeb3('0x1d'),_0x271548,_0x5e047e);_0xed9879(_0x5e047e);});});}function respondWithStatusCode(_0x55a59d,_0xfc384a){_0xfc384a=_0xfc384a||0xcc;return function(_0x278fe4){if(_0x278fe4){return _0x55a59d[_0xbeb3('0x25')](_0xfc384a);}return _0x55a59d[_0xbeb3('0x26')](_0xfc384a)[_0xbeb3('0x27')]();};}function respondWithResult(_0xee71d7,_0x84921a){_0x84921a=_0x84921a||0xc8;return function(_0x340581){if(_0x340581){return _0xee71d7[_0xbeb3('0x26')](_0x84921a)['json'](_0x340581);}};}function respondWithFilteredResult(_0x4e695e,_0x1f36b9){return function(_0x520116){if(_0x520116){var _0x3e7f7d=typeof _0x1f36b9[_0xbeb3('0x28')]===_0xbeb3('0x29')&&typeof _0x1f36b9[_0xbeb3('0x2a')]==='undefined';var _0x2fe7ec=_0x520116['count'];var _0x26cd8f=_0x3e7f7d?0x0:_0x1f36b9[_0xbeb3('0x28')];var _0x5bd93d=_0x3e7f7d?_0x520116['count']:_0x1f36b9[_0xbeb3('0x28')]+_0x1f36b9['limit'];var _0x51f7ef;if(_0x5bd93d>=_0x2fe7ec){_0x5bd93d=_0x2fe7ec;_0x51f7ef=0xc8;}else{_0x51f7ef=0xce;}_0x4e695e['status'](_0x51f7ef);return _0x4e695e['set'](_0xbeb3('0x2b'),_0x26cd8f+'-'+_0x5bd93d+'/'+_0x2fe7ec)['json'](_0x520116);}return null;};}function patchUpdates(_0x3767cc){return function(_0x3dff2d){try{jsonpatch[_0xbeb3('0x2c')](_0x3dff2d,_0x3767cc,!![]);}catch(_0x445a78){return BPromise[_0xbeb3('0x2d')](_0x445a78);}return _0x3dff2d[_0xbeb3('0x2e')]();};}function saveUpdates(_0x411cd3,_0x30fcd4){return function(_0x2dc0d4){if(_0x2dc0d4){return _0x2dc0d4[_0xbeb3('0x2f')](_0x411cd3)['then'](function(_0xb829fd){return _0xb829fd;});}return null;};}function removeEntity(_0x281a7f,_0x5821dd){return function(_0xb46de){if(_0xb46de){return _0xb46de[_0xbeb3('0x30')]()[_0xbeb3('0x1c')](function(){var _0x1230de=_0xb46de['get']({'plain':!![]});var _0x29f338=_0xbeb3('0x31');return db[_0xbeb3('0x32')][_0xbeb3('0x30')]({'where':{'type':_0x29f338,'resourceId':_0x1230de['id']}})[_0xbeb3('0x1c')](function(){return _0xb46de;});})[_0xbeb3('0x1c')](function(){_0x281a7f[_0xbeb3('0x26')](0xcc)[_0xbeb3('0x27')]();});}};}function handleEntityNotFound(_0x3c81e0,_0x4d0cf3){return function(_0x106629){if(!_0x106629){_0x3c81e0['sendStatus'](0x194);}return _0x106629;};}function handleError(_0x30a715,_0x2f4600){_0x2f4600=_0x2f4600||0x1f4;return function(_0x282844){logger[_0xbeb3('0x1f')](_0x282844[_0xbeb3('0x33')]);if(_0x282844[_0xbeb3('0x34')]){delete _0x282844[_0xbeb3('0x34')];}_0x30a715[_0xbeb3('0x26')](_0x2f4600)['send'](_0x282844);};}exports[_0xbeb3('0x35')]=function(_0x483238,_0x59e6df){var _0x547275={},_0x8461c={},_0x2c95ce={'count':0x0,'rows':[]};var _0x397b68=_[_0xbeb3('0x36')](db[_0xbeb3('0x37')][_0xbeb3('0x38')],function(_0x4aefe0){return{'name':_0x4aefe0[_0xbeb3('0x39')],'type':_0x4aefe0[_0xbeb3('0x3a')][_0xbeb3('0x3b')]};});_0x8461c['model']=_['map'](_0x397b68,'name');_0x8461c[_0xbeb3('0x3c')]=_[_0xbeb3('0x3d')](_0x483238[_0xbeb3('0x3c')]);_0x8461c['filters']=_[_0xbeb3('0x3e')](_0x8461c['model'],_0x8461c[_0xbeb3('0x3c')]);_0x547275[_0xbeb3('0x3f')]=_[_0xbeb3('0x3e')](_0x8461c[_0xbeb3('0x40')],qs['fields'](_0x483238['query'][_0xbeb3('0x41')]));_0x547275[_0xbeb3('0x3f')]=_0x547275[_0xbeb3('0x3f')][_0xbeb3('0x42')]?_0x547275[_0xbeb3('0x3f')]:_0x8461c[_0xbeb3('0x40')];if(!_0x483238[_0xbeb3('0x3c')][_0xbeb3('0x43')]('nolimit')){_0x547275[_0xbeb3('0x2a')]=qs[_0xbeb3('0x2a')](_0x483238[_0xbeb3('0x3c')][_0xbeb3('0x2a')]);_0x547275[_0xbeb3('0x28')]=qs[_0xbeb3('0x28')](_0x483238[_0xbeb3('0x3c')]['offset']);}_0x547275[_0xbeb3('0x44')]=qs[_0xbeb3('0x45')](_0x483238[_0xbeb3('0x3c')][_0xbeb3('0x45')]);_0x547275[_0xbeb3('0x46')]=qs[_0xbeb3('0x47')](_[_0xbeb3('0x48')](_0x483238[_0xbeb3('0x3c')],_0x8461c[_0xbeb3('0x47')]),_0x397b68);if(_0x483238[_0xbeb3('0x3c')][_0xbeb3('0x49')]){_0x547275[_0xbeb3('0x46')]=_[_0xbeb3('0x4a')](_0x547275['where'],{'$or':_[_0xbeb3('0x36')](_0x397b68,function(_0xed19a2){if(_0xed19a2[_0xbeb3('0x3a')]!=='VIRTUAL'){var _0x5acce8={};_0x5acce8[_0xed19a2[_0xbeb3('0x34')]]={'$like':'%'+_0x483238[_0xbeb3('0x3c')][_0xbeb3('0x49')]+'%'};return _0x5acce8;}})});}_0x547275=_[_0xbeb3('0x4a')]({},_0x547275,_0x483238['options']);var _0xcad74d={'where':_0x547275['where']};return db['Trunk'][_0xbeb3('0x4b')](_0xcad74d)[_0xbeb3('0x1c')](function(_0x1ff297){_0x2c95ce[_0xbeb3('0x4b')]=_0x1ff297;if(_0x483238['query'][_0xbeb3('0x4c')]){_0x547275[_0xbeb3('0x4d')]=[{'all':!![]}];}return db[_0xbeb3('0x37')]['findAll'](_0x547275);})[_0xbeb3('0x1c')](function(_0x58c49f){_0x2c95ce['rows']=_0x58c49f;return _0x2c95ce;})[_0xbeb3('0x1c')](respondWithFilteredResult(_0x59e6df,_0x547275))[_0xbeb3('0x24')](handleError(_0x59e6df,null));};exports[_0xbeb3('0x4e')]=function(_0x55e546,_0x23d63c){var _0x312b28={'raw':![],'where':{'id':_0x55e546['params']['id']}},_0x367942={};_0x367942[_0xbeb3('0x40')]=_['keys'](db[_0xbeb3('0x37')]['rawAttributes']);_0x367942[_0xbeb3('0x3c')]=_[_0xbeb3('0x3d')](_0x55e546[_0xbeb3('0x3c')]);_0x367942[_0xbeb3('0x47')]=_[_0xbeb3('0x3e')](_0x367942[_0xbeb3('0x40')],_0x367942[_0xbeb3('0x3c')]);_0x312b28[_0xbeb3('0x3f')]=_['intersection'](_0x367942[_0xbeb3('0x40')],qs[_0xbeb3('0x41')](_0x55e546[_0xbeb3('0x3c')][_0xbeb3('0x41')]));_0x312b28['attributes']=_0x312b28[_0xbeb3('0x3f')][_0xbeb3('0x42')]?_0x312b28[_0xbeb3('0x3f')]:_0x367942[_0xbeb3('0x40')];if(_0x55e546['query'][_0xbeb3('0x4c')]){_0x312b28['include']=[{'all':!![]}];}_0x312b28=_[_0xbeb3('0x4a')]({},_0x312b28,_0x55e546[_0xbeb3('0x4f')]);return db[_0xbeb3('0x37')]['find'](_0x312b28)[_0xbeb3('0x1c')](handleEntityNotFound(_0x23d63c,null))[_0xbeb3('0x1c')](respondWithResult(_0x23d63c,null))[_0xbeb3('0x24')](handleError(_0x23d63c,null));};exports[_0xbeb3('0x50')]=function(_0x30c5af,_0x2479a5){var _0x2156ca={'where':{'id':_0x30c5af[_0xbeb3('0x51')]['id']}},_0x24dab3={};_0x24dab3[_0xbeb3('0x40')]=_['keys'](db[_0xbeb3('0x37')][_0xbeb3('0x38')]);_0x2156ca[_0xbeb3('0x3f')]=_[_0xbeb3('0x3e')](_0x24dab3[_0xbeb3('0x40')],qs['fields'](_0x30c5af['query'][_0xbeb3('0x41')]));_0x2156ca[_0xbeb3('0x3f')]=_0x2156ca['attributes'][_0xbeb3('0x42')]?_0x2156ca[_0xbeb3('0x3f')]:_0x24dab3[_0xbeb3('0x40')];if(_0x30c5af[_0xbeb3('0x3c')][_0xbeb3('0x4c')]){_0x2156ca[_0xbeb3('0x4d')]=[{'all':!![]}];}_0x2156ca=_[_0xbeb3('0x4a')]({},_0x2156ca,_0x30c5af['options']);return db[_0xbeb3('0x37')][_0xbeb3('0x52')](_0x2156ca)[_0xbeb3('0x1c')](handleEntityNotFound(_0x2479a5,null))['then'](function(_0x3863b4){if(_0x3863b4){var _0x39a983=_0x3863b4['get']({'plain':!![]});_0x39a983=qs[_0xbeb3('0x53')](_0x39a983,['id',_0xbeb3('0x54'),_0xbeb3('0x55')]);_0x30c5af[_0xbeb3('0x56')]=_['omit'](_0x30c5af['body'],['id',_0xbeb3('0x54'),'updatedAt']);return db[_0xbeb3('0x37')]['create'](_[_0xbeb3('0x4a')](_0x39a983,_0x30c5af[_0xbeb3('0x56')]),{'include':_0x30c5af[_0xbeb3('0x3c')][_0xbeb3('0x4c')]?[{'all':!![]}]:undefined})[_0xbeb3('0x1c')](function(_0x1a53bd){var _0x394406=_0x30c5af[_0xbeb3('0x57')][_0xbeb3('0x58')]({'plain':!![]});if(!_0x394406)throw new Error(_0xbeb3('0x59'));if(_0x394406[_0xbeb3('0x5a')]===_0xbeb3('0x57')){var _0x22e473=_0x1a53bd[_0xbeb3('0x58')]({'plain':!![]});var _0x178f00=_0xbeb3('0x31');return db[_0xbeb3('0x5b')][_0xbeb3('0x52')]({'where':{'name':_0x178f00,'userProfileId':_0x394406['userProfileId']},'raw':!![]})[_0xbeb3('0x1c')](function(_0x558b22){if(_0x558b22&&_0x558b22[_0xbeb3('0x5c')]===0x0){return db[_0xbeb3('0x32')][_0xbeb3('0x5d')]({'name':_0x22e473['name'],'resourceId':_0x22e473['id'],'type':_0x558b22[_0xbeb3('0x34')],'sectionId':_0x558b22['id']},{})['then'](function(){return _0x1a53bd;});}else{return _0x1a53bd;}})[_0xbeb3('0x24')](function(_0x1d0aba){logger[_0xbeb3('0x1f')](_0xbeb3('0x5e'),_0x1d0aba);throw _0x1d0aba;});}return _0x1a53bd;});}})[_0xbeb3('0x1c')](respondWithResult(_0x2479a5,0xc9))[_0xbeb3('0x24')](handleError(_0x2479a5,null));};exports[_0xbeb3('0x5d')]=function(_0x3d68b6,_0x3d034a,_0x3c3e84){var _0x43dfbd;return db[_0xbeb3('0x37')][_0xbeb3('0x5d')](_0x3d68b6[_0xbeb3('0x56')],{'raw':!![]})[_0xbeb3('0x1c')](function(_0x134153){_0x43dfbd=_0x134153;return db[_0xbeb3('0x37')][_0xbeb3('0x5f')]({'raw':!![]});})[_0xbeb3('0x1c')](function(_0x166f45){var _0x44191f=fs[_0xbeb3('0x60')](path[_0xbeb3('0x61')](config[_0xbeb3('0x62')],_0xbeb3('0x63')),_0xbeb3('0x64'));var _0x20698f=fs[_0xbeb3('0x60')](path[_0xbeb3('0x61')](config[_0xbeb3('0x62')],_0xbeb3('0x65')),_0xbeb3('0x64'));var _0x223722=ejs[_0xbeb3('0x66')](_0x44191f,{'trunks':_0x166f45||[]});fs[_0xbeb3('0x67')](_0xbeb3('0x68'),_0x223722);if(_0x43dfbd['registry']){var _0x32fa71=ejs[_0xbeb3('0x66')](_0x20698f,{'trunks':_0x166f45||[]});fs['writeFileSync'](_0xbeb3('0x69'),_0x32fa71);}})[_0xbeb3('0x1c')](function(){return respondWithRpcPromise(_0xbeb3('0x6a'),'create',{'module':'chan_sip.so'});})[_0xbeb3('0x1c')](function(){var _0x32c0ef=_0x3d68b6[_0xbeb3('0x57')][_0xbeb3('0x58')]({'plain':!![]});if(!_0x32c0ef)throw new Error(_0xbeb3('0x59'));if(_0x32c0ef['role']===_0xbeb3('0x57')){var _0x27b159=_0x43dfbd[_0xbeb3('0x58')]({'plain':!![]});return db[_0xbeb3('0x5b')][_0xbeb3('0x52')]({'where':{'name':'Trunks','userProfileId':_0x32c0ef[_0xbeb3('0x6b')]},'raw':!![]})['then'](function(_0x4d2de8){if(_0x4d2de8&&_0x4d2de8[_0xbeb3('0x5c')]===0x0){return db['UserProfileResource'][_0xbeb3('0x5d')]({'name':_0x27b159[_0xbeb3('0x34')],'resourceId':_0x27b159['id'],'type':_0x4d2de8[_0xbeb3('0x34')],'sectionId':_0x4d2de8['id']},{})[_0xbeb3('0x1c')](function(){return _0x43dfbd;});}else{return _0x43dfbd;}})[_0xbeb3('0x24')](function(_0x366051){logger[_0xbeb3('0x1f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x366051);throw _0x366051;});}return _0x43dfbd;})[_0xbeb3('0x1c')](respondWithResult(_0x3d034a,0xc9))[_0xbeb3('0x24')](handleError(_0x3d034a,null));};exports[_0xbeb3('0x2f')]=function(_0x486978,_0x4b0130,_0x3dd66f){var _0x48da15;return db['Trunk']['find']({'where':{'id':_0x486978[_0xbeb3('0x51')]['id']}})[_0xbeb3('0x1c')](handleEntityNotFound(_0x4b0130,null))[_0xbeb3('0x1c')](saveUpdates(_0x486978[_0xbeb3('0x56')],null))['then'](function(_0x52dc94){if(_0x52dc94){_0x48da15=_0x52dc94;return db[_0xbeb3('0x37')][_0xbeb3('0x5f')]({'raw':!![]});}})[_0xbeb3('0x1c')](function(_0x5be31e){if(_0x5be31e){var _0x57d23c=fs[_0xbeb3('0x60')](path[_0xbeb3('0x61')](config[_0xbeb3('0x62')],_0xbeb3('0x63')),_0xbeb3('0x64'));var _0x3f5874=fs[_0xbeb3('0x60')](path['join'](config['root'],_0xbeb3('0x65')),_0xbeb3('0x64'));var _0x5a167d=ejs['render'](_0x57d23c,{'trunks':_0x5be31e||[]});fs[_0xbeb3('0x67')]('/etc/asterisk/sip_xcally_trunks.conf',_0x5a167d);var _0x32cffa=ejs[_0xbeb3('0x66')](_0x3f5874,{'trunks':_0x5be31e||[]});fs[_0xbeb3('0x67')](_0xbeb3('0x69'),_0x32cffa);return respondWithRpcPromise(_0xbeb3('0x6a'),_0xbeb3('0x2f'),{'module':_0xbeb3('0x6c')});}return null;})[_0xbeb3('0x1c')](function(_0x239b00){if(_0x239b00){return _0x48da15;}})[_0xbeb3('0x1c')](respondWithResult(_0x4b0130,null))[_0xbeb3('0x24')](handleError(_0x4b0130,null));};exports[_0xbeb3('0x30')]=function(_0x466d62,_0x153d12,_0xf931d){var _0x3f0f18;return db[_0xbeb3('0x37')][_0xbeb3('0x52')]({'where':{'id':_0x466d62['params']['id']}})['then'](handleEntityNotFound(_0x153d12,null))[_0xbeb3('0x1c')](removeEntity(_0x153d12,null))[_0xbeb3('0x1c')](function(){return db['Trunk'][_0xbeb3('0x5f')]({'raw':!![]});})['then'](function(_0x7de5eb){var _0x333e04=fs['readFileSync'](path[_0xbeb3('0x61')](config[_0xbeb3('0x62')],_0xbeb3('0x63')),_0xbeb3('0x64'));var _0x370b38=fs[_0xbeb3('0x60')](path[_0xbeb3('0x61')](config[_0xbeb3('0x62')],_0xbeb3('0x65')),_0xbeb3('0x64'));var _0x39d5cc=ejs[_0xbeb3('0x66')](_0x333e04,{'trunks':_0x7de5eb});var _0x5a67d9=ejs[_0xbeb3('0x66')](_0x370b38,{'trunks':_0x7de5eb});fs[_0xbeb3('0x67')](_0xbeb3('0x68'),_0x39d5cc);fs[_0xbeb3('0x67')](_0xbeb3('0x69'),_0x5a67d9);return respondWithRpcPromise('Reload',_0xbeb3('0x30'),{'module':_0xbeb3('0x6c')});})['catch'](handleError(_0x153d12,null));};