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 _0x6228=['api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','Trunk,\x20%s,\x20%s','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','info','sendStatus','status','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','Trunks','UserProfileResource','end','stack','name','send','index','map','Trunk','rawAttributes','fieldName','key','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','count','includeAll','catch','params','keys','include','merge','find','clone','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','server/files/templates/trunk.ejs','utf8','readFileSync','join','root','render','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','UserProfileSection','autoAssociation','server/files/templates/registry.ejs','writeFileSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger'];(function(_0x2972cf,_0x343fde){var _0x4c173f=function(_0x30eb3a){while(--_0x30eb3a){_0x2972cf['push'](_0x2972cf['shift']());}};_0x4c173f(++_0x343fde);}(_0x6228,0xcf));var _0x8622=function(_0x439d05,_0x15c424){_0x439d05=_0x439d05-0x0;var _0x51f24f=_0x6228[_0x439d05];return _0x51f24f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8622('0x0'));var rimraf=require(_0x8622('0x1'));var zipdir=require(_0x8622('0x2'));var jsonpatch=require(_0x8622('0x3'));var rp=require(_0x8622('0x4'));var moment=require(_0x8622('0x5'));var BPromise=require(_0x8622('0x6'));var Mustache=require(_0x8622('0x7'));var util=require('util');var path=require(_0x8622('0x8'));var sox=require(_0x8622('0x9'));var csv=require(_0x8622('0xa'));var ejs=require(_0x8622('0xb'));var fs=require('fs');var _=require(_0x8622('0xc'));var squel=require(_0x8622('0xd'));var crypto=require(_0x8622('0xe'));var jsforce=require(_0x8622('0xf'));var deskjs=require(_0x8622('0x10'));var toCsv=require('to-csv');var querystring=require(_0x8622('0x11'));var Papa=require(_0x8622('0x12'));var Redis=require(_0x8622('0x13'));var authService=require(_0x8622('0x14'));var qs=require(_0x8622('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8622('0x16'))(_0x8622('0x17'));var utils=require(_0x8622('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x8622('0x19'));var db=require(_0x8622('0x1a'))['db'];var jayson=require(_0x8622('0x1b'));var client=jayson[_0x8622('0x1c')][_0x8622('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x21d61a,_0x1c2fb9,_0x9d4d1,_0x3d8313){return new BPromise(function(_0x280cd8,_0x41772b){var _0xa8f81a=_0x3d8313||client;return _0xa8f81a[_0x8622('0x1e')](_0x21d61a,_0x9d4d1)['then'](function(_0x5a392d){logger['info'](_0x8622('0x1f'),_0x1c2fb9,_0x8622('0x20'));logger['debug'](_0x8622('0x21'),_0x1c2fb9,_0x8622('0x20'),JSON['stringify'](_0x5a392d));if(_0x5a392d['error']){if(_0x5a392d[_0x8622('0x22')][_0x8622('0x23')]===0x1f4){logger[_0x8622('0x22')](_0x8622('0x1f'),_0x1c2fb9,_0x5a392d[_0x8622('0x22')][_0x8622('0x24')]);return _0x41772b(_0x5a392d[_0x8622('0x22')]['message']);}logger['error']('Trunk,\x20%s,\x20%s',_0x1c2fb9,_0x5a392d[_0x8622('0x22')][_0x8622('0x24')]);return _0x280cd8(_0x5a392d[_0x8622('0x22')]['message']);}else{logger[_0x8622('0x25')](_0x8622('0x1f'),_0x1c2fb9,_0x8622('0x20'));_0x280cd8(_0x5a392d['result']['message']);}})['catch'](function(_0x3dd483){logger['error']('Trunk,\x20%s,\x20%s',_0x1c2fb9,_0x3dd483);_0x41772b(_0x3dd483);});});}function respondWithStatusCode(_0x1d2a40,_0x168a95){_0x168a95=_0x168a95||0xcc;return function(_0x5e831a){if(_0x5e831a){return _0x1d2a40[_0x8622('0x26')](_0x168a95);}return _0x1d2a40['status'](_0x168a95)['end']();};}function respondWithResult(_0x3d2f38,_0x15a8cc){_0x15a8cc=_0x15a8cc||0xc8;return function(_0x535cbe){if(_0x535cbe){return _0x3d2f38[_0x8622('0x27')](_0x15a8cc)[_0x8622('0x28')](_0x535cbe);}};}function respondWithFilteredResult(_0x31dc65,_0x536adf){return function(_0x60b48b){if(_0x60b48b){var _0x51bc0d=_0x60b48b['count'],_0x1efe86=_0x536adf[_0x8622('0x29')],_0x4dc348=_0x536adf['offset']+_0x536adf[_0x8622('0x2a')],_0xb18f57;if(_0x4dc348>=_0x51bc0d){_0x4dc348=_0x51bc0d;_0xb18f57=0xc8;}else{_0xb18f57=0xce;}_0x31dc65[_0x8622('0x27')](_0xb18f57);return _0x31dc65[_0x8622('0x2b')](_0x8622('0x2c'),_0x1efe86+'-'+_0x4dc348+'/'+_0x51bc0d)[_0x8622('0x28')](_0x60b48b);}return null;};}function patchUpdates(_0x506e56){return function(_0x5dab32){try{jsonpatch[_0x8622('0x2d')](_0x5dab32,_0x506e56,!![]);}catch(_0x4a88b8){return BPromise[_0x8622('0x2e')](_0x4a88b8);}return _0x5dab32[_0x8622('0x2f')]();};}function saveUpdates(_0x1f0429,_0x35cf21){return function(_0xa1d09c){if(_0xa1d09c){return _0xa1d09c[_0x8622('0x30')](_0x1f0429)['then'](function(_0x1456ca){return _0x1456ca;});}return null;};}function removeEntity(_0xb693de,_0x242586){return function(_0x1a90a6){if(_0x1a90a6){return _0x1a90a6[_0x8622('0x31')]()[_0x8622('0x32')](function(){var _0x3322ae=_0x1a90a6[_0x8622('0x33')]({'plain':!![]});var _0x418263=_0x8622('0x34');return db[_0x8622('0x35')][_0x8622('0x31')]({'where':{'type':_0x418263,'resourceId':_0x3322ae['id']}})['then'](function(){return _0x1a90a6;});})[_0x8622('0x32')](function(){_0xb693de[_0x8622('0x27')](0xcc)[_0x8622('0x36')]();});}};}function handleEntityNotFound(_0x12d9b6,_0x53522a){return function(_0x4be3ae){if(!_0x4be3ae){_0x12d9b6[_0x8622('0x26')](0x194);}return _0x4be3ae;};}function handleError(_0x546055,_0x58e1bc){_0x58e1bc=_0x58e1bc||0x1f4;return function(_0x497ac4){logger[_0x8622('0x22')](_0x497ac4[_0x8622('0x37')]);if(_0x497ac4[_0x8622('0x38')]){delete _0x497ac4[_0x8622('0x38')];}_0x546055[_0x8622('0x27')](_0x58e1bc)[_0x8622('0x39')](_0x497ac4);};}exports[_0x8622('0x3a')]=function(_0x342adf,_0x3d8835){var _0x293fe6={},_0x590621={},_0x5121f1={'count':0x0,'rows':[]};var _0x347664=_[_0x8622('0x3b')](db[_0x8622('0x3c')][_0x8622('0x3d')],function(_0x17dd6d){return{'name':_0x17dd6d[_0x8622('0x3e')],'type':_0x17dd6d['type'][_0x8622('0x3f')]};});_0x590621['model']=_[_0x8622('0x3b')](_0x347664,_0x8622('0x38'));_0x590621[_0x8622('0x40')]=_['keys'](_0x342adf[_0x8622('0x40')]);_0x590621[_0x8622('0x41')]=_[_0x8622('0x42')](_0x590621['model'],_0x590621[_0x8622('0x40')]);_0x293fe6[_0x8622('0x43')]=_[_0x8622('0x42')](_0x590621[_0x8622('0x44')],qs['fields'](_0x342adf[_0x8622('0x40')][_0x8622('0x45')]));_0x293fe6['attributes']=_0x293fe6['attributes'][_0x8622('0x46')]?_0x293fe6[_0x8622('0x43')]:_0x590621['model'];if(!_0x342adf['query'][_0x8622('0x47')](_0x8622('0x48'))){_0x293fe6[_0x8622('0x2a')]=qs[_0x8622('0x2a')](_0x342adf['query'][_0x8622('0x2a')]);_0x293fe6['offset']=qs['offset'](_0x342adf[_0x8622('0x40')]['offset']);}_0x293fe6[_0x8622('0x49')]=qs['sort'](_0x342adf[_0x8622('0x40')][_0x8622('0x4a')]);_0x293fe6[_0x8622('0x4b')]=qs[_0x8622('0x41')](_[_0x8622('0x4c')](_0x342adf[_0x8622('0x40')],_0x590621[_0x8622('0x41')]),_0x347664);if(_0x342adf[_0x8622('0x40')][_0x8622('0x4d')]){_0x293fe6[_0x8622('0x4b')]=_['merge'](_0x293fe6[_0x8622('0x4b')],{'$or':_[_0x8622('0x3b')](_0x347664,function(_0x2ad754){if(_0x2ad754['type']!==_0x8622('0x4e')){var _0x39efdd={};_0x39efdd[_0x2ad754[_0x8622('0x38')]]={'$like':'%'+_0x342adf[_0x8622('0x40')]['filter']+'%'};return _0x39efdd;}})});}_0x293fe6=_['merge']({},_0x293fe6,_0x342adf[_0x8622('0x4f')]);var _0x356b7e={'where':_0x293fe6[_0x8622('0x4b')]};return db[_0x8622('0x3c')][_0x8622('0x50')](_0x356b7e)[_0x8622('0x32')](function(_0x37c894){_0x5121f1[_0x8622('0x50')]=_0x37c894;if(_0x342adf[_0x8622('0x40')][_0x8622('0x51')]){_0x293fe6['include']=[{'all':!![]}];}return db[_0x8622('0x3c')]['findAll'](_0x293fe6);})[_0x8622('0x32')](function(_0x28d033){_0x5121f1['rows']=_0x28d033;return _0x5121f1;})[_0x8622('0x32')](respondWithFilteredResult(_0x3d8835,_0x293fe6))[_0x8622('0x52')](handleError(_0x3d8835,null));};exports['show']=function(_0x5bdd8f,_0x419d47){var _0x287441={'raw':![],'where':{'id':_0x5bdd8f[_0x8622('0x53')]['id']}},_0x3fd8ca={};_0x3fd8ca[_0x8622('0x44')]=_[_0x8622('0x54')](db[_0x8622('0x3c')]['rawAttributes']);_0x3fd8ca[_0x8622('0x40')]=_[_0x8622('0x54')](_0x5bdd8f[_0x8622('0x40')]);_0x3fd8ca['filters']=_[_0x8622('0x42')](_0x3fd8ca[_0x8622('0x44')],_0x3fd8ca[_0x8622('0x40')]);_0x287441[_0x8622('0x43')]=_[_0x8622('0x42')](_0x3fd8ca[_0x8622('0x44')],qs['fields'](_0x5bdd8f[_0x8622('0x40')][_0x8622('0x45')]));_0x287441['attributes']=_0x287441[_0x8622('0x43')][_0x8622('0x46')]?_0x287441[_0x8622('0x43')]:_0x3fd8ca[_0x8622('0x44')];if(_0x5bdd8f[_0x8622('0x40')][_0x8622('0x51')]){_0x287441[_0x8622('0x55')]=[{'all':!![]}];}_0x287441=_[_0x8622('0x56')]({},_0x287441,_0x5bdd8f[_0x8622('0x4f')]);return db[_0x8622('0x3c')][_0x8622('0x57')](_0x287441)[_0x8622('0x32')](handleEntityNotFound(_0x419d47,null))[_0x8622('0x32')](respondWithResult(_0x419d47,null))[_0x8622('0x52')](handleError(_0x419d47,null));};exports[_0x8622('0x58')]=function(_0xae0201,_0x3edd3b){var _0x18161c={'where':{'id':_0xae0201[_0x8622('0x53')]['id']}},_0x466a03={};_0x466a03[_0x8622('0x44')]=_[_0x8622('0x54')](db['Trunk'][_0x8622('0x3d')]);_0x18161c[_0x8622('0x43')]=_[_0x8622('0x42')](_0x466a03[_0x8622('0x44')],qs[_0x8622('0x45')](_0xae0201[_0x8622('0x40')]['fields']));_0x18161c['attributes']=_0x18161c[_0x8622('0x43')][_0x8622('0x46')]?_0x18161c[_0x8622('0x43')]:_0x466a03[_0x8622('0x44')];if(_0xae0201['query']['includeAll']){_0x18161c[_0x8622('0x55')]=[{'all':!![]}];}_0x18161c=_['merge']({},_0x18161c,_0xae0201[_0x8622('0x4f')]);return db[_0x8622('0x3c')]['find'](_0x18161c)['then'](handleEntityNotFound(_0x3edd3b,null))[_0x8622('0x32')](function(_0x4da88d){if(_0x4da88d){var _0x2b3599=_0x4da88d[_0x8622('0x33')]({'plain':!![]});_0x2b3599=qs[_0x8622('0x59')](_0x2b3599,['id',_0x8622('0x5a'),'updatedAt']);_0xae0201['body']=_['omit'](_0xae0201['body'],['id','createdAt',_0x8622('0x5b')]);return db['Trunk'][_0x8622('0x5c')](_['merge'](_0x2b3599,_0xae0201[_0x8622('0x5d')]),{'include':_0xae0201[_0x8622('0x40')][_0x8622('0x51')]?[{'all':!![]}]:undefined})[_0x8622('0x32')](function(_0x6da9ce){var _0x4c6588=_0xae0201[_0x8622('0x5e')][_0x8622('0x33')]({'plain':!![]});if(!_0x4c6588)throw new Error(_0x8622('0x5f'));if(_0x4c6588[_0x8622('0x60')]===_0x8622('0x5e')){var _0x19e765=_0x6da9ce[_0x8622('0x33')]({'plain':!![]});var _0x5812b2=_0x8622('0x34');return db['UserProfileSection'][_0x8622('0x57')]({'where':{'name':_0x5812b2,'userProfileId':_0x4c6588[_0x8622('0x61')]},'raw':!![]})[_0x8622('0x32')](function(_0x3e23ca){if(_0x3e23ca&&_0x3e23ca['autoAssociation']===0x0){return db[_0x8622('0x35')][_0x8622('0x5c')]({'name':_0x19e765[_0x8622('0x38')],'resourceId':_0x19e765['id'],'type':_0x3e23ca[_0x8622('0x38')],'sectionId':_0x3e23ca['id']},{})[_0x8622('0x32')](function(){return _0x6da9ce;});}else{return _0x6da9ce;}})[_0x8622('0x52')](function(_0x2b6902){logger[_0x8622('0x22')](_0x8622('0x62'),_0x2b6902);throw _0x2b6902;});}return _0x6da9ce;});}})[_0x8622('0x32')](respondWithResult(_0x3edd3b,0xc9))['catch'](handleError(_0x3edd3b,null));};exports[_0x8622('0x5c')]=function(_0xad829b,_0x17b085,_0x3d9d90){var _0x24ab17;return db['Trunk'][_0x8622('0x5c')](_0xad829b[_0x8622('0x5d')],{'raw':!![]})['then'](function(_0x45fd7a){_0x24ab17=_0x45fd7a;return db[_0x8622('0x3c')][_0x8622('0x63')]({'raw':!![]});})['then'](function(_0x1961ee){var _0x173ad4=fs['readFileSync'](path['join'](config['root'],_0x8622('0x64')),_0x8622('0x65'));var _0x5cae5e=fs[_0x8622('0x66')](path[_0x8622('0x67')](config[_0x8622('0x68')],'server/files/templates/registry.ejs'),_0x8622('0x65'));var _0x24ca20=ejs[_0x8622('0x69')](_0x173ad4,{'trunks':_0x1961ee||[]});fs['writeFileSync'](_0x8622('0x6a'),_0x24ca20);if(_0x24ab17[_0x8622('0x6b')]){var _0x5667fd=ejs['render'](_0x5cae5e,{'trunks':_0x1961ee||[]});fs['writeFileSync'](_0x8622('0x6c'),_0x5667fd);}})[_0x8622('0x32')](function(){return respondWithRpcPromise(_0x8622('0x6d'),_0x8622('0x5c'),{'module':_0x8622('0x6e')});})[_0x8622('0x32')](function(){var _0xf9c3fa=_0xad829b['user'][_0x8622('0x33')]({'plain':!![]});if(!_0xf9c3fa)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xf9c3fa[_0x8622('0x60')]===_0x8622('0x5e')){var _0x35eb37=_0x24ab17['get']({'plain':!![]});return db[_0x8622('0x6f')]['find']({'where':{'name':_0x8622('0x34'),'userProfileId':_0xf9c3fa[_0x8622('0x61')]},'raw':!![]})[_0x8622('0x32')](function(_0x310533){if(_0x310533&&_0x310533[_0x8622('0x70')]===0x0){return db[_0x8622('0x35')][_0x8622('0x5c')]({'name':_0x35eb37[_0x8622('0x38')],'resourceId':_0x35eb37['id'],'type':_0x310533[_0x8622('0x38')],'sectionId':_0x310533['id']},{})[_0x8622('0x32')](function(){return _0x24ab17;});}else{return _0x24ab17;}})[_0x8622('0x52')](function(_0x2a1241){logger['error'](_0x8622('0x62'),_0x2a1241);throw _0x2a1241;});}return _0x24ab17;})[_0x8622('0x32')](respondWithResult(_0x17b085,0xc9))['catch'](handleError(_0x17b085,null));};exports[_0x8622('0x30')]=function(_0x4f9465,_0x382eb4,_0x53d250){var _0x2c9dc6;return db['Trunk'][_0x8622('0x57')]({'where':{'id':_0x4f9465[_0x8622('0x53')]['id']}})['then'](handleEntityNotFound(_0x382eb4,null))[_0x8622('0x32')](saveUpdates(_0x4f9465[_0x8622('0x5d')],null))[_0x8622('0x32')](function(_0x117e8d){if(_0x117e8d){_0x2c9dc6=_0x117e8d;return db[_0x8622('0x3c')][_0x8622('0x63')]({'raw':!![]});}})[_0x8622('0x32')](function(_0x5c9e0c){if(_0x5c9e0c){var _0x2aacac=fs[_0x8622('0x66')](path[_0x8622('0x67')](config[_0x8622('0x68')],'server/files/templates/trunk.ejs'),'utf8');var _0x5baa4f=fs[_0x8622('0x66')](path[_0x8622('0x67')](config[_0x8622('0x68')],_0x8622('0x71')),_0x8622('0x65'));var _0x185083=ejs[_0x8622('0x69')](_0x2aacac,{'trunks':_0x5c9e0c||[]});fs[_0x8622('0x72')](_0x8622('0x6a'),_0x185083);var _0x59d5c1=ejs['render'](_0x5baa4f,{'trunks':_0x5c9e0c||[]});fs[_0x8622('0x72')](_0x8622('0x6c'),_0x59d5c1);return respondWithRpcPromise(_0x8622('0x6d'),'update',{'module':'chan_sip.so'});}return null;})[_0x8622('0x32')](function(_0x2e0786){if(_0x2e0786){return _0x2c9dc6;}})[_0x8622('0x32')](respondWithResult(_0x382eb4,null))[_0x8622('0x52')](handleError(_0x382eb4,null));};exports[_0x8622('0x31')]=function(_0x193dda,_0x4dce6e,_0x5100ae){var _0x5a79d5;return db[_0x8622('0x3c')][_0x8622('0x57')]({'where':{'id':_0x193dda[_0x8622('0x53')]['id']}})[_0x8622('0x32')](handleEntityNotFound(_0x4dce6e,null))[_0x8622('0x32')](removeEntity(_0x4dce6e,null))['then'](function(){return db[_0x8622('0x3c')][_0x8622('0x63')]({'raw':!![]});})[_0x8622('0x32')](function(_0x5aaf29){var _0x376b74=fs[_0x8622('0x66')](path[_0x8622('0x67')](config['root'],_0x8622('0x64')),_0x8622('0x65'));var _0x8f7a9=fs[_0x8622('0x66')](path[_0x8622('0x67')](config['root'],_0x8622('0x71')),'utf8');var _0x36407d=ejs[_0x8622('0x69')](_0x376b74,{'trunks':_0x5aaf29});var _0x70f73e=ejs[_0x8622('0x69')](_0x8f7a9,{'trunks':_0x5aaf29});fs['writeFileSync'](_0x8622('0x6a'),_0x36407d);fs[_0x8622('0x72')](_0x8622('0x6c'),_0x70f73e);return respondWithRpcPromise('Reload',_0x8622('0x31'),{'module':'chan_sip.so'});})[_0x8622('0x52')](handleError(_0x4dce6e,null));};