Built motion from commit (unavailable).|2.5.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 _0x279d=['UserProfileResource','sendStatus','stack','name','send','VoiceContext','rawAttributes','type','map','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','params','create','body','readFileSync','root','server/files/templates/context.ejs','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','Contexts','autoAssociation','utf8','render','join','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','error','VoiceContext,\x20%s,\x20%s','message','catch','status','offset','undefined','limit','count','set','json','apply','reject','update','then','destroy','get'];(function(_0x112a90,_0x54f659){var _0x5c56eb=function(_0x23d310){while(--_0x23d310){_0x112a90['push'](_0x112a90['shift']());}};_0x5c56eb(++_0x54f659);}(_0x279d,0xf5));var _0xd279=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x279d[_0x122096];return _0x3d1966;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd279('0x0'));var zipdir=require(_0xd279('0x1'));var jsonpatch=require(_0xd279('0x2'));var rp=require(_0xd279('0x3'));var moment=require(_0xd279('0x4'));var BPromise=require(_0xd279('0x5'));var Mustache=require(_0xd279('0x6'));var util=require(_0xd279('0x7'));var path=require(_0xd279('0x8'));var sox=require(_0xd279('0x9'));var csv=require(_0xd279('0xa'));var ejs=require(_0xd279('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd279('0xc'));var squel=require('squel');var crypto=require(_0xd279('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xd279('0xe'));var toCsv=require(_0xd279('0xa'));var querystring=require(_0xd279('0xf'));var Papa=require('papaparse');var Redis=require(_0xd279('0x10'));var authService=require(_0xd279('0x11'));var qs=require(_0xd279('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd279('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xd279('0x14'));var config=require(_0xd279('0x15'));var licenseUtil=require(_0xd279('0x16'));var db=require(_0xd279('0x17'))['db'];var jayson=require(_0xd279('0x18'));var client=jayson[_0xd279('0x19')][_0xd279('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x1380dd,_0x24d58e,_0x4b787a,_0x3843ff){return new BPromise(function(_0x135a26,_0x34f202){var _0x4c3bed=_0x3843ff||client;return _0x4c3bed[_0xd279('0x1b')](_0x1380dd,_0x4b787a)['then'](function(_0x1d70d4){logger[_0xd279('0x1c')]('VoiceContext,\x20%s,\x20%s',_0x24d58e,'request\x20sent');logger[_0xd279('0x1d')](_0xd279('0x1e'),_0x24d58e,_0xd279('0x1f'),JSON['stringify'](_0x1d70d4));if(_0x1d70d4[_0xd279('0x20')]){if(_0x1d70d4['error']['code']===0x1f4){logger[_0xd279('0x20')](_0xd279('0x21'),_0x24d58e,_0x1d70d4['error'][_0xd279('0x22')]);return _0x34f202(_0x1d70d4[_0xd279('0x20')][_0xd279('0x22')]);}logger['error'](_0xd279('0x21'),_0x24d58e,_0x1d70d4['error'][_0xd279('0x22')]);return _0x135a26(_0x1d70d4[_0xd279('0x20')]['message']);}else{logger[_0xd279('0x1c')](_0xd279('0x21'),_0x24d58e,_0xd279('0x1f'));_0x135a26(_0x1d70d4['result'][_0xd279('0x22')]);}})[_0xd279('0x23')](function(_0x54f40e){logger['error'](_0xd279('0x21'),_0x24d58e,_0x54f40e);_0x34f202(_0x54f40e);});});}function respondWithStatusCode(_0x5c86ce,_0x1a468f){_0x1a468f=_0x1a468f||0xcc;return function(_0x393534){if(_0x393534){return _0x5c86ce['sendStatus'](_0x1a468f);}return _0x5c86ce['status'](_0x1a468f)['end']();};}function respondWithResult(_0x461bba,_0x375f22){_0x375f22=_0x375f22||0xc8;return function(_0x4319fa){if(_0x4319fa){return _0x461bba[_0xd279('0x24')](_0x375f22)['json'](_0x4319fa);}};}function respondWithFilteredResult(_0x1b1491,_0x3528a5){return function(_0x111483){if(_0x111483){var _0x36e51b=typeof _0x3528a5[_0xd279('0x25')]===_0xd279('0x26')&&typeof _0x3528a5[_0xd279('0x27')]===_0xd279('0x26');var _0x2e1f0b=_0x111483['count'];var _0x2cdb58=_0x36e51b?0x0:_0x3528a5[_0xd279('0x25')];var _0x1b47e8=_0x36e51b?_0x111483[_0xd279('0x28')]:_0x3528a5[_0xd279('0x25')]+_0x3528a5['limit'];var _0x1cb146;if(_0x1b47e8>=_0x2e1f0b){_0x1b47e8=_0x2e1f0b;_0x1cb146=0xc8;}else{_0x1cb146=0xce;}_0x1b1491[_0xd279('0x24')](_0x1cb146);return _0x1b1491[_0xd279('0x29')]('Content-Range',_0x2cdb58+'-'+_0x1b47e8+'/'+_0x2e1f0b)[_0xd279('0x2a')](_0x111483);}return null;};}function patchUpdates(_0x3b2f35){return function(_0x3cfabc){try{jsonpatch[_0xd279('0x2b')](_0x3cfabc,_0x3b2f35,!![]);}catch(_0x3edb6e){return BPromise[_0xd279('0x2c')](_0x3edb6e);}return _0x3cfabc['save']();};}function saveUpdates(_0x36eaf6,_0x3487a6){return function(_0x3d6303){if(_0x3d6303){return _0x3d6303[_0xd279('0x2d')](_0x36eaf6)[_0xd279('0x2e')](function(_0x1075ca){return _0x1075ca;});}return null;};}function removeEntity(_0x15ce64,_0x5aa292){return function(_0x3a2b06){if(_0x3a2b06){return _0x3a2b06[_0xd279('0x2f')]()[_0xd279('0x2e')](function(){var _0x2a4d8a=_0x3a2b06[_0xd279('0x30')]({'plain':!![]});var _0x24da95='Contexts';return db[_0xd279('0x31')][_0xd279('0x2f')]({'where':{'type':_0x24da95,'resourceId':_0x2a4d8a['id']}})[_0xd279('0x2e')](function(){return _0x3a2b06;});})[_0xd279('0x2e')](function(){_0x15ce64['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b1bc2,_0x2825ad){return function(_0x5e84de){if(!_0x5e84de){_0x1b1bc2[_0xd279('0x32')](0x194);}return _0x5e84de;};}function handleError(_0x462afe,_0x53a46b){_0x53a46b=_0x53a46b||0x1f4;return function(_0x111e4a){logger[_0xd279('0x20')](_0x111e4a[_0xd279('0x33')]);if(_0x111e4a[_0xd279('0x34')]){delete _0x111e4a['name'];}_0x462afe[_0xd279('0x24')](_0x53a46b)[_0xd279('0x35')](_0x111e4a);};}exports['index']=function(_0x44a9c6,_0x14b07c){var _0x718b3f={},_0x515a6e={},_0x132af0={'count':0x0,'rows':[]};var _0x19c7df=_['map'](db[_0xd279('0x36')][_0xd279('0x37')],function(_0x536018){return{'name':_0x536018['fieldName'],'type':_0x536018[_0xd279('0x38')]['key']};});_0x515a6e['model']=_[_0xd279('0x39')](_0x19c7df,_0xd279('0x34'));_0x515a6e[_0xd279('0x3a')]=_[_0xd279('0x3b')](_0x44a9c6[_0xd279('0x3a')]);_0x515a6e[_0xd279('0x3c')]=_[_0xd279('0x3d')](_0x515a6e[_0xd279('0x3e')],_0x515a6e[_0xd279('0x3a')]);_0x718b3f['attributes']=_[_0xd279('0x3d')](_0x515a6e[_0xd279('0x3e')],qs[_0xd279('0x3f')](_0x44a9c6[_0xd279('0x3a')][_0xd279('0x3f')]));_0x718b3f[_0xd279('0x40')]=_0x718b3f['attributes'][_0xd279('0x41')]?_0x718b3f[_0xd279('0x40')]:_0x515a6e[_0xd279('0x3e')];if(!_0x44a9c6[_0xd279('0x3a')]['hasOwnProperty'](_0xd279('0x42'))){_0x718b3f[_0xd279('0x27')]=qs[_0xd279('0x27')](_0x44a9c6[_0xd279('0x3a')][_0xd279('0x27')]);_0x718b3f[_0xd279('0x25')]=qs['offset'](_0x44a9c6[_0xd279('0x3a')]['offset']);}_0x718b3f[_0xd279('0x43')]=qs[_0xd279('0x44')](_0x44a9c6[_0xd279('0x3a')]['sort']);_0x718b3f[_0xd279('0x45')]=qs[_0xd279('0x3c')](_[_0xd279('0x46')](_0x44a9c6['query'],_0x515a6e[_0xd279('0x3c')]),_0x19c7df);if(_0x44a9c6['query'][_0xd279('0x47')]){_0x718b3f[_0xd279('0x45')]=_['merge'](_0x718b3f[_0xd279('0x45')],{'$or':_[_0xd279('0x39')](_0x19c7df,function(_0x248558){if(_0x248558[_0xd279('0x38')]!==_0xd279('0x48')){var _0xf794cb={};_0xf794cb[_0x248558[_0xd279('0x34')]]={'$like':'%'+_0x44a9c6[_0xd279('0x3a')][_0xd279('0x47')]+'%'};return _0xf794cb;}})});}_0x718b3f=_[_0xd279('0x49')]({},_0x718b3f,_0x44a9c6[_0xd279('0x4a')]);var _0x125bc9={'where':_0x718b3f['where']};return db['VoiceContext'][_0xd279('0x28')](_0x125bc9)[_0xd279('0x2e')](function(_0x134df4){_0x132af0[_0xd279('0x28')]=_0x134df4;if(_0x44a9c6[_0xd279('0x3a')][_0xd279('0x4b')]){_0x718b3f[_0xd279('0x4c')]=[{'all':!![]}];}return db['VoiceContext'][_0xd279('0x4d')](_0x718b3f);})[_0xd279('0x2e')](function(_0x142722){_0x132af0['rows']=_0x142722;return _0x132af0;})['then'](respondWithFilteredResult(_0x14b07c,_0x718b3f))[_0xd279('0x23')](handleError(_0x14b07c,null));};exports['show']=function(_0x5bd63b,_0x29bd3d){var _0x1e1592={'raw':![],'where':{'id':_0x5bd63b[_0xd279('0x4e')]['id']}},_0x249d74={};_0x249d74[_0xd279('0x3e')]=_[_0xd279('0x3b')](db['VoiceContext']['rawAttributes']);_0x249d74[_0xd279('0x3a')]=_['keys'](_0x5bd63b[_0xd279('0x3a')]);_0x249d74[_0xd279('0x3c')]=_['intersection'](_0x249d74[_0xd279('0x3e')],_0x249d74['query']);_0x1e1592['attributes']=_['intersection'](_0x249d74[_0xd279('0x3e')],qs[_0xd279('0x3f')](_0x5bd63b[_0xd279('0x3a')][_0xd279('0x3f')]));_0x1e1592['attributes']=_0x1e1592[_0xd279('0x40')][_0xd279('0x41')]?_0x1e1592['attributes']:_0x249d74[_0xd279('0x3e')];if(_0x5bd63b['query'][_0xd279('0x4b')]){_0x1e1592['include']=[{'all':!![]}];}_0x1e1592=_[_0xd279('0x49')]({},_0x1e1592,_0x5bd63b['options']);return db[_0xd279('0x36')]['find'](_0x1e1592)[_0xd279('0x2e')](handleEntityNotFound(_0x29bd3d,null))[_0xd279('0x2e')](respondWithResult(_0x29bd3d,null))[_0xd279('0x23')](handleError(_0x29bd3d,null));};exports[_0xd279('0x4f')]=function(_0x438906,_0x5e34da,_0x4e0e75){var _0x4913fe;return db[_0xd279('0x36')][_0xd279('0x4f')](_0x438906[_0xd279('0x50')],{'raw':!![]})[_0xd279('0x2e')](function(_0x45786c){_0x4913fe=_0x45786c;return db[_0xd279('0x36')][_0xd279('0x4d')]({'raw':!![]});})[_0xd279('0x2e')](function(_0x423dd8){var _0x1d58b=fs[_0xd279('0x51')](path['join'](config[_0xd279('0x52')],_0xd279('0x53')),'utf8');var _0x54ef9e=ejs['render'](_0x1d58b,{'contexts':_0x423dd8||[]});fs[_0xd279('0x54')](_0xd279('0x55'),_0x54ef9e);})['then'](function(){return respondWithRpcPromise(_0xd279('0x56'),_0xd279('0x4f'),{'module':_0xd279('0x57')});})['then'](function(){var _0xaaead6=_0x438906[_0xd279('0x58')][_0xd279('0x30')]({'plain':!![]});if(!_0xaaead6)throw new Error(_0xd279('0x59'));if(_0xaaead6[_0xd279('0x5a')]===_0xd279('0x58')){var _0x365245=_0x4913fe[_0xd279('0x30')]({'plain':!![]});return db[_0xd279('0x5b')][_0xd279('0x5c')]({'where':{'name':_0xd279('0x5d'),'userProfileId':_0xaaead6['userProfileId']},'raw':!![]})[_0xd279('0x2e')](function(_0x256034){if(_0x256034&&_0x256034[_0xd279('0x5e')]===0x0){return db['UserProfileResource'][_0xd279('0x4f')]({'name':_0x365245[_0xd279('0x34')],'resourceId':_0x365245['id'],'type':_0x256034['name'],'sectionId':_0x256034['id']},{})['then'](function(){return _0x4913fe;});}else{return _0x4913fe;}})[_0xd279('0x23')](function(_0x3b019c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3b019c);throw _0x3b019c;});}return _0x4913fe;})[_0xd279('0x2e')](respondWithResult(_0x5e34da,0xc9))['catch'](handleError(_0x5e34da,null));};exports[_0xd279('0x2d')]=function(_0x10e14f,_0x3919ce,_0x1eeccd){var _0x119f60;return db[_0xd279('0x36')]['find']({'where':{'id':_0x10e14f['params']['id']}})[_0xd279('0x2e')](handleEntityNotFound(_0x3919ce,null))[_0xd279('0x2e')](saveUpdates(_0x10e14f[_0xd279('0x50')],null))['then'](function(_0x523b9f){if(_0x523b9f){_0x119f60=_0x523b9f;return db[_0xd279('0x36')][_0xd279('0x4d')]({'raw':!![]});}})[_0xd279('0x2e')](function(_0x20c4ea){var _0x4fef5c=fs[_0xd279('0x51')](path['join'](config['root'],_0xd279('0x53')),_0xd279('0x5f'));var _0x3bcac6=ejs[_0xd279('0x60')](_0x4fef5c,{'contexts':_0x20c4ea||[]});fs[_0xd279('0x54')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x3bcac6);})[_0xd279('0x2e')](function(){return respondWithRpcPromise(_0xd279('0x56'),'update',{'module':_0xd279('0x57')});})[_0xd279('0x2e')](function(){return _0x119f60;})[_0xd279('0x2e')](respondWithResult(_0x3919ce,null))['catch'](handleError(_0x3919ce,null));};exports[_0xd279('0x2f')]=function(_0x3f714b,_0x5e6e3b,_0x461984){var _0x1ba360;return db['VoiceContext'][_0xd279('0x5c')]({'where':{'id':_0x3f714b['params']['id']}})[_0xd279('0x2e')](handleEntityNotFound(_0x5e6e3b,null))[_0xd279('0x2e')](removeEntity(_0x5e6e3b,null))['then'](function(){return db[_0xd279('0x36')]['findAll']({'raw':!![]});})['then'](function(_0x47da01){var _0x5ef1f9=fs[_0xd279('0x51')](path[_0xd279('0x61')](config['root'],'server/files/templates/context.ejs'),_0xd279('0x5f'));var _0x5a2615=ejs[_0xd279('0x60')](_0x5ef1f9,{'contexts':_0x47da01});fs[_0xd279('0x54')](_0xd279('0x55'),_0x5a2615);return respondWithRpcPromise(_0xd279('0x56'),_0xd279('0x2f'),{'module':_0xd279('0x57')});})['catch'](handleError(_0x5e6e3b,null));};