a6e476d976947a581affd4d7b8c64b2eeb45667f
[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 _0x4e34=['rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','limit','count','offset','set','Content-Range','apply','save','update','get','Contexts','UserProfileResource','destroy','sendStatus','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','filters','pick','filter','merge','options','include','findAll','show','includeAll','find','create','body','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readFileSync','eml-format'];(function(_0x53e715,_0x5c7c67){var _0xba7533=function(_0x16f9b4){while(--_0x16f9b4){_0x53e715['push'](_0x53e715['shift']());}};_0xba7533(++_0x5c7c67);}(_0x4e34,0xd3));var _0x44e3=function(_0x27efbf,_0x59dd14){_0x27efbf=_0x27efbf-0x0;var _0x13e85d=_0x4e34[_0x27efbf];return _0x13e85d;};'use strict';var emlformat=require(_0x44e3('0x0'));var rimraf=require(_0x44e3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x44e3('0x2'));var rp=require(_0x44e3('0x3'));var moment=require(_0x44e3('0x4'));var BPromise=require(_0x44e3('0x5'));var Mustache=require(_0x44e3('0x6'));var util=require(_0x44e3('0x7'));var path=require(_0x44e3('0x8'));var sox=require('sox');var csv=require(_0x44e3('0x9'));var ejs=require(_0x44e3('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x44e3('0xb'));var squel=require(_0x44e3('0xc'));var crypto=require('crypto');var jsforce=require(_0x44e3('0xd'));var deskjs=require(_0x44e3('0xe'));var toCsv=require('to-csv');var querystring=require(_0x44e3('0xf'));var Papa=require(_0x44e3('0x10'));var Redis=require(_0x44e3('0x11'));var authService=require(_0x44e3('0x12'));var qs=require(_0x44e3('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x44e3('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x44e3('0x15'));var config=require(_0x44e3('0x16'));var licenseUtil=require(_0x44e3('0x17'));var db=require(_0x44e3('0x18'))['db'];var jayson=require(_0x44e3('0x19'));var client=jayson[_0x44e3('0x1a')][_0x44e3('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x85ea26,_0x4152d8,_0x22a97c,_0x948f0b){return new BPromise(function(_0x33a868,_0xc030d){var _0x4865d7=_0x948f0b||client;return _0x4865d7[_0x44e3('0x1c')](_0x85ea26,_0x22a97c)[_0x44e3('0x1d')](function(_0x2d5b4d){logger[_0x44e3('0x1e')](_0x44e3('0x1f'),_0x4152d8,_0x44e3('0x20'));logger[_0x44e3('0x21')](_0x44e3('0x22'),_0x4152d8,'request\x20sent',JSON[_0x44e3('0x23')](_0x2d5b4d));if(_0x2d5b4d[_0x44e3('0x24')]){if(_0x2d5b4d['error'][_0x44e3('0x25')]===0x1f4){logger[_0x44e3('0x24')]('VoiceContext,\x20%s,\x20%s',_0x4152d8,_0x2d5b4d[_0x44e3('0x24')][_0x44e3('0x26')]);return _0xc030d(_0x2d5b4d[_0x44e3('0x24')][_0x44e3('0x26')]);}logger['error'](_0x44e3('0x1f'),_0x4152d8,_0x2d5b4d['error'][_0x44e3('0x26')]);return _0x33a868(_0x2d5b4d['error'][_0x44e3('0x26')]);}else{logger[_0x44e3('0x1e')]('VoiceContext,\x20%s,\x20%s',_0x4152d8,_0x44e3('0x20'));_0x33a868(_0x2d5b4d[_0x44e3('0x27')][_0x44e3('0x26')]);}})[_0x44e3('0x28')](function(_0x3fb51b){logger[_0x44e3('0x24')](_0x44e3('0x1f'),_0x4152d8,_0x3fb51b);_0xc030d(_0x3fb51b);});});}function respondWithStatusCode(_0x4063df,_0x420ea3){_0x420ea3=_0x420ea3||0xcc;return function(_0x1e3cbc){if(_0x1e3cbc){return _0x4063df['sendStatus'](_0x420ea3);}return _0x4063df[_0x44e3('0x29')](_0x420ea3)[_0x44e3('0x2a')]();};}function respondWithResult(_0x4f2a59,_0x41150c){_0x41150c=_0x41150c||0xc8;return function(_0x1dc628){if(_0x1dc628){return _0x4f2a59['status'](_0x41150c)[_0x44e3('0x2b')](_0x1dc628);}};}function respondWithFilteredResult(_0x5cc816,_0x4a1a43){return function(_0x5097a8){if(_0x5097a8){var _0x4aa0c4=typeof _0x4a1a43['offset']==='undefined'&&typeof _0x4a1a43[_0x44e3('0x2c')]==='undefined';var _0x5b2994=_0x5097a8[_0x44e3('0x2d')];var _0x5581ec=_0x4aa0c4?0x0:_0x4a1a43[_0x44e3('0x2e')];var _0x439902=_0x4aa0c4?_0x5097a8[_0x44e3('0x2d')]:_0x4a1a43[_0x44e3('0x2e')]+_0x4a1a43[_0x44e3('0x2c')];var _0x4ace46;if(_0x439902>=_0x5b2994){_0x439902=_0x5b2994;_0x4ace46=0xc8;}else{_0x4ace46=0xce;}_0x5cc816[_0x44e3('0x29')](_0x4ace46);return _0x5cc816[_0x44e3('0x2f')](_0x44e3('0x30'),_0x5581ec+'-'+_0x439902+'/'+_0x5b2994)[_0x44e3('0x2b')](_0x5097a8);}return null;};}function patchUpdates(_0x22db32){return function(_0x78c5bf){try{jsonpatch[_0x44e3('0x31')](_0x78c5bf,_0x22db32,!![]);}catch(_0xdf17d5){return BPromise['reject'](_0xdf17d5);}return _0x78c5bf[_0x44e3('0x32')]();};}function saveUpdates(_0x3334d0,_0x362e1b){return function(_0x22ae5f){if(_0x22ae5f){return _0x22ae5f[_0x44e3('0x33')](_0x3334d0)[_0x44e3('0x1d')](function(_0x44fa84){return _0x44fa84;});}return null;};}function removeEntity(_0x56ebd2,_0x303b34){return function(_0x4b228f){if(_0x4b228f){return _0x4b228f['destroy']()[_0x44e3('0x1d')](function(){var _0x18c5fa=_0x4b228f[_0x44e3('0x34')]({'plain':!![]});var _0x14ddc8=_0x44e3('0x35');return db[_0x44e3('0x36')][_0x44e3('0x37')]({'where':{'type':_0x14ddc8,'resourceId':_0x18c5fa['id']}})[_0x44e3('0x1d')](function(){return _0x4b228f;});})[_0x44e3('0x1d')](function(){_0x56ebd2[_0x44e3('0x29')](0xcc)[_0x44e3('0x2a')]();});}};}function handleEntityNotFound(_0x5097f8,_0x5fd28){return function(_0x11490a){if(!_0x11490a){_0x5097f8[_0x44e3('0x38')](0x194);}return _0x11490a;};}function handleError(_0x18a726,_0x31198d){_0x31198d=_0x31198d||0x1f4;return function(_0x40d1d6){logger['error'](_0x40d1d6[_0x44e3('0x39')]);if(_0x40d1d6['name']){delete _0x40d1d6[_0x44e3('0x3a')];}_0x18a726[_0x44e3('0x29')](_0x31198d)[_0x44e3('0x3b')](_0x40d1d6);};}exports[_0x44e3('0x3c')]=function(_0x1fe491,_0x327724){var _0x267ab3={},_0x3c5575={},_0x13f7dc={'count':0x0,'rows':[]};var _0x2a9441=_[_0x44e3('0x3d')](db[_0x44e3('0x3e')][_0x44e3('0x3f')],function(_0x19f617){return{'name':_0x19f617[_0x44e3('0x40')],'type':_0x19f617['type'][_0x44e3('0x41')]};});_0x3c5575[_0x44e3('0x42')]=_[_0x44e3('0x3d')](_0x2a9441,_0x44e3('0x3a'));_0x3c5575[_0x44e3('0x43')]=_[_0x44e3('0x44')](_0x1fe491[_0x44e3('0x43')]);_0x3c5575['filters']=_[_0x44e3('0x45')](_0x3c5575['model'],_0x3c5575[_0x44e3('0x43')]);_0x267ab3[_0x44e3('0x46')]=_[_0x44e3('0x45')](_0x3c5575[_0x44e3('0x42')],qs[_0x44e3('0x47')](_0x1fe491[_0x44e3('0x43')][_0x44e3('0x47')]));_0x267ab3[_0x44e3('0x46')]=_0x267ab3[_0x44e3('0x46')][_0x44e3('0x48')]?_0x267ab3[_0x44e3('0x46')]:_0x3c5575[_0x44e3('0x42')];if(!_0x1fe491[_0x44e3('0x43')][_0x44e3('0x49')](_0x44e3('0x4a'))){_0x267ab3['limit']=qs[_0x44e3('0x2c')](_0x1fe491[_0x44e3('0x43')]['limit']);_0x267ab3[_0x44e3('0x2e')]=qs[_0x44e3('0x2e')](_0x1fe491[_0x44e3('0x43')]['offset']);}_0x267ab3['order']=qs['sort'](_0x1fe491[_0x44e3('0x43')]['sort']);_0x267ab3[_0x44e3('0x4b')]=qs[_0x44e3('0x4c')](_[_0x44e3('0x4d')](_0x1fe491['query'],_0x3c5575[_0x44e3('0x4c')]),_0x2a9441);if(_0x1fe491[_0x44e3('0x43')][_0x44e3('0x4e')]){_0x267ab3[_0x44e3('0x4b')]=_[_0x44e3('0x4f')](_0x267ab3[_0x44e3('0x4b')],{'$or':_['map'](_0x2a9441,function(_0x50c26a){if(_0x50c26a['type']!=='VIRTUAL'){var _0x207488={};_0x207488[_0x50c26a[_0x44e3('0x3a')]]={'$like':'%'+_0x1fe491['query'][_0x44e3('0x4e')]+'%'};return _0x207488;}})});}_0x267ab3=_[_0x44e3('0x4f')]({},_0x267ab3,_0x1fe491[_0x44e3('0x50')]);var _0x2a46e2={'where':_0x267ab3[_0x44e3('0x4b')]};return db[_0x44e3('0x3e')][_0x44e3('0x2d')](_0x2a46e2)['then'](function(_0x1fb915){_0x13f7dc['count']=_0x1fb915;if(_0x1fe491[_0x44e3('0x43')]['includeAll']){_0x267ab3[_0x44e3('0x51')]=[{'all':!![]}];}return db[_0x44e3('0x3e')][_0x44e3('0x52')](_0x267ab3);})[_0x44e3('0x1d')](function(_0x498990){_0x13f7dc['rows']=_0x498990;return _0x13f7dc;})[_0x44e3('0x1d')](respondWithFilteredResult(_0x327724,_0x267ab3))['catch'](handleError(_0x327724,null));};exports[_0x44e3('0x53')]=function(_0x30fff2,_0x25262c){var _0xe927df={'raw':![],'where':{'id':_0x30fff2['params']['id']}},_0x2fffd1={};_0x2fffd1[_0x44e3('0x42')]=_[_0x44e3('0x44')](db['VoiceContext'][_0x44e3('0x3f')]);_0x2fffd1[_0x44e3('0x43')]=_[_0x44e3('0x44')](_0x30fff2[_0x44e3('0x43')]);_0x2fffd1[_0x44e3('0x4c')]=_[_0x44e3('0x45')](_0x2fffd1['model'],_0x2fffd1[_0x44e3('0x43')]);_0xe927df[_0x44e3('0x46')]=_[_0x44e3('0x45')](_0x2fffd1['model'],qs[_0x44e3('0x47')](_0x30fff2[_0x44e3('0x43')][_0x44e3('0x47')]));_0xe927df['attributes']=_0xe927df[_0x44e3('0x46')]['length']?_0xe927df[_0x44e3('0x46')]:_0x2fffd1['model'];if(_0x30fff2[_0x44e3('0x43')][_0x44e3('0x54')]){_0xe927df[_0x44e3('0x51')]=[{'all':!![]}];}_0xe927df=_[_0x44e3('0x4f')]({},_0xe927df,_0x30fff2[_0x44e3('0x50')]);return db['VoiceContext'][_0x44e3('0x55')](_0xe927df)['then'](handleEntityNotFound(_0x25262c,null))['then'](respondWithResult(_0x25262c,null))['catch'](handleError(_0x25262c,null));};exports[_0x44e3('0x56')]=function(_0x1a7249,_0x2e6cf8,_0x5de88c){var _0x39781b;return db[_0x44e3('0x3e')][_0x44e3('0x56')](_0x1a7249[_0x44e3('0x57')],{'raw':!![]})[_0x44e3('0x1d')](function(_0x437ff1){_0x39781b=_0x437ff1;return db[_0x44e3('0x3e')][_0x44e3('0x52')]({'raw':!![]});})[_0x44e3('0x1d')](function(_0x470b1f){var _0x461ea1=fs['readFileSync'](path[_0x44e3('0x58')](config[_0x44e3('0x59')],_0x44e3('0x5a')),_0x44e3('0x5b'));var _0xe68bbb=ejs[_0x44e3('0x5c')](_0x461ea1,{'contexts':_0x470b1f||[]});fs[_0x44e3('0x5d')](_0x44e3('0x5e'),_0xe68bbb);})['then'](function(){return respondWithRpcPromise(_0x44e3('0x5f'),'create',{'module':_0x44e3('0x60')});})[_0x44e3('0x1d')](function(){var _0x492dab=_0x1a7249[_0x44e3('0x61')][_0x44e3('0x34')]({'plain':!![]});if(!_0x492dab)throw new Error(_0x44e3('0x62'));if(_0x492dab[_0x44e3('0x63')]==='user'){var _0x123b79=_0x39781b[_0x44e3('0x34')]({'plain':!![]});return db[_0x44e3('0x64')][_0x44e3('0x55')]({'where':{'name':_0x44e3('0x35'),'userProfileId':_0x492dab[_0x44e3('0x65')]},'raw':!![]})[_0x44e3('0x1d')](function(_0x16bced){if(_0x16bced&&_0x16bced[_0x44e3('0x66')]===0x0){return db['UserProfileResource']['create']({'name':_0x123b79[_0x44e3('0x3a')],'resourceId':_0x123b79['id'],'type':_0x16bced[_0x44e3('0x3a')],'sectionId':_0x16bced['id']},{})[_0x44e3('0x1d')](function(){return _0x39781b;});}else{return _0x39781b;}})[_0x44e3('0x28')](function(_0x137b09){logger['error'](_0x44e3('0x67'),_0x137b09);throw _0x137b09;});}return _0x39781b;})[_0x44e3('0x1d')](respondWithResult(_0x2e6cf8,0xc9))['catch'](handleError(_0x2e6cf8,null));};exports[_0x44e3('0x33')]=function(_0x3b5c02,_0x54f447,_0x1eb554){var _0xb2ac7f;return db[_0x44e3('0x3e')][_0x44e3('0x55')]({'where':{'id':_0x3b5c02[_0x44e3('0x68')]['id']}})['then'](handleEntityNotFound(_0x54f447,null))[_0x44e3('0x1d')](saveUpdates(_0x3b5c02['body'],null))[_0x44e3('0x1d')](function(_0x4b9b7c){if(_0x4b9b7c){_0xb2ac7f=_0x4b9b7c;return db[_0x44e3('0x3e')]['findAll']({'raw':!![]});}})[_0x44e3('0x1d')](function(_0x1b8fe8){var _0xc78962=fs['readFileSync'](path[_0x44e3('0x58')](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x47f15c=ejs[_0x44e3('0x5c')](_0xc78962,{'contexts':_0x1b8fe8||[]});fs[_0x44e3('0x5d')](_0x44e3('0x5e'),_0x47f15c);})[_0x44e3('0x1d')](function(){return respondWithRpcPromise(_0x44e3('0x5f'),'update',{'module':_0x44e3('0x60')});})[_0x44e3('0x1d')](function(){return _0xb2ac7f;})[_0x44e3('0x1d')](respondWithResult(_0x54f447,null))[_0x44e3('0x28')](handleError(_0x54f447,null));};exports['destroy']=function(_0x10d878,_0x1bc2db,_0x2883e1){var _0x23cb87;return db[_0x44e3('0x3e')][_0x44e3('0x55')]({'where':{'id':_0x10d878[_0x44e3('0x68')]['id']}})[_0x44e3('0x1d')](handleEntityNotFound(_0x1bc2db,null))['then'](removeEntity(_0x1bc2db,null))[_0x44e3('0x1d')](function(){return db['VoiceContext'][_0x44e3('0x52')]({'raw':!![]});})[_0x44e3('0x1d')](function(_0x584ed8){var _0x3d725c=fs[_0x44e3('0x69')](path[_0x44e3('0x58')](config['root'],_0x44e3('0x5a')),_0x44e3('0x5b'));var _0x4cb38f=ejs[_0x44e3('0x5c')](_0x3d725c,{'contexts':_0x584ed8});fs[_0x44e3('0x5d')](_0x44e3('0x5e'),_0x4cb38f);return respondWithRpcPromise('Reload','destroy',{'module':_0x44e3('0x60')});})[_0x44e3('0x28')](handleError(_0x1bc2db,null));};