Built motion from commit 5293bb2a.|2.6.30
[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 _0x37d2=['mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','then','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','VoiceContext,\x20%s,\x20%s','info','request\x20sent','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','Contexts','UserProfileResource','end','stack','name','VoiceContext','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','filter','options','includeAll','rows','show','params','include','find','readFileSync','root','server/files/templates/context.ejs','render','writeFileSync','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','body','findAll','join','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','utf8','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x54f039,_0x3e9736){var _0x57a58d=function(_0x12c422){while(--_0x12c422){_0x54f039['push'](_0x54f039['shift']());}};_0x57a58d(++_0x3e9736);}(_0x37d2,0xcd));var _0x237d=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x37d2[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x237d('0x0'));var rimraf=require(_0x237d('0x1'));var zipdir=require(_0x237d('0x2'));var jsonpatch=require(_0x237d('0x3'));var rp=require(_0x237d('0x4'));var moment=require(_0x237d('0x5'));var BPromise=require(_0x237d('0x6'));var Mustache=require(_0x237d('0x7'));var util=require(_0x237d('0x8'));var path=require(_0x237d('0x9'));var sox=require('sox');var csv=require(_0x237d('0xa'));var ejs=require(_0x237d('0xb'));var fs=require('fs');var fs_extra=require(_0x237d('0xc'));var _=require(_0x237d('0xd'));var squel=require(_0x237d('0xe'));var crypto=require(_0x237d('0xf'));var jsforce=require(_0x237d('0x10'));var deskjs=require(_0x237d('0x11'));var toCsv=require(_0x237d('0xa'));var querystring=require('querystring');var Papa=require(_0x237d('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x237d('0x13'));var as=require(_0x237d('0x14'));var hardwareService=require(_0x237d('0x15'));var logger=require(_0x237d('0x16'))(_0x237d('0x17'));var utils=require(_0x237d('0x18'));var config=require(_0x237d('0x19'));var licenseUtil=require(_0x237d('0x1a'));var db=require(_0x237d('0x1b'))['db'];var jayson=require(_0x237d('0x1c'));var client=jayson['client'][_0x237d('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x5647ec,_0x32e4ef,_0x2fb52d,_0x2765b2){return new BPromise(function(_0x55266c,_0x48608e){var _0x401470=_0x2765b2||client;return _0x401470['request'](_0x5647ec,_0x2fb52d)[_0x237d('0x1e')](function(_0x190ad5){logger['info']('VoiceContext,\x20%s,\x20%s',_0x32e4ef,'request\x20sent');logger[_0x237d('0x1f')](_0x237d('0x20'),_0x32e4ef,'request\x20sent',JSON[_0x237d('0x21')](_0x190ad5));if(_0x190ad5[_0x237d('0x22')]){if(_0x190ad5[_0x237d('0x22')][_0x237d('0x23')]===0x1f4){logger[_0x237d('0x22')]('VoiceContext,\x20%s,\x20%s',_0x32e4ef,_0x190ad5[_0x237d('0x22')][_0x237d('0x24')]);return _0x48608e(_0x190ad5[_0x237d('0x22')]['message']);}logger[_0x237d('0x22')](_0x237d('0x25'),_0x32e4ef,_0x190ad5[_0x237d('0x22')]['message']);return _0x55266c(_0x190ad5[_0x237d('0x22')][_0x237d('0x24')]);}else{logger[_0x237d('0x26')]('VoiceContext,\x20%s,\x20%s',_0x32e4ef,_0x237d('0x27'));_0x55266c(_0x190ad5[_0x237d('0x28')][_0x237d('0x24')]);}})[_0x237d('0x29')](function(_0x152c4b){logger[_0x237d('0x22')]('VoiceContext,\x20%s,\x20%s',_0x32e4ef,_0x152c4b);_0x48608e(_0x152c4b);});});}function respondWithStatusCode(_0x551c4e,_0x3c5e41){_0x3c5e41=_0x3c5e41||0xcc;return function(_0x31e085){if(_0x31e085){return _0x551c4e[_0x237d('0x2a')](_0x3c5e41);}return _0x551c4e[_0x237d('0x2b')](_0x3c5e41)['end']();};}function respondWithResult(_0x46f0c5,_0x4ee291){_0x4ee291=_0x4ee291||0xc8;return function(_0x2a1890){if(_0x2a1890){return _0x46f0c5[_0x237d('0x2b')](_0x4ee291)[_0x237d('0x2c')](_0x2a1890);}};}function respondWithFilteredResult(_0x37ebac,_0x56de8e){return function(_0x507ac0){if(_0x507ac0){var _0x573b96=typeof _0x56de8e[_0x237d('0x2d')]===_0x237d('0x2e')&&typeof _0x56de8e[_0x237d('0x2f')]===_0x237d('0x2e');var _0x411528=_0x507ac0[_0x237d('0x30')];var _0xc0b20f=_0x573b96?0x0:_0x56de8e['offset'];var _0x16ad7d=_0x573b96?_0x507ac0['count']:_0x56de8e['offset']+_0x56de8e[_0x237d('0x2f')];var _0x5598d0;if(_0x16ad7d>=_0x411528){_0x16ad7d=_0x411528;_0x5598d0=0xc8;}else{_0x5598d0=0xce;}_0x37ebac[_0x237d('0x2b')](_0x5598d0);return _0x37ebac[_0x237d('0x31')](_0x237d('0x32'),_0xc0b20f+'-'+_0x16ad7d+'/'+_0x411528)[_0x237d('0x2c')](_0x507ac0);}return null;};}function patchUpdates(_0x2370d7){return function(_0x5a02da){try{jsonpatch[_0x237d('0x33')](_0x5a02da,_0x2370d7,!![]);}catch(_0x554c25){return BPromise[_0x237d('0x34')](_0x554c25);}return _0x5a02da['save']();};}function saveUpdates(_0x295a72,_0x5c7429){return function(_0x2f2693){if(_0x2f2693){return _0x2f2693[_0x237d('0x35')](_0x295a72)[_0x237d('0x1e')](function(_0x13ab15){return _0x13ab15;});}return null;};}function removeEntity(_0x561460,_0x417996){return function(_0x224832){if(_0x224832){return _0x224832[_0x237d('0x36')]()[_0x237d('0x1e')](function(){var _0x569c8a=_0x224832['get']({'plain':!![]});var _0x5a61c2=_0x237d('0x37');return db[_0x237d('0x38')][_0x237d('0x36')]({'where':{'type':_0x5a61c2,'resourceId':_0x569c8a['id']}})['then'](function(){return _0x224832;});})[_0x237d('0x1e')](function(){_0x561460[_0x237d('0x2b')](0xcc)[_0x237d('0x39')]();});}};}function handleEntityNotFound(_0x5b5ac0,_0x2619e2){return function(_0x3283f9){if(!_0x3283f9){_0x5b5ac0['sendStatus'](0x194);}return _0x3283f9;};}function handleError(_0x544b3c,_0x28d951){_0x28d951=_0x28d951||0x1f4;return function(_0x412b04){logger[_0x237d('0x22')](_0x412b04[_0x237d('0x3a')]);if(_0x412b04['name']){delete _0x412b04[_0x237d('0x3b')];}_0x544b3c[_0x237d('0x2b')](_0x28d951)['send'](_0x412b04);};}exports['index']=function(_0x21eafd,_0x34ef98){var _0x1b2028={},_0xf0b01b={},_0x1e7704={'count':0x0,'rows':[]};var _0x1727c1=_['map'](db[_0x237d('0x3c')]['rawAttributes'],function(_0x3c65c4){return{'name':_0x3c65c4[_0x237d('0x3d')],'type':_0x3c65c4['type'][_0x237d('0x3e')]};});_0xf0b01b[_0x237d('0x3f')]=_[_0x237d('0x40')](_0x1727c1,_0x237d('0x3b'));_0xf0b01b[_0x237d('0x41')]=_[_0x237d('0x42')](_0x21eafd[_0x237d('0x41')]);_0xf0b01b[_0x237d('0x43')]=_[_0x237d('0x44')](_0xf0b01b[_0x237d('0x3f')],_0xf0b01b[_0x237d('0x41')]);_0x1b2028[_0x237d('0x45')]=_[_0x237d('0x44')](_0xf0b01b[_0x237d('0x3f')],qs['fields'](_0x21eafd['query'][_0x237d('0x46')]));_0x1b2028[_0x237d('0x45')]=_0x1b2028[_0x237d('0x45')][_0x237d('0x47')]?_0x1b2028[_0x237d('0x45')]:_0xf0b01b[_0x237d('0x3f')];if(!_0x21eafd[_0x237d('0x41')][_0x237d('0x48')](_0x237d('0x49'))){_0x1b2028[_0x237d('0x2f')]=qs[_0x237d('0x2f')](_0x21eafd['query']['limit']);_0x1b2028[_0x237d('0x2d')]=qs['offset'](_0x21eafd['query'][_0x237d('0x2d')]);}_0x1b2028[_0x237d('0x4a')]=qs[_0x237d('0x4b')](_0x21eafd['query'][_0x237d('0x4b')]);_0x1b2028[_0x237d('0x4c')]=qs['filters'](_[_0x237d('0x4d')](_0x21eafd['query'],_0xf0b01b[_0x237d('0x43')]),_0x1727c1);if(_0x21eafd[_0x237d('0x41')]['filter']){_0x1b2028[_0x237d('0x4c')]=_[_0x237d('0x4e')](_0x1b2028[_0x237d('0x4c')],{'$or':_[_0x237d('0x40')](_0x1727c1,function(_0xe7da1a){if(_0xe7da1a[_0x237d('0x4f')]!=='VIRTUAL'){var _0x130335={};_0x130335[_0xe7da1a[_0x237d('0x3b')]]={'$like':'%'+_0x21eafd[_0x237d('0x41')][_0x237d('0x50')]+'%'};return _0x130335;}})});}_0x1b2028=_[_0x237d('0x4e')]({},_0x1b2028,_0x21eafd[_0x237d('0x51')]);var _0x1338ff={'where':_0x1b2028[_0x237d('0x4c')]};return db[_0x237d('0x3c')][_0x237d('0x30')](_0x1338ff)['then'](function(_0x355b96){_0x1e7704[_0x237d('0x30')]=_0x355b96;if(_0x21eafd[_0x237d('0x41')][_0x237d('0x52')]){_0x1b2028['include']=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x1b2028);})[_0x237d('0x1e')](function(_0x1eb5fd){_0x1e7704[_0x237d('0x53')]=_0x1eb5fd;return _0x1e7704;})[_0x237d('0x1e')](respondWithFilteredResult(_0x34ef98,_0x1b2028))[_0x237d('0x29')](handleError(_0x34ef98,null));};exports[_0x237d('0x54')]=function(_0x2d0018,_0x596675){var _0x83482d={'raw':![],'where':{'id':_0x2d0018[_0x237d('0x55')]['id']}},_0x1829fd={};_0x1829fd[_0x237d('0x3f')]=_['keys'](db['VoiceContext']['rawAttributes']);_0x1829fd[_0x237d('0x41')]=_[_0x237d('0x42')](_0x2d0018['query']);_0x1829fd[_0x237d('0x43')]=_[_0x237d('0x44')](_0x1829fd['model'],_0x1829fd['query']);_0x83482d[_0x237d('0x45')]=_[_0x237d('0x44')](_0x1829fd[_0x237d('0x3f')],qs['fields'](_0x2d0018[_0x237d('0x41')][_0x237d('0x46')]));_0x83482d[_0x237d('0x45')]=_0x83482d[_0x237d('0x45')]['length']?_0x83482d[_0x237d('0x45')]:_0x1829fd[_0x237d('0x3f')];if(_0x2d0018['query'][_0x237d('0x52')]){_0x83482d[_0x237d('0x56')]=[{'all':!![]}];}_0x83482d=_[_0x237d('0x4e')]({},_0x83482d,_0x2d0018['options']);return db['VoiceContext'][_0x237d('0x57')](_0x83482d)['then'](handleEntityNotFound(_0x596675,null))[_0x237d('0x1e')](respondWithResult(_0x596675,null))['catch'](handleError(_0x596675,null));};exports['create']=function(_0x14365b,_0xcffd1d,_0x3eb76c){var _0x22ef77;return db[_0x237d('0x3c')]['create'](_0x14365b['body'],{'raw':!![]})[_0x237d('0x1e')](function(_0x2ee0a7){_0x22ef77=_0x2ee0a7;return db[_0x237d('0x3c')]['findAll']({'raw':!![]});})['then'](function(_0x2c7943){var _0x285765=fs[_0x237d('0x58')](path['join'](config[_0x237d('0x59')],_0x237d('0x5a')),'utf8');var _0x548fdd=ejs[_0x237d('0x5b')](_0x285765,{'contexts':_0x2c7943||[]});fs[_0x237d('0x5c')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x548fdd);})['then'](function(){return respondWithRpcPromise('Reload',_0x237d('0x5d'),{'module':'chan_sip.so'});})['then'](function(){var _0x3c9e88=_0x14365b['user'][_0x237d('0x5e')]({'plain':!![]});if(!_0x3c9e88)throw new Error(_0x237d('0x5f'));if(_0x3c9e88[_0x237d('0x60')]==='user'){var _0x5a7cff=_0x22ef77[_0x237d('0x5e')]({'plain':!![]});return db[_0x237d('0x61')][_0x237d('0x57')]({'where':{'name':'Contexts','userProfileId':_0x3c9e88['userProfileId']},'raw':!![]})[_0x237d('0x1e')](function(_0x4a5228){if(_0x4a5228&&_0x4a5228[_0x237d('0x62')]===0x0){return db[_0x237d('0x38')][_0x237d('0x5d')]({'name':_0x5a7cff[_0x237d('0x3b')],'resourceId':_0x5a7cff['id'],'type':_0x4a5228['name'],'sectionId':_0x4a5228['id']},{})[_0x237d('0x1e')](function(){return _0x22ef77;});}else{return _0x22ef77;}})[_0x237d('0x29')](function(_0x1b8d42){logger[_0x237d('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1b8d42);throw _0x1b8d42;});}return _0x22ef77;})[_0x237d('0x1e')](respondWithResult(_0xcffd1d,0xc9))[_0x237d('0x29')](handleError(_0xcffd1d,null));};exports[_0x237d('0x35')]=function(_0x213558,_0x79e8c5,_0x7cc292){var _0x57fa7e;return db['VoiceContext'][_0x237d('0x57')]({'where':{'id':_0x213558[_0x237d('0x55')]['id']}})['then'](handleEntityNotFound(_0x79e8c5,null))[_0x237d('0x1e')](saveUpdates(_0x213558[_0x237d('0x63')],null))['then'](function(_0x290049){if(_0x290049){_0x57fa7e=_0x290049;return db[_0x237d('0x3c')][_0x237d('0x64')]({'raw':!![]});}})[_0x237d('0x1e')](function(_0x2b6516){var _0x595bd9=fs['readFileSync'](path[_0x237d('0x65')](config[_0x237d('0x59')],_0x237d('0x5a')),'utf8');var _0x3dce8e=ejs[_0x237d('0x5b')](_0x595bd9,{'contexts':_0x2b6516||[]});fs[_0x237d('0x5c')](_0x237d('0x66'),_0x3dce8e);})[_0x237d('0x1e')](function(){return respondWithRpcPromise(_0x237d('0x67'),'update',{'module':_0x237d('0x68')});})['then'](function(){return _0x57fa7e;})[_0x237d('0x1e')](respondWithResult(_0x79e8c5,null))[_0x237d('0x29')](handleError(_0x79e8c5,null));};exports[_0x237d('0x36')]=function(_0x2a4cd5,_0x32c787,_0x270bd8){var _0x80d7c6;return db[_0x237d('0x3c')][_0x237d('0x57')]({'where':{'id':_0x2a4cd5[_0x237d('0x55')]['id']}})[_0x237d('0x1e')](handleEntityNotFound(_0x32c787,null))['then'](removeEntity(_0x32c787,null))[_0x237d('0x1e')](function(){return db[_0x237d('0x3c')][_0x237d('0x64')]({'raw':!![]});})['then'](function(_0xb04ad4){var _0x51ff0c=fs['readFileSync'](path['join'](config[_0x237d('0x59')],_0x237d('0x5a')),_0x237d('0x69'));var _0x43a0cd=ejs[_0x237d('0x5b')](_0x51ff0c,{'contexts':_0xb04ad4});fs['writeFileSync'](_0x237d('0x66'),_0x43a0cd);return respondWithRpcPromise(_0x237d('0x67'),_0x237d('0x36'),{'module':_0x237d('0x68')});})[_0x237d('0x29')](handleError(_0x32c787,null));};