e99a7059a90b0b7451243e15deafe1a5823c37e3
[motion2.git] / server / api / voiceContext / voiceContext.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 _0xe532=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','chan_sip.so','findAll','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','client','http','request','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','update','then','destroy','get','Contexts','name','VoiceContext','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','rows','show','params','length','find','body','readFileSync','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','create','user'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xe532,0x13c));var _0x2e53=function(_0xf2628e,_0x521bf7){_0xf2628e=_0xf2628e-0x0;var _0x13863a=_0xe532[_0xf2628e];return _0x13863a;};'use strict';var emlformat=require(_0x2e53('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2e53('0x1'));var rp=require(_0x2e53('0x2'));var moment=require(_0x2e53('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2e53('0x4'));var util=require(_0x2e53('0x5'));var path=require(_0x2e53('0x6'));var sox=require(_0x2e53('0x7'));var csv=require(_0x2e53('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2e53('0x9'));var _=require(_0x2e53('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2e53('0xb'));var deskjs=require(_0x2e53('0xc'));var toCsv=require(_0x2e53('0x8'));var querystring=require(_0x2e53('0xd'));var Papa=require(_0x2e53('0xe'));var Redis=require(_0x2e53('0xf'));var authService=require(_0x2e53('0x10'));var qs=require(_0x2e53('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2e53('0x12'));var logger=require(_0x2e53('0x13'))(_0x2e53('0x14'));var utils=require(_0x2e53('0x15'));var config=require(_0x2e53('0x16'));var licenseUtil=require(_0x2e53('0x17'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x2e53('0x18')][_0x2e53('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x13877e,_0x3f9e20,_0x94e0f,_0x1896d3){return new BPromise(function(_0x5d24d9,_0xc35c20){var _0x34a556=_0x1896d3||client;return _0x34a556[_0x2e53('0x1a')](_0x13877e,_0x94e0f)['then'](function(_0x505e18){logger[_0x2e53('0x1b')](_0x2e53('0x1c'),_0x3f9e20,'request\x20sent');logger[_0x2e53('0x1d')](_0x2e53('0x1e'),_0x3f9e20,_0x2e53('0x1f'),JSON[_0x2e53('0x20')](_0x505e18));if(_0x505e18[_0x2e53('0x21')]){if(_0x505e18['error'][_0x2e53('0x22')]===0x1f4){logger['error'](_0x2e53('0x1c'),_0x3f9e20,_0x505e18[_0x2e53('0x21')]['message']);return _0xc35c20(_0x505e18[_0x2e53('0x21')]['message']);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x3f9e20,_0x505e18[_0x2e53('0x21')][_0x2e53('0x23')]);return _0x5d24d9(_0x505e18['error'][_0x2e53('0x23')]);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x3f9e20,_0x2e53('0x1f'));_0x5d24d9(_0x505e18[_0x2e53('0x24')]['message']);}})[_0x2e53('0x25')](function(_0x3c5917){logger['error'](_0x2e53('0x1c'),_0x3f9e20,_0x3c5917);_0xc35c20(_0x3c5917);});});}function respondWithStatusCode(_0x5d0b01,_0xc98667){_0xc98667=_0xc98667||0xcc;return function(_0x3d48f4){if(_0x3d48f4){return _0x5d0b01[_0x2e53('0x26')](_0xc98667);}return _0x5d0b01[_0x2e53('0x27')](_0xc98667)[_0x2e53('0x28')]();};}function respondWithResult(_0x4acf3d,_0x352b6b){_0x352b6b=_0x352b6b||0xc8;return function(_0x442c25){if(_0x442c25){return _0x4acf3d[_0x2e53('0x27')](_0x352b6b)[_0x2e53('0x29')](_0x442c25);}};}function respondWithFilteredResult(_0x2ab57b,_0x5c833a){return function(_0x1410db){if(_0x1410db){var _0x3b848e=typeof _0x5c833a[_0x2e53('0x2a')]==='undefined'&&typeof _0x5c833a['limit']===_0x2e53('0x2b');var _0x176cf5=_0x1410db['count'];var _0x34d667=_0x3b848e?0x0:_0x5c833a['offset'];var _0x30db92=_0x3b848e?_0x1410db[_0x2e53('0x2c')]:_0x5c833a['offset']+_0x5c833a[_0x2e53('0x2d')];var _0x15e8fe;if(_0x30db92>=_0x176cf5){_0x30db92=_0x176cf5;_0x15e8fe=0xc8;}else{_0x15e8fe=0xce;}_0x2ab57b[_0x2e53('0x27')](_0x15e8fe);return _0x2ab57b[_0x2e53('0x2e')]('Content-Range',_0x34d667+'-'+_0x30db92+'/'+_0x176cf5)[_0x2e53('0x29')](_0x1410db);}return null;};}function patchUpdates(_0x5e806f){return function(_0x399864){try{jsonpatch[_0x2e53('0x2f')](_0x399864,_0x5e806f,!![]);}catch(_0x169c97){return BPromise[_0x2e53('0x30')](_0x169c97);}return _0x399864['save']();};}function saveUpdates(_0x422a1d,_0xb9ad75){return function(_0x16dc66){if(_0x16dc66){return _0x16dc66[_0x2e53('0x31')](_0x422a1d)[_0x2e53('0x32')](function(_0x284cc8){return _0x284cc8;});}return null;};}function removeEntity(_0x121ec6,_0x12e86f){return function(_0x5e0da7){if(_0x5e0da7){return _0x5e0da7[_0x2e53('0x33')]()['then'](function(){var _0x25bc1e=_0x5e0da7[_0x2e53('0x34')]({'plain':!![]});var _0x42b8ca=_0x2e53('0x35');return db['UserProfileResource'][_0x2e53('0x33')]({'where':{'type':_0x42b8ca,'resourceId':_0x25bc1e['id']}})['then'](function(){return _0x5e0da7;});})[_0x2e53('0x32')](function(){_0x121ec6[_0x2e53('0x27')](0xcc)[_0x2e53('0x28')]();});}};}function handleEntityNotFound(_0x44283b,_0x28972b){return function(_0x4ec628){if(!_0x4ec628){_0x44283b[_0x2e53('0x26')](0x194);}return _0x4ec628;};}function handleError(_0x1516d7,_0x4d1785){_0x4d1785=_0x4d1785||0x1f4;return function(_0x1d1bae){logger[_0x2e53('0x21')](_0x1d1bae['stack']);if(_0x1d1bae[_0x2e53('0x36')]){delete _0x1d1bae[_0x2e53('0x36')];}_0x1516d7[_0x2e53('0x27')](_0x4d1785)['send'](_0x1d1bae);};}exports['index']=function(_0x24beb4,_0x4b6c30){var _0x3395cc={},_0x1810ec={},_0x5ef8a6={'count':0x0,'rows':[]};var _0x63e993=_['map'](db[_0x2e53('0x37')][_0x2e53('0x38')],function(_0x1a4894){return{'name':_0x1a4894[_0x2e53('0x39')],'type':_0x1a4894[_0x2e53('0x3a')][_0x2e53('0x3b')]};});_0x1810ec[_0x2e53('0x3c')]=_[_0x2e53('0x3d')](_0x63e993,_0x2e53('0x36'));_0x1810ec[_0x2e53('0x3e')]=_['keys'](_0x24beb4[_0x2e53('0x3e')]);_0x1810ec[_0x2e53('0x3f')]=_[_0x2e53('0x40')](_0x1810ec[_0x2e53('0x3c')],_0x1810ec[_0x2e53('0x3e')]);_0x3395cc[_0x2e53('0x41')]=_[_0x2e53('0x40')](_0x1810ec[_0x2e53('0x3c')],qs[_0x2e53('0x42')](_0x24beb4[_0x2e53('0x3e')]['fields']));_0x3395cc['attributes']=_0x3395cc[_0x2e53('0x41')]['length']?_0x3395cc[_0x2e53('0x41')]:_0x1810ec[_0x2e53('0x3c')];if(!_0x24beb4[_0x2e53('0x3e')][_0x2e53('0x43')](_0x2e53('0x44'))){_0x3395cc['limit']=qs['limit'](_0x24beb4[_0x2e53('0x3e')][_0x2e53('0x2d')]);_0x3395cc[_0x2e53('0x2a')]=qs[_0x2e53('0x2a')](_0x24beb4[_0x2e53('0x3e')]['offset']);}_0x3395cc[_0x2e53('0x45')]=qs[_0x2e53('0x46')](_0x24beb4[_0x2e53('0x3e')][_0x2e53('0x46')]);_0x3395cc[_0x2e53('0x47')]=qs['filters'](_['pick'](_0x24beb4[_0x2e53('0x3e')],_0x1810ec[_0x2e53('0x3f')]),_0x63e993);if(_0x24beb4[_0x2e53('0x3e')][_0x2e53('0x48')]){_0x3395cc[_0x2e53('0x47')]=_[_0x2e53('0x49')](_0x3395cc['where'],{'$or':_[_0x2e53('0x3d')](_0x63e993,function(_0x6c6c1){if(_0x6c6c1['type']!=='VIRTUAL'){var _0x142a66={};_0x142a66[_0x6c6c1[_0x2e53('0x36')]]={'$like':'%'+_0x24beb4[_0x2e53('0x3e')][_0x2e53('0x48')]+'%'};return _0x142a66;}})});}_0x3395cc=_[_0x2e53('0x49')]({},_0x3395cc,_0x24beb4[_0x2e53('0x4a')]);var _0x1ff249={'where':_0x3395cc[_0x2e53('0x47')]};return db[_0x2e53('0x37')][_0x2e53('0x2c')](_0x1ff249)[_0x2e53('0x32')](function(_0x589b26){_0x5ef8a6['count']=_0x589b26;if(_0x24beb4['query'][_0x2e53('0x4b')]){_0x3395cc['include']=[{'all':!![]}];}return db[_0x2e53('0x37')]['findAll'](_0x3395cc);})[_0x2e53('0x32')](function(_0x4ee310){_0x5ef8a6[_0x2e53('0x4c')]=_0x4ee310;return _0x5ef8a6;})[_0x2e53('0x32')](respondWithFilteredResult(_0x4b6c30,_0x3395cc))[_0x2e53('0x25')](handleError(_0x4b6c30,null));};exports[_0x2e53('0x4d')]=function(_0x2018c4,_0x54dc99){var _0x3652ad={'raw':![],'where':{'id':_0x2018c4[_0x2e53('0x4e')]['id']}},_0x426630={};_0x426630['model']=_['keys'](db[_0x2e53('0x37')]['rawAttributes']);_0x426630[_0x2e53('0x3e')]=_['keys'](_0x2018c4['query']);_0x426630['filters']=_[_0x2e53('0x40')](_0x426630['model'],_0x426630['query']);_0x3652ad[_0x2e53('0x41')]=_['intersection'](_0x426630[_0x2e53('0x3c')],qs[_0x2e53('0x42')](_0x2018c4[_0x2e53('0x3e')][_0x2e53('0x42')]));_0x3652ad[_0x2e53('0x41')]=_0x3652ad[_0x2e53('0x41')][_0x2e53('0x4f')]?_0x3652ad[_0x2e53('0x41')]:_0x426630['model'];if(_0x2018c4[_0x2e53('0x3e')][_0x2e53('0x4b')]){_0x3652ad['include']=[{'all':!![]}];}_0x3652ad=_[_0x2e53('0x49')]({},_0x3652ad,_0x2018c4[_0x2e53('0x4a')]);return db['VoiceContext'][_0x2e53('0x50')](_0x3652ad)[_0x2e53('0x32')](handleEntityNotFound(_0x54dc99,null))[_0x2e53('0x32')](respondWithResult(_0x54dc99,null))[_0x2e53('0x25')](handleError(_0x54dc99,null));};exports['create']=function(_0x2b6a6c,_0x2736fa,_0x56edae){var _0x34cb30;return db['VoiceContext']['create'](_0x2b6a6c[_0x2e53('0x51')],{'raw':!![]})[_0x2e53('0x32')](function(_0xd5c372){_0x34cb30=_0xd5c372;return db[_0x2e53('0x37')]['findAll']({'raw':!![]});})[_0x2e53('0x32')](function(_0x15bfcd){var _0x4b4109=fs[_0x2e53('0x52')](path['join'](config[_0x2e53('0x53')],_0x2e53('0x54')),_0x2e53('0x55'));var _0x2e0955=ejs[_0x2e53('0x56')](_0x4b4109,{'contexts':_0x15bfcd||[]});fs[_0x2e53('0x57')](_0x2e53('0x58'),_0x2e0955);})[_0x2e53('0x32')](function(){return respondWithRpcPromise(_0x2e53('0x59'),_0x2e53('0x5a'),{'module':'chan_sip.so'});})[_0x2e53('0x32')](function(){var _0x1fab6a=_0x2b6a6c[_0x2e53('0x5b')]['get']({'plain':!![]});if(!_0x1fab6a)throw new Error(_0x2e53('0x5c'));if(_0x1fab6a[_0x2e53('0x5d')]===_0x2e53('0x5b')){var _0xafa996=_0x34cb30['get']({'plain':!![]});return db[_0x2e53('0x5e')][_0x2e53('0x50')]({'where':{'name':_0x2e53('0x35'),'userProfileId':_0x1fab6a[_0x2e53('0x5f')]},'raw':!![]})[_0x2e53('0x32')](function(_0x21155b){if(_0x21155b&&_0x21155b[_0x2e53('0x60')]===0x0){return db[_0x2e53('0x61')][_0x2e53('0x5a')]({'name':_0xafa996[_0x2e53('0x36')],'resourceId':_0xafa996['id'],'type':_0x21155b[_0x2e53('0x36')],'sectionId':_0x21155b['id']},{})[_0x2e53('0x32')](function(){return _0x34cb30;});}else{return _0x34cb30;}})[_0x2e53('0x25')](function(_0x59f674){logger[_0x2e53('0x21')](_0x2e53('0x62'),_0x59f674);throw _0x59f674;});}return _0x34cb30;})[_0x2e53('0x32')](respondWithResult(_0x2736fa,0xc9))[_0x2e53('0x25')](handleError(_0x2736fa,null));};exports[_0x2e53('0x31')]=function(_0x15e560,_0x32e30f,_0x5e9947){var _0x4ba9ef;return db[_0x2e53('0x37')][_0x2e53('0x50')]({'where':{'id':_0x15e560['params']['id']}})[_0x2e53('0x32')](handleEntityNotFound(_0x32e30f,null))[_0x2e53('0x32')](saveUpdates(_0x15e560[_0x2e53('0x51')],null))['then'](function(_0x224c61){if(_0x224c61){_0x4ba9ef=_0x224c61;return db[_0x2e53('0x37')]['findAll']({'raw':!![]});}})[_0x2e53('0x32')](function(_0x53b883){var _0xb4c8c=fs[_0x2e53('0x52')](path[_0x2e53('0x63')](config[_0x2e53('0x53')],_0x2e53('0x54')),'utf8');var _0x2985b3=ejs[_0x2e53('0x56')](_0xb4c8c,{'contexts':_0x53b883||[]});fs[_0x2e53('0x57')](_0x2e53('0x58'),_0x2985b3);})['then'](function(){return respondWithRpcPromise(_0x2e53('0x59'),_0x2e53('0x31'),{'module':_0x2e53('0x64')});})['then'](function(){return _0x4ba9ef;})[_0x2e53('0x32')](respondWithResult(_0x32e30f,null))[_0x2e53('0x25')](handleError(_0x32e30f,null));};exports[_0x2e53('0x33')]=function(_0x23b600,_0x6c5486,_0x446453){var _0x28f113;return db['VoiceContext'][_0x2e53('0x50')]({'where':{'id':_0x23b600[_0x2e53('0x4e')]['id']}})['then'](handleEntityNotFound(_0x6c5486,null))[_0x2e53('0x32')](removeEntity(_0x6c5486,null))['then'](function(){return db['VoiceContext'][_0x2e53('0x65')]({'raw':!![]});})[_0x2e53('0x32')](function(_0x5b3f7c){var _0x2f90ba=fs[_0x2e53('0x52')](path['join'](config[_0x2e53('0x53')],_0x2e53('0x54')),'utf8');var _0x25eb7e=ejs['render'](_0x2f90ba,{'contexts':_0x5b3f7c});fs[_0x2e53('0x57')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x25eb7e);return respondWithRpcPromise('Reload','destroy',{'module':_0x2e53('0x64')});})[_0x2e53('0x25')](handleError(_0x6c5486,null));};