Built motion from commit 449495f6.|2.6.27
[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 _0x0b56=['fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','apply','reject','save','update','destroy','get','Contexts','stack','name','map','VoiceContext','fieldName','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','include','findAll','rows','rawAttributes','keys','options','find','create','body','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readFileSync','render','rimraf','zip-dir','request-promise','bluebird','util','path','sox'];(function(_0x7f4695,_0x19826e){var _0x2caeb6=function(_0x42630c){while(--_0x42630c){_0x7f4695['push'](_0x7f4695['shift']());}};_0x2caeb6(++_0x19826e);}(_0x0b56,0x1f2));var _0x60b5=function(_0x265683,_0x9468d9){_0x265683=_0x265683-0x0;var _0x3f0cc9=_0x0b56[_0x265683];return _0x3f0cc9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x60b5('0x0'));var zipdir=require(_0x60b5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x60b5('0x2'));var moment=require('moment');var BPromise=require(_0x60b5('0x3'));var Mustache=require('mustache');var util=require(_0x60b5('0x4'));var path=require(_0x60b5('0x5'));var sox=require(_0x60b5('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x60b5('0x7'));var _=require(_0x60b5('0x8'));var squel=require(_0x60b5('0x9'));var crypto=require(_0x60b5('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x60b5('0xb'));var toCsv=require(_0x60b5('0xc'));var querystring=require(_0x60b5('0xd'));var Papa=require('papaparse');var Redis=require(_0x60b5('0xe'));var authService=require(_0x60b5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x60b5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x60b5('0x11'))(_0x60b5('0x12'));var utils=require('../../config/utils');var config=require(_0x60b5('0x13'));var licenseUtil=require(_0x60b5('0x14'));var db=require(_0x60b5('0x15'))['db'];var jayson=require(_0x60b5('0x16'));var client=jayson[_0x60b5('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x48dc4d,_0x31e54d,_0x186759,_0x272432){return new BPromise(function(_0x23ed9a,_0x59a7a7){var _0x2f280c=_0x272432||client;return _0x2f280c['request'](_0x48dc4d,_0x186759)[_0x60b5('0x18')](function(_0x1f6156){logger[_0x60b5('0x19')](_0x60b5('0x1a'),_0x31e54d,_0x60b5('0x1b'));logger[_0x60b5('0x1c')](_0x60b5('0x1d'),_0x31e54d,_0x60b5('0x1b'),JSON[_0x60b5('0x1e')](_0x1f6156));if(_0x1f6156[_0x60b5('0x1f')]){if(_0x1f6156['error'][_0x60b5('0x20')]===0x1f4){logger[_0x60b5('0x1f')](_0x60b5('0x1a'),_0x31e54d,_0x1f6156['error']['message']);return _0x59a7a7(_0x1f6156['error']['message']);}logger[_0x60b5('0x1f')](_0x60b5('0x1a'),_0x31e54d,_0x1f6156[_0x60b5('0x1f')]['message']);return _0x23ed9a(_0x1f6156['error'][_0x60b5('0x21')]);}else{logger[_0x60b5('0x19')](_0x60b5('0x1a'),_0x31e54d,_0x60b5('0x1b'));_0x23ed9a(_0x1f6156[_0x60b5('0x22')][_0x60b5('0x21')]);}})[_0x60b5('0x23')](function(_0x2618a6){logger[_0x60b5('0x1f')](_0x60b5('0x1a'),_0x31e54d,_0x2618a6);_0x59a7a7(_0x2618a6);});});}function respondWithStatusCode(_0x48df53,_0x3e66fa){_0x3e66fa=_0x3e66fa||0xcc;return function(_0x337bf6){if(_0x337bf6){return _0x48df53[_0x60b5('0x24')](_0x3e66fa);}return _0x48df53[_0x60b5('0x25')](_0x3e66fa)[_0x60b5('0x26')]();};}function respondWithResult(_0x6f6c83,_0x39fd25){_0x39fd25=_0x39fd25||0xc8;return function(_0x144e7f){if(_0x144e7f){return _0x6f6c83['status'](_0x39fd25)[_0x60b5('0x27')](_0x144e7f);}};}function respondWithFilteredResult(_0x215076,_0x2cc78e){return function(_0x235d7f){if(_0x235d7f){var _0x1fbd65=typeof _0x2cc78e['offset']==='undefined'&&typeof _0x2cc78e[_0x60b5('0x28')]===_0x60b5('0x29');var _0x187b9a=_0x235d7f[_0x60b5('0x2a')];var _0x4580a4=_0x1fbd65?0x0:_0x2cc78e['offset'];var _0x1e0264=_0x1fbd65?_0x235d7f[_0x60b5('0x2a')]:_0x2cc78e[_0x60b5('0x2b')]+_0x2cc78e[_0x60b5('0x28')];var _0x565a9c;if(_0x1e0264>=_0x187b9a){_0x1e0264=_0x187b9a;_0x565a9c=0xc8;}else{_0x565a9c=0xce;}_0x215076[_0x60b5('0x25')](_0x565a9c);return _0x215076['set'](_0x60b5('0x2c'),_0x4580a4+'-'+_0x1e0264+'/'+_0x187b9a)[_0x60b5('0x27')](_0x235d7f);}return null;};}function patchUpdates(_0x5bbd7d){return function(_0x477db3){try{jsonpatch[_0x60b5('0x2d')](_0x477db3,_0x5bbd7d,!![]);}catch(_0x2398e9){return BPromise[_0x60b5('0x2e')](_0x2398e9);}return _0x477db3[_0x60b5('0x2f')]();};}function saveUpdates(_0x4ce0cd,_0x52ff46){return function(_0xc7906e){if(_0xc7906e){return _0xc7906e[_0x60b5('0x30')](_0x4ce0cd)[_0x60b5('0x18')](function(_0x32d48d){return _0x32d48d;});}return null;};}function removeEntity(_0x287aef,_0x487eaa){return function(_0xac44e7){if(_0xac44e7){return _0xac44e7[_0x60b5('0x31')]()[_0x60b5('0x18')](function(){var _0x32501e=_0xac44e7[_0x60b5('0x32')]({'plain':!![]});var _0x42bb4c=_0x60b5('0x33');return db['UserProfileResource']['destroy']({'where':{'type':_0x42bb4c,'resourceId':_0x32501e['id']}})[_0x60b5('0x18')](function(){return _0xac44e7;});})[_0x60b5('0x18')](function(){_0x287aef[_0x60b5('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2bc2ad,_0x1278b6){return function(_0x1d5674){if(!_0x1d5674){_0x2bc2ad[_0x60b5('0x24')](0x194);}return _0x1d5674;};}function handleError(_0x26fb86,_0x581047){_0x581047=_0x581047||0x1f4;return function(_0x502c37){logger[_0x60b5('0x1f')](_0x502c37[_0x60b5('0x34')]);if(_0x502c37[_0x60b5('0x35')]){delete _0x502c37[_0x60b5('0x35')];}_0x26fb86[_0x60b5('0x25')](_0x581047)['send'](_0x502c37);};}exports['index']=function(_0x411924,_0x5beeaa){var _0x5e6159={},_0x2d7c14={},_0x38ff30={'count':0x0,'rows':[]};var _0x10b724=_[_0x60b5('0x36')](db[_0x60b5('0x37')]['rawAttributes'],function(_0x397bff){return{'name':_0x397bff[_0x60b5('0x38')],'type':_0x397bff['type'][_0x60b5('0x39')]};});_0x2d7c14[_0x60b5('0x3a')]=_[_0x60b5('0x36')](_0x10b724,_0x60b5('0x35'));_0x2d7c14[_0x60b5('0x3b')]=_['keys'](_0x411924[_0x60b5('0x3b')]);_0x2d7c14[_0x60b5('0x3c')]=_[_0x60b5('0x3d')](_0x2d7c14[_0x60b5('0x3a')],_0x2d7c14[_0x60b5('0x3b')]);_0x5e6159[_0x60b5('0x3e')]=_['intersection'](_0x2d7c14[_0x60b5('0x3a')],qs['fields'](_0x411924[_0x60b5('0x3b')][_0x60b5('0x3f')]));_0x5e6159[_0x60b5('0x3e')]=_0x5e6159[_0x60b5('0x3e')][_0x60b5('0x40')]?_0x5e6159[_0x60b5('0x3e')]:_0x2d7c14['model'];if(!_0x411924[_0x60b5('0x3b')][_0x60b5('0x41')](_0x60b5('0x42'))){_0x5e6159[_0x60b5('0x28')]=qs[_0x60b5('0x28')](_0x411924[_0x60b5('0x3b')][_0x60b5('0x28')]);_0x5e6159[_0x60b5('0x2b')]=qs[_0x60b5('0x2b')](_0x411924[_0x60b5('0x3b')][_0x60b5('0x2b')]);}_0x5e6159['order']=qs[_0x60b5('0x43')](_0x411924[_0x60b5('0x3b')][_0x60b5('0x43')]);_0x5e6159[_0x60b5('0x44')]=qs[_0x60b5('0x3c')](_[_0x60b5('0x45')](_0x411924[_0x60b5('0x3b')],_0x2d7c14[_0x60b5('0x3c')]),_0x10b724);if(_0x411924['query']['filter']){_0x5e6159['where']=_[_0x60b5('0x46')](_0x5e6159[_0x60b5('0x44')],{'$or':_[_0x60b5('0x36')](_0x10b724,function(_0x331c1b){if(_0x331c1b[_0x60b5('0x47')]!==_0x60b5('0x48')){var _0x280861={};_0x280861[_0x331c1b[_0x60b5('0x35')]]={'$like':'%'+_0x411924[_0x60b5('0x3b')][_0x60b5('0x49')]+'%'};return _0x280861;}})});}_0x5e6159=_[_0x60b5('0x46')]({},_0x5e6159,_0x411924['options']);var _0x39a851={'where':_0x5e6159[_0x60b5('0x44')]};return db[_0x60b5('0x37')][_0x60b5('0x2a')](_0x39a851)['then'](function(_0x4de026){_0x38ff30['count']=_0x4de026;if(_0x411924['query']['includeAll']){_0x5e6159[_0x60b5('0x4a')]=[{'all':!![]}];}return db[_0x60b5('0x37')][_0x60b5('0x4b')](_0x5e6159);})['then'](function(_0x1c43ca){_0x38ff30[_0x60b5('0x4c')]=_0x1c43ca;return _0x38ff30;})[_0x60b5('0x18')](respondWithFilteredResult(_0x5beeaa,_0x5e6159))[_0x60b5('0x23')](handleError(_0x5beeaa,null));};exports['show']=function(_0x2b44f1,_0x10592d){var _0x123f41={'raw':![],'where':{'id':_0x2b44f1['params']['id']}},_0x40da66={};_0x40da66['model']=_['keys'](db[_0x60b5('0x37')][_0x60b5('0x4d')]);_0x40da66['query']=_[_0x60b5('0x4e')](_0x2b44f1[_0x60b5('0x3b')]);_0x40da66['filters']=_[_0x60b5('0x3d')](_0x40da66[_0x60b5('0x3a')],_0x40da66['query']);_0x123f41['attributes']=_[_0x60b5('0x3d')](_0x40da66[_0x60b5('0x3a')],qs[_0x60b5('0x3f')](_0x2b44f1[_0x60b5('0x3b')][_0x60b5('0x3f')]));_0x123f41[_0x60b5('0x3e')]=_0x123f41[_0x60b5('0x3e')]['length']?_0x123f41['attributes']:_0x40da66[_0x60b5('0x3a')];if(_0x2b44f1[_0x60b5('0x3b')]['includeAll']){_0x123f41['include']=[{'all':!![]}];}_0x123f41=_['merge']({},_0x123f41,_0x2b44f1[_0x60b5('0x4f')]);return db[_0x60b5('0x37')][_0x60b5('0x50')](_0x123f41)[_0x60b5('0x18')](handleEntityNotFound(_0x10592d,null))[_0x60b5('0x18')](respondWithResult(_0x10592d,null))[_0x60b5('0x23')](handleError(_0x10592d,null));};exports[_0x60b5('0x51')]=function(_0x309531,_0x400168,_0x4d836b){var _0x1bbe61;return db[_0x60b5('0x37')][_0x60b5('0x51')](_0x309531[_0x60b5('0x52')],{'raw':!![]})['then'](function(_0x4ce9cb){_0x1bbe61=_0x4ce9cb;return db[_0x60b5('0x37')][_0x60b5('0x4b')]({'raw':!![]});})[_0x60b5('0x18')](function(_0x5bffa4){var _0xdc5e08=fs['readFileSync'](path[_0x60b5('0x53')](config[_0x60b5('0x54')],_0x60b5('0x55')),_0x60b5('0x56'));var _0x181126=ejs['render'](_0xdc5e08,{'contexts':_0x5bffa4||[]});fs[_0x60b5('0x57')](_0x60b5('0x58'),_0x181126);})[_0x60b5('0x18')](function(){return respondWithRpcPromise(_0x60b5('0x59'),_0x60b5('0x51'),{'module':_0x60b5('0x5a')});})[_0x60b5('0x18')](function(){var _0x4253cb=_0x309531[_0x60b5('0x5b')][_0x60b5('0x32')]({'plain':!![]});if(!_0x4253cb)throw new Error(_0x60b5('0x5c'));if(_0x4253cb['role']==='user'){var _0x311496=_0x1bbe61[_0x60b5('0x32')]({'plain':!![]});return db[_0x60b5('0x5d')][_0x60b5('0x50')]({'where':{'name':'Contexts','userProfileId':_0x4253cb[_0x60b5('0x5e')]},'raw':!![]})[_0x60b5('0x18')](function(_0x3bca70){if(_0x3bca70&&_0x3bca70[_0x60b5('0x5f')]===0x0){return db[_0x60b5('0x60')][_0x60b5('0x51')]({'name':_0x311496[_0x60b5('0x35')],'resourceId':_0x311496['id'],'type':_0x3bca70[_0x60b5('0x35')],'sectionId':_0x3bca70['id']},{})[_0x60b5('0x18')](function(){return _0x1bbe61;});}else{return _0x1bbe61;}})[_0x60b5('0x23')](function(_0x2b75bc){logger[_0x60b5('0x1f')](_0x60b5('0x61'),_0x2b75bc);throw _0x2b75bc;});}return _0x1bbe61;})[_0x60b5('0x18')](respondWithResult(_0x400168,0xc9))['catch'](handleError(_0x400168,null));};exports[_0x60b5('0x30')]=function(_0x57b0ba,_0x4427dc,_0x3de9cb){var _0x5c6410;return db[_0x60b5('0x37')]['find']({'where':{'id':_0x57b0ba[_0x60b5('0x62')]['id']}})[_0x60b5('0x18')](handleEntityNotFound(_0x4427dc,null))[_0x60b5('0x18')](saveUpdates(_0x57b0ba[_0x60b5('0x52')],null))[_0x60b5('0x18')](function(_0x419062){if(_0x419062){_0x5c6410=_0x419062;return db[_0x60b5('0x37')]['findAll']({'raw':!![]});}})[_0x60b5('0x18')](function(_0x226b0d){var _0xabdbc7=fs[_0x60b5('0x63')](path[_0x60b5('0x53')](config[_0x60b5('0x54')],_0x60b5('0x55')),'utf8');var _0x32aeb0=ejs['render'](_0xabdbc7,{'contexts':_0x226b0d||[]});fs[_0x60b5('0x57')](_0x60b5('0x58'),_0x32aeb0);})[_0x60b5('0x18')](function(){return respondWithRpcPromise(_0x60b5('0x59'),_0x60b5('0x30'),{'module':_0x60b5('0x5a')});})[_0x60b5('0x18')](function(){return _0x5c6410;})[_0x60b5('0x18')](respondWithResult(_0x4427dc,null))[_0x60b5('0x23')](handleError(_0x4427dc,null));};exports['destroy']=function(_0x280938,_0x471fc1,_0x444371){var _0x216bb3;return db[_0x60b5('0x37')]['find']({'where':{'id':_0x280938[_0x60b5('0x62')]['id']}})[_0x60b5('0x18')](handleEntityNotFound(_0x471fc1,null))[_0x60b5('0x18')](removeEntity(_0x471fc1,null))['then'](function(){return db[_0x60b5('0x37')][_0x60b5('0x4b')]({'raw':!![]});})[_0x60b5('0x18')](function(_0x3193d0){var _0x44dfab=fs[_0x60b5('0x63')](path[_0x60b5('0x53')](config[_0x60b5('0x54')],_0x60b5('0x55')),_0x60b5('0x56'));var _0x56ff63=ejs[_0x60b5('0x64')](_0x44dfab,{'contexts':_0x3193d0});fs['writeFileSync'](_0x60b5('0x58'),_0x56ff63);return respondWithRpcPromise(_0x60b5('0x59'),_0x60b5('0x31'),{'module':_0x60b5('0x5a')});})[_0x60b5('0x23')](handleError(_0x471fc1,null));};