Built motion from commit (unavailable).|2.5.20
[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 _0xe148=['set','Content-Range','json','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','params','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','/etc/asterisk/extensions_xcally_contexts.conf','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','request','then','info','request\x20sent','debug','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','count','limit'];(function(_0x28c199,_0x157400){var _0x30628c=function(_0x14e116){while(--_0x14e116){_0x28c199['push'](_0x28c199['shift']());}};_0x30628c(++_0x157400);}(_0xe148,0x9e));var _0x8e14=function(_0x11b58d,_0x555c55){_0x11b58d=_0x11b58d-0x0;var _0xc2811b=_0xe148[_0x11b58d];return _0xc2811b;};'use strict';var pdf=require(_0x8e14('0x0'));var emlformat=require(_0x8e14('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x8e14('0x2'));var jsonpatch=require(_0x8e14('0x3'));var rp=require('request-promise');var moment=require(_0x8e14('0x4'));var BPromise=require(_0x8e14('0x5'));var Mustache=require(_0x8e14('0x6'));var util=require(_0x8e14('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x8e14('0x8'));var ejs=require(_0x8e14('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8e14('0xa'));var crypto=require(_0x8e14('0xb'));var jsforce=require(_0x8e14('0xc'));var deskjs=require(_0x8e14('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8e14('0xe'));var Papa=require('papaparse');var Redis=require(_0x8e14('0xf'));var authService=require(_0x8e14('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8e14('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8e14('0x12'));var utils=require(_0x8e14('0x13'));var config=require(_0x8e14('0x14'));var licenseUtil=require(_0x8e14('0x15'));var db=require('../../mysqldb')['db'];var jayson=require(_0x8e14('0x16'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2f5fc7,_0x5d85ce,_0x29a2b4,_0x4e1223){return new BPromise(function(_0x59e069,_0x4f36a5){var _0x1f9b2c=_0x4e1223||client;return _0x1f9b2c[_0x8e14('0x17')](_0x2f5fc7,_0x29a2b4)[_0x8e14('0x18')](function(_0x128217){logger[_0x8e14('0x19')]('VoiceContext,\x20%s,\x20%s',_0x5d85ce,_0x8e14('0x1a'));logger[_0x8e14('0x1b')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x5d85ce,_0x8e14('0x1a'),JSON[_0x8e14('0x1c')](_0x128217));if(_0x128217[_0x8e14('0x1d')]){if(_0x128217[_0x8e14('0x1d')][_0x8e14('0x1e')]===0x1f4){logger[_0x8e14('0x1d')](_0x8e14('0x1f'),_0x5d85ce,_0x128217[_0x8e14('0x1d')][_0x8e14('0x20')]);return _0x4f36a5(_0x128217[_0x8e14('0x1d')]['message']);}logger[_0x8e14('0x1d')](_0x8e14('0x1f'),_0x5d85ce,_0x128217['error'][_0x8e14('0x20')]);return _0x59e069(_0x128217[_0x8e14('0x1d')][_0x8e14('0x20')]);}else{logger['info'](_0x8e14('0x1f'),_0x5d85ce,_0x8e14('0x1a'));_0x59e069(_0x128217[_0x8e14('0x21')]['message']);}})[_0x8e14('0x22')](function(_0x4a72b6){logger['error'](_0x8e14('0x1f'),_0x5d85ce,_0x4a72b6);_0x4f36a5(_0x4a72b6);});});}function respondWithStatusCode(_0x2b7ff5,_0x1244d3){_0x1244d3=_0x1244d3||0xcc;return function(_0x52b041){if(_0x52b041){return _0x2b7ff5[_0x8e14('0x23')](_0x1244d3);}return _0x2b7ff5[_0x8e14('0x24')](_0x1244d3)[_0x8e14('0x25')]();};}function respondWithResult(_0x405d27,_0x5a0860){_0x5a0860=_0x5a0860||0xc8;return function(_0x28ee4a){if(_0x28ee4a){return _0x405d27['status'](_0x5a0860)['json'](_0x28ee4a);}};}function respondWithFilteredResult(_0x2ad93d,_0x43b6db){return function(_0x356200){if(_0x356200){var _0x58991b=_0x356200[_0x8e14('0x26')],_0x3e68f5=_0x43b6db['offset'],_0x31aaa6=_0x43b6db['offset']+_0x43b6db[_0x8e14('0x27')],_0x140248;if(_0x31aaa6>=_0x58991b){_0x31aaa6=_0x58991b;_0x140248=0xc8;}else{_0x140248=0xce;}_0x2ad93d[_0x8e14('0x24')](_0x140248);return _0x2ad93d[_0x8e14('0x28')](_0x8e14('0x29'),_0x3e68f5+'-'+_0x31aaa6+'/'+_0x58991b)[_0x8e14('0x2a')](_0x356200);}return null;};}function patchUpdates(_0x21d9c8){return function(_0x4116f5){try{jsonpatch['apply'](_0x4116f5,_0x21d9c8,!![]);}catch(_0x337138){return BPromise[_0x8e14('0x2b')](_0x337138);}return _0x4116f5[_0x8e14('0x2c')]();};}function saveUpdates(_0x179e3b,_0x4cc4a8){return function(_0x1382da){if(_0x1382da){return _0x1382da[_0x8e14('0x2d')](_0x179e3b)[_0x8e14('0x18')](function(_0x25c0f0){return _0x25c0f0;});}return null;};}function removeEntity(_0x1b3efd,_0x2a0729){return function(_0x14ca1d){if(_0x14ca1d){return _0x14ca1d[_0x8e14('0x2e')]()[_0x8e14('0x18')](function(){var _0xa6b8d=_0x14ca1d[_0x8e14('0x2f')]({'plain':!![]});var _0x4afcda=_0x8e14('0x30');return db[_0x8e14('0x31')][_0x8e14('0x2e')]({'where':{'type':_0x4afcda,'resourceId':_0xa6b8d['id']}})['then'](function(){return _0x14ca1d;});})['then'](function(){_0x1b3efd[_0x8e14('0x24')](0xcc)[_0x8e14('0x25')]();});}};}function handleEntityNotFound(_0x50ba81,_0x1d10a2){return function(_0x18901d){if(!_0x18901d){_0x50ba81['sendStatus'](0x194);}return _0x18901d;};}function handleError(_0x12d2c0,_0x49603e){_0x49603e=_0x49603e||0x1f4;return function(_0x70225c){logger[_0x8e14('0x1d')](_0x70225c[_0x8e14('0x32')]);if(_0x70225c[_0x8e14('0x33')]){delete _0x70225c['name'];}_0x12d2c0[_0x8e14('0x24')](_0x49603e)[_0x8e14('0x34')](_0x70225c);};}exports[_0x8e14('0x35')]=function(_0x5b2827,_0x2a4f12){var _0xb3318d={},_0x1770ee={},_0x5cb8f0={'count':0x0,'rows':[]};var _0x3d1558=_[_0x8e14('0x36')](db[_0x8e14('0x37')][_0x8e14('0x38')],function(_0x57b111){return{'name':_0x57b111[_0x8e14('0x39')],'type':_0x57b111[_0x8e14('0x3a')]['key']};});_0x1770ee[_0x8e14('0x3b')]=_[_0x8e14('0x36')](_0x3d1558,_0x8e14('0x33'));_0x1770ee[_0x8e14('0x3c')]=_[_0x8e14('0x3d')](_0x5b2827[_0x8e14('0x3c')]);_0x1770ee[_0x8e14('0x3e')]=_[_0x8e14('0x3f')](_0x1770ee['model'],_0x1770ee['query']);_0xb3318d['attributes']=_[_0x8e14('0x3f')](_0x1770ee['model'],qs[_0x8e14('0x40')](_0x5b2827[_0x8e14('0x3c')][_0x8e14('0x40')]));_0xb3318d['attributes']=_0xb3318d[_0x8e14('0x41')][_0x8e14('0x42')]?_0xb3318d['attributes']:_0x1770ee[_0x8e14('0x3b')];if(!_0x5b2827[_0x8e14('0x3c')][_0x8e14('0x43')](_0x8e14('0x44'))){_0xb3318d[_0x8e14('0x27')]=qs[_0x8e14('0x27')](_0x5b2827[_0x8e14('0x3c')][_0x8e14('0x27')]);_0xb3318d[_0x8e14('0x45')]=qs[_0x8e14('0x45')](_0x5b2827['query'][_0x8e14('0x45')]);}_0xb3318d['order']=qs[_0x8e14('0x46')](_0x5b2827['query'][_0x8e14('0x46')]);_0xb3318d[_0x8e14('0x47')]=qs[_0x8e14('0x3e')](_['pick'](_0x5b2827[_0x8e14('0x3c')],_0x1770ee[_0x8e14('0x3e')]),_0x3d1558);if(_0x5b2827['query'][_0x8e14('0x48')]){_0xb3318d[_0x8e14('0x47')]=_['merge'](_0xb3318d[_0x8e14('0x47')],{'$or':_[_0x8e14('0x36')](_0x3d1558,function(_0x417335){if(_0x417335['type']!==_0x8e14('0x49')){var _0x175958={};_0x175958[_0x417335[_0x8e14('0x33')]]={'$like':'%'+_0x5b2827[_0x8e14('0x3c')][_0x8e14('0x48')]+'%'};return _0x175958;}})});}_0xb3318d=_[_0x8e14('0x4a')]({},_0xb3318d,_0x5b2827[_0x8e14('0x4b')]);var _0x1e5e78={'where':_0xb3318d['where']};return db[_0x8e14('0x37')][_0x8e14('0x26')](_0x1e5e78)['then'](function(_0x45ce12){_0x5cb8f0[_0x8e14('0x26')]=_0x45ce12;if(_0x5b2827[_0x8e14('0x3c')][_0x8e14('0x4c')]){_0xb3318d[_0x8e14('0x4d')]=[{'all':!![]}];}return db['VoiceContext'][_0x8e14('0x4e')](_0xb3318d);})[_0x8e14('0x18')](function(_0x34c732){_0x5cb8f0['rows']=_0x34c732;return _0x5cb8f0;})[_0x8e14('0x18')](respondWithFilteredResult(_0x2a4f12,_0xb3318d))[_0x8e14('0x22')](handleError(_0x2a4f12,null));};exports['show']=function(_0x23e0d8,_0x398f66){var _0x566407={'raw':![],'where':{'id':_0x23e0d8[_0x8e14('0x4f')]['id']}},_0x3b489d={};_0x3b489d['model']=_[_0x8e14('0x3d')](db[_0x8e14('0x37')][_0x8e14('0x38')]);_0x3b489d[_0x8e14('0x3c')]=_['keys'](_0x23e0d8[_0x8e14('0x3c')]);_0x3b489d['filters']=_[_0x8e14('0x3f')](_0x3b489d[_0x8e14('0x3b')],_0x3b489d[_0x8e14('0x3c')]);_0x566407[_0x8e14('0x41')]=_['intersection'](_0x3b489d[_0x8e14('0x3b')],qs[_0x8e14('0x40')](_0x23e0d8['query']['fields']));_0x566407[_0x8e14('0x41')]=_0x566407[_0x8e14('0x41')]['length']?_0x566407['attributes']:_0x3b489d[_0x8e14('0x3b')];if(_0x23e0d8[_0x8e14('0x3c')][_0x8e14('0x4c')]){_0x566407[_0x8e14('0x4d')]=[{'all':!![]}];}_0x566407=_[_0x8e14('0x4a')]({},_0x566407,_0x23e0d8[_0x8e14('0x4b')]);return db[_0x8e14('0x37')]['find'](_0x566407)[_0x8e14('0x18')](handleEntityNotFound(_0x398f66,null))[_0x8e14('0x18')](respondWithResult(_0x398f66,null))[_0x8e14('0x22')](handleError(_0x398f66,null));};exports[_0x8e14('0x50')]=function(_0x592db9,_0x2a6ef3,_0x59c048){var _0x2e230f;return db[_0x8e14('0x37')]['create'](_0x592db9[_0x8e14('0x51')],{'raw':!![]})['then'](function(_0xc81c06){_0x2e230f=_0xc81c06;return db['VoiceContext'][_0x8e14('0x4e')]({'raw':!![]});})[_0x8e14('0x18')](function(_0x11f053){var _0x6cb9da=fs[_0x8e14('0x52')](path[_0x8e14('0x53')](config[_0x8e14('0x54')],_0x8e14('0x55')),_0x8e14('0x56'));var _0x187832=ejs[_0x8e14('0x57')](_0x6cb9da,{'contexts':_0x11f053||[]});fs[_0x8e14('0x58')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x187832);})[_0x8e14('0x18')](function(){return respondWithRpcPromise(_0x8e14('0x59'),_0x8e14('0x50'),{'module':_0x8e14('0x5a')});})['then'](function(){var _0x406393=_0x592db9[_0x8e14('0x5b')]['get']({'plain':!![]});if(!_0x406393)throw new Error(_0x8e14('0x5c'));if(_0x406393['role']===_0x8e14('0x5b')){var _0x3e104e=_0x2e230f[_0x8e14('0x2f')]({'plain':!![]});return db[_0x8e14('0x5d')][_0x8e14('0x5e')]({'where':{'name':_0x8e14('0x30'),'userProfileId':_0x406393[_0x8e14('0x5f')]},'raw':!![]})[_0x8e14('0x18')](function(_0x5e9f73){if(_0x5e9f73&&_0x5e9f73[_0x8e14('0x60')]===0x0){return db['UserProfileResource'][_0x8e14('0x50')]({'name':_0x3e104e[_0x8e14('0x33')],'resourceId':_0x3e104e['id'],'type':_0x5e9f73[_0x8e14('0x33')],'sectionId':_0x5e9f73['id']},{})[_0x8e14('0x18')](function(){return _0x2e230f;});}else{return _0x2e230f;}})[_0x8e14('0x22')](function(_0x324dea){logger[_0x8e14('0x1d')](_0x8e14('0x61'),_0x324dea);throw _0x324dea;});}return _0x2e230f;})[_0x8e14('0x18')](respondWithResult(_0x2a6ef3,0xc9))[_0x8e14('0x22')](handleError(_0x2a6ef3,null));};exports[_0x8e14('0x2d')]=function(_0x3f0043,_0x485f15,_0x5d52cb){var _0x257c0c;return db[_0x8e14('0x37')]['find']({'where':{'id':_0x3f0043[_0x8e14('0x4f')]['id']}})['then'](handleEntityNotFound(_0x485f15,null))[_0x8e14('0x18')](saveUpdates(_0x3f0043[_0x8e14('0x51')],null))[_0x8e14('0x18')](function(_0x1fd66a){if(_0x1fd66a){_0x257c0c=_0x1fd66a;return db[_0x8e14('0x37')][_0x8e14('0x4e')]({'raw':!![]});}})['then'](function(_0x2fbe0d){var _0x3b7c1c=fs[_0x8e14('0x52')](path[_0x8e14('0x53')](config[_0x8e14('0x54')],'server/files/templates/context.ejs'),_0x8e14('0x56'));var _0x2e2766=ejs[_0x8e14('0x57')](_0x3b7c1c,{'contexts':_0x2fbe0d||[]});fs[_0x8e14('0x58')](_0x8e14('0x62'),_0x2e2766);})[_0x8e14('0x18')](function(){return respondWithRpcPromise(_0x8e14('0x59'),_0x8e14('0x2d'),{'module':_0x8e14('0x5a')});})[_0x8e14('0x18')](function(){return _0x257c0c;})[_0x8e14('0x18')](respondWithResult(_0x485f15,null))['catch'](handleError(_0x485f15,null));};exports['destroy']=function(_0x7ad8dc,_0x57036f,_0x47c83e){var _0x48c0d3;return db[_0x8e14('0x37')]['find']({'where':{'id':_0x7ad8dc[_0x8e14('0x4f')]['id']}})['then'](handleEntityNotFound(_0x57036f,null))['then'](removeEntity(_0x57036f,null))[_0x8e14('0x18')](function(){return db[_0x8e14('0x37')][_0x8e14('0x4e')]({'raw':!![]});})[_0x8e14('0x18')](function(_0x2feb4f){var _0xe2514d=fs['readFileSync'](path[_0x8e14('0x53')](config[_0x8e14('0x54')],_0x8e14('0x55')),'utf8');var _0x3f79c6=ejs[_0x8e14('0x57')](_0xe2514d,{'contexts':_0x2feb4f});fs[_0x8e14('0x58')](_0x8e14('0x62'),_0x3f79c6);return respondWithRpcPromise(_0x8e14('0x59'),_0x8e14('0x2e'),{'module':_0x8e14('0x5a')});})[_0x8e14('0x22')](handleError(_0x57036f,null));};