Built motion from commit e02f907f.|2.6.14
[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 _0x9902=['autoAssociation','writeFileSync','Reload','render','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','apply','save','update','destroy','get','Contexts','UserProfileResource','stack','name','send','map','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','VoiceContext','includeAll','include','findAll','params','find','catch','create','body','join','root','server/files/templates/context.ejs','utf8','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId'];(function(_0x2dd390,_0x1bc894){var _0x3afe47=function(_0x42d8d3){while(--_0x42d8d3){_0x2dd390['push'](_0x2dd390['shift']());}};_0x3afe47(++_0x1bc894);}(_0x9902,0x6b));var _0x2990=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9902[_0x4cf98e];return _0x1623ac;};'use strict';var emlformat=require(_0x2990('0x0'));var rimraf=require(_0x2990('0x1'));var zipdir=require(_0x2990('0x2'));var jsonpatch=require(_0x2990('0x3'));var rp=require(_0x2990('0x4'));var moment=require('moment');var BPromise=require(_0x2990('0x5'));var Mustache=require(_0x2990('0x6'));var util=require(_0x2990('0x7'));var path=require(_0x2990('0x8'));var sox=require(_0x2990('0x9'));var csv=require(_0x2990('0xa'));var ejs=require(_0x2990('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2990('0xc'));var crypto=require(_0x2990('0xd'));var jsforce=require(_0x2990('0xe'));var deskjs=require(_0x2990('0xf'));var toCsv=require(_0x2990('0xa'));var querystring=require('querystring');var Papa=require(_0x2990('0x10'));var Redis=require(_0x2990('0x11'));var authService=require(_0x2990('0x12'));var qs=require(_0x2990('0x13'));var as=require(_0x2990('0x14'));var hardwareService=require(_0x2990('0x15'));var logger=require(_0x2990('0x16'))(_0x2990('0x17'));var utils=require(_0x2990('0x18'));var config=require(_0x2990('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x2990('0x1a'))['db'];var jayson=require(_0x2990('0x1b'));var client=jayson['client'][_0x2990('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x5d1e44,_0x94d61f,_0x3220d0,_0x179974){return new BPromise(function(_0x5c7a82,_0xc2370a){var _0x4b666f=_0x179974||client;return _0x4b666f[_0x2990('0x1d')](_0x5d1e44,_0x3220d0)[_0x2990('0x1e')](function(_0x9a6f42){logger[_0x2990('0x1f')](_0x2990('0x20'),_0x94d61f,_0x2990('0x21'));logger[_0x2990('0x22')](_0x2990('0x23'),_0x94d61f,'request\x20sent',JSON[_0x2990('0x24')](_0x9a6f42));if(_0x9a6f42[_0x2990('0x25')]){if(_0x9a6f42[_0x2990('0x25')]['code']===0x1f4){logger['error'](_0x2990('0x20'),_0x94d61f,_0x9a6f42[_0x2990('0x25')][_0x2990('0x26')]);return _0xc2370a(_0x9a6f42['error'][_0x2990('0x26')]);}logger[_0x2990('0x25')](_0x2990('0x20'),_0x94d61f,_0x9a6f42[_0x2990('0x25')]['message']);return _0x5c7a82(_0x9a6f42[_0x2990('0x25')][_0x2990('0x26')]);}else{logger[_0x2990('0x1f')](_0x2990('0x20'),_0x94d61f,_0x2990('0x21'));_0x5c7a82(_0x9a6f42[_0x2990('0x27')][_0x2990('0x26')]);}})['catch'](function(_0x44ebbe){logger[_0x2990('0x25')](_0x2990('0x20'),_0x94d61f,_0x44ebbe);_0xc2370a(_0x44ebbe);});});}function respondWithStatusCode(_0x47b8c8,_0x10c6c8){_0x10c6c8=_0x10c6c8||0xcc;return function(_0x1e0b59){if(_0x1e0b59){return _0x47b8c8[_0x2990('0x28')](_0x10c6c8);}return _0x47b8c8[_0x2990('0x29')](_0x10c6c8)[_0x2990('0x2a')]();};}function respondWithResult(_0x2a65d5,_0x18cb9f){_0x18cb9f=_0x18cb9f||0xc8;return function(_0x157278){if(_0x157278){return _0x2a65d5[_0x2990('0x29')](_0x18cb9f)['json'](_0x157278);}};}function respondWithFilteredResult(_0x26a709,_0x5d31d1){return function(_0x31d0cc){if(_0x31d0cc){var _0x37d9a4=typeof _0x5d31d1['offset']===_0x2990('0x2b')&&typeof _0x5d31d1['limit']===_0x2990('0x2b');var _0x4cd9cf=_0x31d0cc[_0x2990('0x2c')];var _0x37773b=_0x37d9a4?0x0:_0x5d31d1['offset'];var _0x30d9ee=_0x37d9a4?_0x31d0cc['count']:_0x5d31d1[_0x2990('0x2d')]+_0x5d31d1[_0x2990('0x2e')];var _0x34c46c;if(_0x30d9ee>=_0x4cd9cf){_0x30d9ee=_0x4cd9cf;_0x34c46c=0xc8;}else{_0x34c46c=0xce;}_0x26a709[_0x2990('0x29')](_0x34c46c);return _0x26a709[_0x2990('0x2f')](_0x2990('0x30'),_0x37773b+'-'+_0x30d9ee+'/'+_0x4cd9cf)['json'](_0x31d0cc);}return null;};}function patchUpdates(_0xe72de4){return function(_0x116568){try{jsonpatch[_0x2990('0x31')](_0x116568,_0xe72de4,!![]);}catch(_0x1a5af7){return BPromise['reject'](_0x1a5af7);}return _0x116568[_0x2990('0x32')]();};}function saveUpdates(_0xcea7e2,_0x48629d){return function(_0x50c8d2){if(_0x50c8d2){return _0x50c8d2[_0x2990('0x33')](_0xcea7e2)[_0x2990('0x1e')](function(_0x25e60b){return _0x25e60b;});}return null;};}function removeEntity(_0x14fa35,_0x33276c){return function(_0x25bf9e){if(_0x25bf9e){return _0x25bf9e[_0x2990('0x34')]()[_0x2990('0x1e')](function(){var _0x467cb0=_0x25bf9e[_0x2990('0x35')]({'plain':!![]});var _0x1ecb5f=_0x2990('0x36');return db[_0x2990('0x37')]['destroy']({'where':{'type':_0x1ecb5f,'resourceId':_0x467cb0['id']}})[_0x2990('0x1e')](function(){return _0x25bf9e;});})['then'](function(){_0x14fa35['status'](0xcc)[_0x2990('0x2a')]();});}};}function handleEntityNotFound(_0x52df79,_0x530581){return function(_0x4e4797){if(!_0x4e4797){_0x52df79[_0x2990('0x28')](0x194);}return _0x4e4797;};}function handleError(_0xf58ec4,_0x1c4108){_0x1c4108=_0x1c4108||0x1f4;return function(_0x5170ab){logger['error'](_0x5170ab[_0x2990('0x38')]);if(_0x5170ab[_0x2990('0x39')]){delete _0x5170ab[_0x2990('0x39')];}_0xf58ec4[_0x2990('0x29')](_0x1c4108)[_0x2990('0x3a')](_0x5170ab);};}exports['index']=function(_0x20e735,_0x1aa686){var _0x3c4f7e={},_0x48bd1d={},_0x5f04f6={'count':0x0,'rows':[]};var _0x43ec0a=_[_0x2990('0x3b')](db['VoiceContext'][_0x2990('0x3c')],function(_0x536a9b){return{'name':_0x536a9b[_0x2990('0x3d')],'type':_0x536a9b['type']['key']};});_0x48bd1d['model']=_[_0x2990('0x3b')](_0x43ec0a,'name');_0x48bd1d[_0x2990('0x3e')]=_[_0x2990('0x3f')](_0x20e735[_0x2990('0x3e')]);_0x48bd1d[_0x2990('0x40')]=_[_0x2990('0x41')](_0x48bd1d[_0x2990('0x42')],_0x48bd1d['query']);_0x3c4f7e[_0x2990('0x43')]=_[_0x2990('0x41')](_0x48bd1d[_0x2990('0x42')],qs[_0x2990('0x44')](_0x20e735[_0x2990('0x3e')][_0x2990('0x44')]));_0x3c4f7e[_0x2990('0x43')]=_0x3c4f7e[_0x2990('0x43')][_0x2990('0x45')]?_0x3c4f7e[_0x2990('0x43')]:_0x48bd1d[_0x2990('0x42')];if(!_0x20e735[_0x2990('0x3e')]['hasOwnProperty'](_0x2990('0x46'))){_0x3c4f7e[_0x2990('0x2e')]=qs[_0x2990('0x2e')](_0x20e735[_0x2990('0x3e')][_0x2990('0x2e')]);_0x3c4f7e[_0x2990('0x2d')]=qs[_0x2990('0x2d')](_0x20e735[_0x2990('0x3e')][_0x2990('0x2d')]);}_0x3c4f7e[_0x2990('0x47')]=qs[_0x2990('0x48')](_0x20e735['query'][_0x2990('0x48')]);_0x3c4f7e[_0x2990('0x49')]=qs[_0x2990('0x40')](_[_0x2990('0x4a')](_0x20e735[_0x2990('0x3e')],_0x48bd1d[_0x2990('0x40')]),_0x43ec0a);if(_0x20e735[_0x2990('0x3e')][_0x2990('0x4b')]){_0x3c4f7e['where']=_[_0x2990('0x4c')](_0x3c4f7e[_0x2990('0x49')],{'$or':_[_0x2990('0x3b')](_0x43ec0a,function(_0x5cdf11){if(_0x5cdf11[_0x2990('0x4d')]!==_0x2990('0x4e')){var _0x2460b6={};_0x2460b6[_0x5cdf11[_0x2990('0x39')]]={'$like':'%'+_0x20e735[_0x2990('0x3e')][_0x2990('0x4b')]+'%'};return _0x2460b6;}})});}_0x3c4f7e=_[_0x2990('0x4c')]({},_0x3c4f7e,_0x20e735[_0x2990('0x4f')]);var _0x43819e={'where':_0x3c4f7e[_0x2990('0x49')]};return db[_0x2990('0x50')]['count'](_0x43819e)[_0x2990('0x1e')](function(_0x44435b){_0x5f04f6[_0x2990('0x2c')]=_0x44435b;if(_0x20e735[_0x2990('0x3e')][_0x2990('0x51')]){_0x3c4f7e[_0x2990('0x52')]=[{'all':!![]}];}return db[_0x2990('0x50')][_0x2990('0x53')](_0x3c4f7e);})[_0x2990('0x1e')](function(_0x55d244){_0x5f04f6['rows']=_0x55d244;return _0x5f04f6;})[_0x2990('0x1e')](respondWithFilteredResult(_0x1aa686,_0x3c4f7e))['catch'](handleError(_0x1aa686,null));};exports['show']=function(_0x248c4c,_0x45903e){var _0x11ec8f={'raw':![],'where':{'id':_0x248c4c[_0x2990('0x54')]['id']}},_0x5ca86b={};_0x5ca86b['model']=_[_0x2990('0x3f')](db[_0x2990('0x50')][_0x2990('0x3c')]);_0x5ca86b[_0x2990('0x3e')]=_['keys'](_0x248c4c[_0x2990('0x3e')]);_0x5ca86b[_0x2990('0x40')]=_[_0x2990('0x41')](_0x5ca86b[_0x2990('0x42')],_0x5ca86b['query']);_0x11ec8f[_0x2990('0x43')]=_[_0x2990('0x41')](_0x5ca86b[_0x2990('0x42')],qs[_0x2990('0x44')](_0x248c4c['query'][_0x2990('0x44')]));_0x11ec8f[_0x2990('0x43')]=_0x11ec8f[_0x2990('0x43')][_0x2990('0x45')]?_0x11ec8f[_0x2990('0x43')]:_0x5ca86b[_0x2990('0x42')];if(_0x248c4c['query'][_0x2990('0x51')]){_0x11ec8f[_0x2990('0x52')]=[{'all':!![]}];}_0x11ec8f=_[_0x2990('0x4c')]({},_0x11ec8f,_0x248c4c[_0x2990('0x4f')]);return db[_0x2990('0x50')][_0x2990('0x55')](_0x11ec8f)['then'](handleEntityNotFound(_0x45903e,null))[_0x2990('0x1e')](respondWithResult(_0x45903e,null))[_0x2990('0x56')](handleError(_0x45903e,null));};exports[_0x2990('0x57')]=function(_0x2c37c5,_0x345b4c,_0xab0570){var _0x143787;return db[_0x2990('0x50')][_0x2990('0x57')](_0x2c37c5[_0x2990('0x58')],{'raw':!![]})[_0x2990('0x1e')](function(_0x56b993){_0x143787=_0x56b993;return db['VoiceContext'][_0x2990('0x53')]({'raw':!![]});})[_0x2990('0x1e')](function(_0x1b916d){var _0x4a9fe7=fs['readFileSync'](path[_0x2990('0x59')](config[_0x2990('0x5a')],_0x2990('0x5b')),_0x2990('0x5c'));var _0x2bacaf=ejs['render'](_0x4a9fe7,{'contexts':_0x1b916d||[]});fs['writeFileSync'](_0x2990('0x5d'),_0x2bacaf);})[_0x2990('0x1e')](function(){return respondWithRpcPromise('Reload',_0x2990('0x57'),{'module':_0x2990('0x5e')});})[_0x2990('0x1e')](function(){var _0x1829dd=_0x2c37c5[_0x2990('0x5f')]['get']({'plain':!![]});if(!_0x1829dd)throw new Error(_0x2990('0x60'));if(_0x1829dd['role']===_0x2990('0x5f')){var _0x259e1c=_0x143787[_0x2990('0x35')]({'plain':!![]});return db[_0x2990('0x61')][_0x2990('0x55')]({'where':{'name':_0x2990('0x36'),'userProfileId':_0x1829dd[_0x2990('0x62')]},'raw':!![]})['then'](function(_0x1ccb85){if(_0x1ccb85&&_0x1ccb85[_0x2990('0x63')]===0x0){return db[_0x2990('0x37')][_0x2990('0x57')]({'name':_0x259e1c[_0x2990('0x39')],'resourceId':_0x259e1c['id'],'type':_0x1ccb85[_0x2990('0x39')],'sectionId':_0x1ccb85['id']},{})['then'](function(){return _0x143787;});}else{return _0x143787;}})[_0x2990('0x56')](function(_0x3d8828){logger[_0x2990('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d8828);throw _0x3d8828;});}return _0x143787;})[_0x2990('0x1e')](respondWithResult(_0x345b4c,0xc9))['catch'](handleError(_0x345b4c,null));};exports['update']=function(_0x4b7337,_0x4b088f,_0x183958){var _0xafc11f;return db[_0x2990('0x50')]['find']({'where':{'id':_0x4b7337[_0x2990('0x54')]['id']}})[_0x2990('0x1e')](handleEntityNotFound(_0x4b088f,null))['then'](saveUpdates(_0x4b7337[_0x2990('0x58')],null))['then'](function(_0x47b3c8){if(_0x47b3c8){_0xafc11f=_0x47b3c8;return db['VoiceContext'][_0x2990('0x53')]({'raw':!![]});}})[_0x2990('0x1e')](function(_0x22958a){var _0xe74810=fs['readFileSync'](path[_0x2990('0x59')](config['root'],_0x2990('0x5b')),_0x2990('0x5c'));var _0x43abf4=ejs['render'](_0xe74810,{'contexts':_0x22958a||[]});fs[_0x2990('0x64')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x43abf4);})['then'](function(){return respondWithRpcPromise(_0x2990('0x65'),_0x2990('0x33'),{'module':_0x2990('0x5e')});})[_0x2990('0x1e')](function(){return _0xafc11f;})[_0x2990('0x1e')](respondWithResult(_0x4b088f,null))[_0x2990('0x56')](handleError(_0x4b088f,null));};exports[_0x2990('0x34')]=function(_0x21e8f8,_0x235b5f,_0x473eba){var _0x3e5f7a;return db[_0x2990('0x50')][_0x2990('0x55')]({'where':{'id':_0x21e8f8[_0x2990('0x54')]['id']}})[_0x2990('0x1e')](handleEntityNotFound(_0x235b5f,null))[_0x2990('0x1e')](removeEntity(_0x235b5f,null))['then'](function(){return db[_0x2990('0x50')][_0x2990('0x53')]({'raw':!![]});})[_0x2990('0x1e')](function(_0x2132a5){var _0x4e70ab=fs['readFileSync'](path[_0x2990('0x59')](config['root'],_0x2990('0x5b')),'utf8');var _0x609d0b=ejs[_0x2990('0x66')](_0x4e70ab,{'contexts':_0x2132a5});fs['writeFileSync'](_0x2990('0x5d'),_0x609d0b);return respondWithRpcPromise('Reload',_0x2990('0x34'),{'module':_0x2990('0x5e')});})['catch'](handleError(_0x235b5f,null));};