Built motion from commit 092f8824.|2.5.49
[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 _0x7ced=['debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','info','catch','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','Contexts','UserProfileResource','sendStatus','stack','name','index','map','VoiceContext','rawAttributes','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','show','params','length','create','body','readFileSync','join','root','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','server/files/templates/context.ejs','utf8','render','Reload','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then'];(function(_0x48e5cd,_0x46acc0){var _0x559f41=function(_0x284af1){while(--_0x284af1){_0x48e5cd['push'](_0x48e5cd['shift']());}};_0x559f41(++_0x46acc0);}(_0x7ced,0x131));var _0xd7ce=function(_0x464d1b,_0x4d4525){_0x464d1b=_0x464d1b-0x0;var _0x1b21c0=_0x7ced[_0x464d1b];return _0x1b21c0;};'use strict';var emlformat=require(_0xd7ce('0x0'));var rimraf=require(_0xd7ce('0x1'));var zipdir=require(_0xd7ce('0x2'));var jsonpatch=require(_0xd7ce('0x3'));var rp=require(_0xd7ce('0x4'));var moment=require(_0xd7ce('0x5'));var BPromise=require(_0xd7ce('0x6'));var Mustache=require(_0xd7ce('0x7'));var util=require(_0xd7ce('0x8'));var path=require(_0xd7ce('0x9'));var sox=require('sox');var csv=require(_0xd7ce('0xa'));var ejs=require(_0xd7ce('0xb'));var fs=require('fs');var fs_extra=require(_0xd7ce('0xc'));var _=require(_0xd7ce('0xd'));var squel=require(_0xd7ce('0xe'));var crypto=require(_0xd7ce('0xf'));var jsforce=require(_0xd7ce('0x10'));var deskjs=require(_0xd7ce('0x11'));var toCsv=require(_0xd7ce('0xa'));var querystring=require(_0xd7ce('0x12'));var Papa=require(_0xd7ce('0x13'));var Redis=require(_0xd7ce('0x14'));var authService=require(_0xd7ce('0x15'));var qs=require(_0xd7ce('0x16'));var as=require(_0xd7ce('0x17'));var hardwareService=require(_0xd7ce('0x18'));var logger=require(_0xd7ce('0x19'))(_0xd7ce('0x1a'));var utils=require('../../config/utils');var config=require(_0xd7ce('0x1b'));var licenseUtil=require('../../config/license/util');var db=require(_0xd7ce('0x1c'))['db'];var jayson=require(_0xd7ce('0x1d'));var client=jayson[_0xd7ce('0x1e')][_0xd7ce('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x1a5bff,_0x1f803b,_0x48a228,_0xcc536a){return new BPromise(function(_0x2d2163,_0x835e40){var _0x2d2925=_0xcc536a||client;return _0x2d2925[_0xd7ce('0x20')](_0x1a5bff,_0x48a228)[_0xd7ce('0x21')](function(_0x865a2d){logger['info']('VoiceContext,\x20%s,\x20%s',_0x1f803b,'request\x20sent');logger[_0xd7ce('0x22')](_0xd7ce('0x23'),_0x1f803b,_0xd7ce('0x24'),JSON[_0xd7ce('0x25')](_0x865a2d));if(_0x865a2d['error']){if(_0x865a2d[_0xd7ce('0x26')][_0xd7ce('0x27')]===0x1f4){logger[_0xd7ce('0x26')](_0xd7ce('0x28'),_0x1f803b,_0x865a2d[_0xd7ce('0x26')][_0xd7ce('0x29')]);return _0x835e40(_0x865a2d[_0xd7ce('0x26')][_0xd7ce('0x29')]);}logger['error'](_0xd7ce('0x28'),_0x1f803b,_0x865a2d[_0xd7ce('0x26')]['message']);return _0x2d2163(_0x865a2d['error']['message']);}else{logger[_0xd7ce('0x2a')](_0xd7ce('0x28'),_0x1f803b,_0xd7ce('0x24'));_0x2d2163(_0x865a2d['result']['message']);}})[_0xd7ce('0x2b')](function(_0x36ba4b){logger[_0xd7ce('0x26')](_0xd7ce('0x28'),_0x1f803b,_0x36ba4b);_0x835e40(_0x36ba4b);});});}function respondWithStatusCode(_0x7b4d61,_0x4489e4){_0x4489e4=_0x4489e4||0xcc;return function(_0x73dad9){if(_0x73dad9){return _0x7b4d61['sendStatus'](_0x4489e4);}return _0x7b4d61['status'](_0x4489e4)[_0xd7ce('0x2c')]();};}function respondWithResult(_0x1cc3be,_0x1af756){_0x1af756=_0x1af756||0xc8;return function(_0x2d110f){if(_0x2d110f){return _0x1cc3be[_0xd7ce('0x2d')](_0x1af756)[_0xd7ce('0x2e')](_0x2d110f);}};}function respondWithFilteredResult(_0x1efae6,_0x2ba0ca){return function(_0x2b0027){if(_0x2b0027){var _0x4dbc5f=typeof _0x2ba0ca['offset']===_0xd7ce('0x2f')&&typeof _0x2ba0ca[_0xd7ce('0x30')]===_0xd7ce('0x2f');var _0x242ee3=_0x2b0027[_0xd7ce('0x31')];var _0x14eeb2=_0x4dbc5f?0x0:_0x2ba0ca[_0xd7ce('0x32')];var _0x4804ff=_0x4dbc5f?_0x2b0027[_0xd7ce('0x31')]:_0x2ba0ca[_0xd7ce('0x32')]+_0x2ba0ca[_0xd7ce('0x30')];var _0x48d578;if(_0x4804ff>=_0x242ee3){_0x4804ff=_0x242ee3;_0x48d578=0xc8;}else{_0x48d578=0xce;}_0x1efae6[_0xd7ce('0x2d')](_0x48d578);return _0x1efae6[_0xd7ce('0x33')](_0xd7ce('0x34'),_0x14eeb2+'-'+_0x4804ff+'/'+_0x242ee3)[_0xd7ce('0x2e')](_0x2b0027);}return null;};}function patchUpdates(_0x41a470){return function(_0x3586f1){try{jsonpatch[_0xd7ce('0x35')](_0x3586f1,_0x41a470,!![]);}catch(_0x480fdb){return BPromise[_0xd7ce('0x36')](_0x480fdb);}return _0x3586f1[_0xd7ce('0x37')]();};}function saveUpdates(_0x438d7e,_0x2e9114){return function(_0x37bfa2){if(_0x37bfa2){return _0x37bfa2[_0xd7ce('0x38')](_0x438d7e)['then'](function(_0xfdaf85){return _0xfdaf85;});}return null;};}function removeEntity(_0x1baf67,_0x9537ae){return function(_0x2c7ae0){if(_0x2c7ae0){return _0x2c7ae0[_0xd7ce('0x39')]()['then'](function(){var _0xf070ca=_0x2c7ae0['get']({'plain':!![]});var _0x17b8c6=_0xd7ce('0x3a');return db[_0xd7ce('0x3b')][_0xd7ce('0x39')]({'where':{'type':_0x17b8c6,'resourceId':_0xf070ca['id']}})[_0xd7ce('0x21')](function(){return _0x2c7ae0;});})['then'](function(){_0x1baf67['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x50f21b,_0x3b4091){return function(_0x1bfeb1){if(!_0x1bfeb1){_0x50f21b[_0xd7ce('0x3c')](0x194);}return _0x1bfeb1;};}function handleError(_0x1413d,_0x1fd932){_0x1fd932=_0x1fd932||0x1f4;return function(_0x5919fa){logger['error'](_0x5919fa[_0xd7ce('0x3d')]);if(_0x5919fa[_0xd7ce('0x3e')]){delete _0x5919fa[_0xd7ce('0x3e')];}_0x1413d['status'](_0x1fd932)['send'](_0x5919fa);};}exports[_0xd7ce('0x3f')]=function(_0xd294f2,_0x2a8c9e){var _0x11fc36={},_0x5d7cff={},_0x23d41b={'count':0x0,'rows':[]};var _0x5a61f3=_[_0xd7ce('0x40')](db[_0xd7ce('0x41')][_0xd7ce('0x42')],function(_0x587fae){return{'name':_0x587fae['fieldName'],'type':_0x587fae[_0xd7ce('0x43')][_0xd7ce('0x44')]};});_0x5d7cff[_0xd7ce('0x45')]=_[_0xd7ce('0x40')](_0x5a61f3,_0xd7ce('0x3e'));_0x5d7cff['query']=_[_0xd7ce('0x46')](_0xd294f2[_0xd7ce('0x47')]);_0x5d7cff[_0xd7ce('0x48')]=_[_0xd7ce('0x49')](_0x5d7cff['model'],_0x5d7cff['query']);_0x11fc36['attributes']=_[_0xd7ce('0x49')](_0x5d7cff[_0xd7ce('0x45')],qs[_0xd7ce('0x4a')](_0xd294f2['query'][_0xd7ce('0x4a')]));_0x11fc36[_0xd7ce('0x4b')]=_0x11fc36['attributes']['length']?_0x11fc36[_0xd7ce('0x4b')]:_0x5d7cff[_0xd7ce('0x45')];if(!_0xd294f2[_0xd7ce('0x47')][_0xd7ce('0x4c')](_0xd7ce('0x4d'))){_0x11fc36[_0xd7ce('0x30')]=qs['limit'](_0xd294f2['query'][_0xd7ce('0x30')]);_0x11fc36['offset']=qs[_0xd7ce('0x32')](_0xd294f2[_0xd7ce('0x47')]['offset']);}_0x11fc36[_0xd7ce('0x4e')]=qs['sort'](_0xd294f2[_0xd7ce('0x47')][_0xd7ce('0x4f')]);_0x11fc36['where']=qs[_0xd7ce('0x48')](_[_0xd7ce('0x50')](_0xd294f2['query'],_0x5d7cff[_0xd7ce('0x48')]),_0x5a61f3);if(_0xd294f2['query'][_0xd7ce('0x51')]){_0x11fc36[_0xd7ce('0x52')]=_[_0xd7ce('0x53')](_0x11fc36['where'],{'$or':_[_0xd7ce('0x40')](_0x5a61f3,function(_0x558d6b){if(_0x558d6b[_0xd7ce('0x43')]!=='VIRTUAL'){var _0x5e30e9={};_0x5e30e9[_0x558d6b['name']]={'$like':'%'+_0xd294f2['query'][_0xd7ce('0x51')]+'%'};return _0x5e30e9;}})});}_0x11fc36=_[_0xd7ce('0x53')]({},_0x11fc36,_0xd294f2[_0xd7ce('0x54')]);var _0x50dbce={'where':_0x11fc36[_0xd7ce('0x52')]};return db[_0xd7ce('0x41')][_0xd7ce('0x31')](_0x50dbce)[_0xd7ce('0x21')](function(_0x211232){_0x23d41b['count']=_0x211232;if(_0xd294f2['query'][_0xd7ce('0x55')]){_0x11fc36[_0xd7ce('0x56')]=[{'all':!![]}];}return db[_0xd7ce('0x41')][_0xd7ce('0x57')](_0x11fc36);})['then'](function(_0x26f883){_0x23d41b[_0xd7ce('0x58')]=_0x26f883;return _0x23d41b;})[_0xd7ce('0x21')](respondWithFilteredResult(_0x2a8c9e,_0x11fc36))[_0xd7ce('0x2b')](handleError(_0x2a8c9e,null));};exports[_0xd7ce('0x59')]=function(_0x14fdc7,_0x405b31){var _0x437599={'raw':![],'where':{'id':_0x14fdc7[_0xd7ce('0x5a')]['id']}},_0x1b6f1e={};_0x1b6f1e['model']=_[_0xd7ce('0x46')](db['VoiceContext'][_0xd7ce('0x42')]);_0x1b6f1e[_0xd7ce('0x47')]=_['keys'](_0x14fdc7['query']);_0x1b6f1e[_0xd7ce('0x48')]=_['intersection'](_0x1b6f1e[_0xd7ce('0x45')],_0x1b6f1e[_0xd7ce('0x47')]);_0x437599[_0xd7ce('0x4b')]=_[_0xd7ce('0x49')](_0x1b6f1e[_0xd7ce('0x45')],qs[_0xd7ce('0x4a')](_0x14fdc7[_0xd7ce('0x47')][_0xd7ce('0x4a')]));_0x437599['attributes']=_0x437599[_0xd7ce('0x4b')][_0xd7ce('0x5b')]?_0x437599['attributes']:_0x1b6f1e[_0xd7ce('0x45')];if(_0x14fdc7[_0xd7ce('0x47')][_0xd7ce('0x55')]){_0x437599['include']=[{'all':!![]}];}_0x437599=_['merge']({},_0x437599,_0x14fdc7[_0xd7ce('0x54')]);return db['VoiceContext']['find'](_0x437599)['then'](handleEntityNotFound(_0x405b31,null))[_0xd7ce('0x21')](respondWithResult(_0x405b31,null))[_0xd7ce('0x2b')](handleError(_0x405b31,null));};exports[_0xd7ce('0x5c')]=function(_0x9f4c83,_0x59d59d,_0x4d1f77){var _0x44b564;return db['VoiceContext']['create'](_0x9f4c83[_0xd7ce('0x5d')],{'raw':!![]})[_0xd7ce('0x21')](function(_0x43eab3){_0x44b564=_0x43eab3;return db['VoiceContext'][_0xd7ce('0x57')]({'raw':!![]});})[_0xd7ce('0x21')](function(_0x2669bd){var _0x401dea=fs[_0xd7ce('0x5e')](path[_0xd7ce('0x5f')](config[_0xd7ce('0x60')],'server/files/templates/context.ejs'),'utf8');var _0x2ffd74=ejs['render'](_0x401dea,{'contexts':_0x2669bd||[]});fs[_0xd7ce('0x61')](_0xd7ce('0x62'),_0x2ffd74);})[_0xd7ce('0x21')](function(){return respondWithRpcPromise('Reload',_0xd7ce('0x5c'),{'module':_0xd7ce('0x63')});})[_0xd7ce('0x21')](function(){var _0x159396=_0x9f4c83[_0xd7ce('0x64')][_0xd7ce('0x65')]({'plain':!![]});if(!_0x159396)throw new Error(_0xd7ce('0x66'));if(_0x159396[_0xd7ce('0x67')]==='user'){var _0x41f2a0=_0x44b564['get']({'plain':!![]});return db[_0xd7ce('0x68')][_0xd7ce('0x69')]({'where':{'name':_0xd7ce('0x3a'),'userProfileId':_0x159396[_0xd7ce('0x6a')]},'raw':!![]})[_0xd7ce('0x21')](function(_0x59f7d2){if(_0x59f7d2&&_0x59f7d2[_0xd7ce('0x6b')]===0x0){return db[_0xd7ce('0x3b')][_0xd7ce('0x5c')]({'name':_0x41f2a0[_0xd7ce('0x3e')],'resourceId':_0x41f2a0['id'],'type':_0x59f7d2['name'],'sectionId':_0x59f7d2['id']},{})[_0xd7ce('0x21')](function(){return _0x44b564;});}else{return _0x44b564;}})[_0xd7ce('0x2b')](function(_0x376e1b){logger[_0xd7ce('0x26')](_0xd7ce('0x6c'),_0x376e1b);throw _0x376e1b;});}return _0x44b564;})[_0xd7ce('0x21')](respondWithResult(_0x59d59d,0xc9))[_0xd7ce('0x2b')](handleError(_0x59d59d,null));};exports[_0xd7ce('0x38')]=function(_0x1d5d44,_0x27f810,_0x483890){var _0x1cc034;return db[_0xd7ce('0x41')][_0xd7ce('0x69')]({'where':{'id':_0x1d5d44[_0xd7ce('0x5a')]['id']}})[_0xd7ce('0x21')](handleEntityNotFound(_0x27f810,null))[_0xd7ce('0x21')](saveUpdates(_0x1d5d44[_0xd7ce('0x5d')],null))['then'](function(_0x262fe7){if(_0x262fe7){_0x1cc034=_0x262fe7;return db[_0xd7ce('0x41')][_0xd7ce('0x57')]({'raw':!![]});}})[_0xd7ce('0x21')](function(_0x4ef544){var _0x5d7c7c=fs['readFileSync'](path['join'](config[_0xd7ce('0x60')],_0xd7ce('0x6d')),_0xd7ce('0x6e'));var _0x2c7b2e=ejs[_0xd7ce('0x6f')](_0x5d7c7c,{'contexts':_0x4ef544||[]});fs[_0xd7ce('0x61')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2c7b2e);})[_0xd7ce('0x21')](function(){return respondWithRpcPromise(_0xd7ce('0x70'),'update',{'module':'chan_sip.so'});})[_0xd7ce('0x21')](function(){return _0x1cc034;})[_0xd7ce('0x21')](respondWithResult(_0x27f810,null))[_0xd7ce('0x2b')](handleError(_0x27f810,null));};exports[_0xd7ce('0x39')]=function(_0x1772c6,_0x12de70,_0x2c9455){var _0x56efd4;return db[_0xd7ce('0x41')][_0xd7ce('0x69')]({'where':{'id':_0x1772c6[_0xd7ce('0x5a')]['id']}})['then'](handleEntityNotFound(_0x12de70,null))[_0xd7ce('0x21')](removeEntity(_0x12de70,null))['then'](function(){return db[_0xd7ce('0x41')][_0xd7ce('0x57')]({'raw':!![]});})[_0xd7ce('0x21')](function(_0x35d6d7){var _0x3bc3c5=fs[_0xd7ce('0x5e')](path[_0xd7ce('0x5f')](config[_0xd7ce('0x60')],_0xd7ce('0x6d')),_0xd7ce('0x6e'));var _0x2a26c0=ejs['render'](_0x3bc3c5,{'contexts':_0x35d6d7});fs[_0xd7ce('0x61')](_0xd7ce('0x62'),_0x2a26c0);return respondWithRpcPromise(_0xd7ce('0x70'),_0xd7ce('0x39'),{'module':'chan_sip.so'});})[_0xd7ce('0x2b')](handleError(_0x12de70,null));};