Built motion from commit (unavailable).|2.5.18
[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 _0xa900=['send','map','VoiceContext','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','includeAll','include','findAll','rows','params','options','find','create','body','join','server/files/templates/context.ejs','utf8','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','root','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','render','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','name'];(function(_0x22093a,_0xa7acf1){var _0x2f4989=function(_0x5bf12b){while(--_0x5bf12b){_0x22093a['push'](_0x22093a['shift']());}};_0x2f4989(++_0xa7acf1);}(_0xa900,0x101));var _0x0a90=function(_0x4ab866,_0x40e607){_0x4ab866=_0x4ab866-0x0;var _0x56047a=_0xa900[_0x4ab866];return _0x56047a;};'use strict';var pdf=require(_0x0a90('0x0'));var emlformat=require(_0x0a90('0x1'));var rimraf=require(_0x0a90('0x2'));var zipdir=require(_0x0a90('0x3'));var jsonpatch=require(_0x0a90('0x4'));var rp=require(_0x0a90('0x5'));var moment=require('moment');var BPromise=require(_0x0a90('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x0a90('0x7'));var sox=require(_0x0a90('0x8'));var csv=require(_0x0a90('0x9'));var ejs=require(_0x0a90('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x0a90('0xb'));var crypto=require(_0x0a90('0xc'));var jsforce=require(_0x0a90('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x0a90('0x9'));var querystring=require(_0x0a90('0xe'));var Papa=require(_0x0a90('0xf'));var Redis=require('ioredis');var authService=require(_0x0a90('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0a90('0x11'));var hardwareService=require(_0x0a90('0x12'));var logger=require('../../config/logger')(_0x0a90('0x13'));var utils=require(_0x0a90('0x14'));var config=require(_0x0a90('0x15'));var licenseUtil=require(_0x0a90('0x16'));var db=require(_0x0a90('0x17'))['db'];var jayson=require(_0x0a90('0x18'));var client=jayson[_0x0a90('0x19')][_0x0a90('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x347fd6,_0x1400fa,_0x3c405a,_0x391bd7){return new BPromise(function(_0x1f0dca,_0x50dfee){var _0x5ad3d2=_0x391bd7||client;return _0x5ad3d2[_0x0a90('0x1b')](_0x347fd6,_0x3c405a)[_0x0a90('0x1c')](function(_0x44237d){logger[_0x0a90('0x1d')](_0x0a90('0x1e'),_0x1400fa,_0x0a90('0x1f'));logger[_0x0a90('0x20')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x1400fa,_0x0a90('0x1f'),JSON[_0x0a90('0x21')](_0x44237d));if(_0x44237d['error']){if(_0x44237d[_0x0a90('0x22')][_0x0a90('0x23')]===0x1f4){logger[_0x0a90('0x22')](_0x0a90('0x1e'),_0x1400fa,_0x44237d[_0x0a90('0x22')][_0x0a90('0x24')]);return _0x50dfee(_0x44237d['error'][_0x0a90('0x24')]);}logger[_0x0a90('0x22')](_0x0a90('0x1e'),_0x1400fa,_0x44237d['error']['message']);return _0x1f0dca(_0x44237d[_0x0a90('0x22')]['message']);}else{logger[_0x0a90('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x1400fa,_0x0a90('0x1f'));_0x1f0dca(_0x44237d[_0x0a90('0x25')][_0x0a90('0x24')]);}})[_0x0a90('0x26')](function(_0x2aa18d){logger[_0x0a90('0x22')](_0x0a90('0x1e'),_0x1400fa,_0x2aa18d);_0x50dfee(_0x2aa18d);});});}function respondWithStatusCode(_0x1b2e71,_0x2c3431){_0x2c3431=_0x2c3431||0xcc;return function(_0x228279){if(_0x228279){return _0x1b2e71[_0x0a90('0x27')](_0x2c3431);}return _0x1b2e71[_0x0a90('0x28')](_0x2c3431)[_0x0a90('0x29')]();};}function respondWithResult(_0x10e621,_0x569dc3){_0x569dc3=_0x569dc3||0xc8;return function(_0x47411a){if(_0x47411a){return _0x10e621[_0x0a90('0x28')](_0x569dc3)[_0x0a90('0x2a')](_0x47411a);}};}function respondWithFilteredResult(_0x2d2285,_0x5261e7){return function(_0x1711e2){if(_0x1711e2){var _0xba44e=_0x1711e2[_0x0a90('0x2b')],_0x74f558=_0x5261e7[_0x0a90('0x2c')],_0x328294=_0x5261e7[_0x0a90('0x2c')]+_0x5261e7[_0x0a90('0x2d')],_0xe4729b;if(_0x328294>=_0xba44e){_0x328294=_0xba44e;_0xe4729b=0xc8;}else{_0xe4729b=0xce;}_0x2d2285[_0x0a90('0x28')](_0xe4729b);return _0x2d2285['set'](_0x0a90('0x2e'),_0x74f558+'-'+_0x328294+'/'+_0xba44e)[_0x0a90('0x2a')](_0x1711e2);}return null;};}function patchUpdates(_0x26f9cb){return function(_0x5d7ce4){try{jsonpatch[_0x0a90('0x2f')](_0x5d7ce4,_0x26f9cb,!![]);}catch(_0x5eea8a){return BPromise[_0x0a90('0x30')](_0x5eea8a);}return _0x5d7ce4[_0x0a90('0x31')]();};}function saveUpdates(_0x52a28f,_0x18beba){return function(_0x4a6880){if(_0x4a6880){return _0x4a6880[_0x0a90('0x32')](_0x52a28f)['then'](function(_0x193991){return _0x193991;});}return null;};}function removeEntity(_0x152a80,_0x33ecc4){return function(_0x25f913){if(_0x25f913){return _0x25f913[_0x0a90('0x33')]()[_0x0a90('0x1c')](function(){var _0x2d1e90=_0x25f913[_0x0a90('0x34')]({'plain':!![]});var _0x4062c3='Contexts';return db[_0x0a90('0x35')][_0x0a90('0x33')]({'where':{'type':_0x4062c3,'resourceId':_0x2d1e90['id']}})['then'](function(){return _0x25f913;});})['then'](function(){_0x152a80[_0x0a90('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e4f69,_0x177736){return function(_0x20a765){if(!_0x20a765){_0x5e4f69[_0x0a90('0x27')](0x194);}return _0x20a765;};}function handleError(_0x38f210,_0x3fe065){_0x3fe065=_0x3fe065||0x1f4;return function(_0x2bbfe3){logger[_0x0a90('0x22')](_0x2bbfe3['stack']);if(_0x2bbfe3[_0x0a90('0x36')]){delete _0x2bbfe3[_0x0a90('0x36')];}_0x38f210[_0x0a90('0x28')](_0x3fe065)[_0x0a90('0x37')](_0x2bbfe3);};}exports['index']=function(_0x4e1b27,_0x4fa814){var _0x4f91b9={},_0x1303ed={},_0x2b8fdc={'count':0x0,'rows':[]};var _0x49922c=_[_0x0a90('0x38')](db[_0x0a90('0x39')]['rawAttributes'],function(_0x5f76f8){return{'name':_0x5f76f8['fieldName'],'type':_0x5f76f8[_0x0a90('0x3a')][_0x0a90('0x3b')]};});_0x1303ed['model']=_['map'](_0x49922c,'name');_0x1303ed[_0x0a90('0x3c')]=_[_0x0a90('0x3d')](_0x4e1b27[_0x0a90('0x3c')]);_0x1303ed['filters']=_[_0x0a90('0x3e')](_0x1303ed['model'],_0x1303ed[_0x0a90('0x3c')]);_0x4f91b9['attributes']=_[_0x0a90('0x3e')](_0x1303ed[_0x0a90('0x3f')],qs[_0x0a90('0x40')](_0x4e1b27['query'][_0x0a90('0x40')]));_0x4f91b9[_0x0a90('0x41')]=_0x4f91b9['attributes'][_0x0a90('0x42')]?_0x4f91b9['attributes']:_0x1303ed[_0x0a90('0x3f')];if(!_0x4e1b27[_0x0a90('0x3c')][_0x0a90('0x43')](_0x0a90('0x44'))){_0x4f91b9[_0x0a90('0x2d')]=qs[_0x0a90('0x2d')](_0x4e1b27[_0x0a90('0x3c')][_0x0a90('0x2d')]);_0x4f91b9['offset']=qs[_0x0a90('0x2c')](_0x4e1b27['query'][_0x0a90('0x2c')]);}_0x4f91b9[_0x0a90('0x45')]=qs[_0x0a90('0x46')](_0x4e1b27[_0x0a90('0x3c')][_0x0a90('0x46')]);_0x4f91b9[_0x0a90('0x47')]=qs[_0x0a90('0x48')](_[_0x0a90('0x49')](_0x4e1b27[_0x0a90('0x3c')],_0x1303ed[_0x0a90('0x48')]),_0x49922c);if(_0x4e1b27[_0x0a90('0x3c')]['filter']){_0x4f91b9[_0x0a90('0x47')]=_[_0x0a90('0x4a')](_0x4f91b9[_0x0a90('0x47')],{'$or':_[_0x0a90('0x38')](_0x49922c,function(_0x3e7149){if(_0x3e7149[_0x0a90('0x3a')]!==_0x0a90('0x4b')){var _0x2199cb={};_0x2199cb[_0x3e7149[_0x0a90('0x36')]]={'$like':'%'+_0x4e1b27['query'][_0x0a90('0x4c')]+'%'};return _0x2199cb;}})});}_0x4f91b9=_[_0x0a90('0x4a')]({},_0x4f91b9,_0x4e1b27['options']);var _0x5e3bad={'where':_0x4f91b9[_0x0a90('0x47')]};return db[_0x0a90('0x39')][_0x0a90('0x2b')](_0x5e3bad)[_0x0a90('0x1c')](function(_0x301d00){_0x2b8fdc[_0x0a90('0x2b')]=_0x301d00;if(_0x4e1b27[_0x0a90('0x3c')][_0x0a90('0x4d')]){_0x4f91b9[_0x0a90('0x4e')]=[{'all':!![]}];}return db['VoiceContext'][_0x0a90('0x4f')](_0x4f91b9);})[_0x0a90('0x1c')](function(_0x3db3b0){_0x2b8fdc[_0x0a90('0x50')]=_0x3db3b0;return _0x2b8fdc;})[_0x0a90('0x1c')](respondWithFilteredResult(_0x4fa814,_0x4f91b9))['catch'](handleError(_0x4fa814,null));};exports['show']=function(_0x19e0f7,_0x3b3494){var _0x22bbff={'raw':![],'where':{'id':_0x19e0f7[_0x0a90('0x51')]['id']}},_0x858fdc={};_0x858fdc[_0x0a90('0x3f')]=_[_0x0a90('0x3d')](db['VoiceContext']['rawAttributes']);_0x858fdc[_0x0a90('0x3c')]=_[_0x0a90('0x3d')](_0x19e0f7['query']);_0x858fdc[_0x0a90('0x48')]=_[_0x0a90('0x3e')](_0x858fdc['model'],_0x858fdc['query']);_0x22bbff[_0x0a90('0x41')]=_[_0x0a90('0x3e')](_0x858fdc[_0x0a90('0x3f')],qs[_0x0a90('0x40')](_0x19e0f7[_0x0a90('0x3c')]['fields']));_0x22bbff[_0x0a90('0x41')]=_0x22bbff[_0x0a90('0x41')][_0x0a90('0x42')]?_0x22bbff[_0x0a90('0x41')]:_0x858fdc['model'];if(_0x19e0f7['query'][_0x0a90('0x4d')]){_0x22bbff[_0x0a90('0x4e')]=[{'all':!![]}];}_0x22bbff=_[_0x0a90('0x4a')]({},_0x22bbff,_0x19e0f7[_0x0a90('0x52')]);return db['VoiceContext'][_0x0a90('0x53')](_0x22bbff)[_0x0a90('0x1c')](handleEntityNotFound(_0x3b3494,null))['then'](respondWithResult(_0x3b3494,null))[_0x0a90('0x26')](handleError(_0x3b3494,null));};exports[_0x0a90('0x54')]=function(_0x24bde7,_0x24f415,_0x527fcd){var _0x271b63;return db[_0x0a90('0x39')][_0x0a90('0x54')](_0x24bde7[_0x0a90('0x55')],{'raw':!![]})[_0x0a90('0x1c')](function(_0x31e24d){_0x271b63=_0x31e24d;return db[_0x0a90('0x39')][_0x0a90('0x4f')]({'raw':!![]});})[_0x0a90('0x1c')](function(_0x23b665){var _0x445f4b=fs['readFileSync'](path[_0x0a90('0x56')](config['root'],_0x0a90('0x57')),_0x0a90('0x58'));var _0x3dbebe=ejs['render'](_0x445f4b,{'contexts':_0x23b665||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x3dbebe);})['then'](function(){return respondWithRpcPromise(_0x0a90('0x59'),_0x0a90('0x54'),{'module':_0x0a90('0x5a')});})[_0x0a90('0x1c')](function(){var _0x12520d=_0x24bde7[_0x0a90('0x5b')]['get']({'plain':!![]});if(!_0x12520d)throw new Error(_0x0a90('0x5c'));if(_0x12520d[_0x0a90('0x5d')]===_0x0a90('0x5b')){var _0x5d700c=_0x271b63[_0x0a90('0x34')]({'plain':!![]});return db[_0x0a90('0x5e')]['find']({'where':{'name':_0x0a90('0x5f'),'userProfileId':_0x12520d[_0x0a90('0x60')]},'raw':!![]})[_0x0a90('0x1c')](function(_0x14e9d9){if(_0x14e9d9&&_0x14e9d9[_0x0a90('0x61')]===0x0){return db[_0x0a90('0x35')]['create']({'name':_0x5d700c[_0x0a90('0x36')],'resourceId':_0x5d700c['id'],'type':_0x14e9d9[_0x0a90('0x36')],'sectionId':_0x14e9d9['id']},{})[_0x0a90('0x1c')](function(){return _0x271b63;});}else{return _0x271b63;}})['catch'](function(_0x3ee8bf){logger[_0x0a90('0x22')](_0x0a90('0x62'),_0x3ee8bf);throw _0x3ee8bf;});}return _0x271b63;})[_0x0a90('0x1c')](respondWithResult(_0x24f415,0xc9))[_0x0a90('0x26')](handleError(_0x24f415,null));};exports[_0x0a90('0x32')]=function(_0x4a339d,_0x5ea11c,_0x400d17){var _0x10eee6;return db[_0x0a90('0x39')][_0x0a90('0x53')]({'where':{'id':_0x4a339d['params']['id']}})[_0x0a90('0x1c')](handleEntityNotFound(_0x5ea11c,null))[_0x0a90('0x1c')](saveUpdates(_0x4a339d[_0x0a90('0x55')],null))['then'](function(_0x45dcd8){if(_0x45dcd8){_0x10eee6=_0x45dcd8;return db['VoiceContext'][_0x0a90('0x4f')]({'raw':!![]});}})[_0x0a90('0x1c')](function(_0xc0cd0e){var _0x20530d=fs[_0x0a90('0x63')](path['join'](config[_0x0a90('0x64')],'server/files/templates/context.ejs'),_0x0a90('0x58'));var _0x156cc5=ejs['render'](_0x20530d,{'contexts':_0xc0cd0e||[]});fs[_0x0a90('0x65')](_0x0a90('0x66'),_0x156cc5);})[_0x0a90('0x1c')](function(){return respondWithRpcPromise(_0x0a90('0x59'),_0x0a90('0x32'),{'module':_0x0a90('0x5a')});})[_0x0a90('0x1c')](function(){return _0x10eee6;})[_0x0a90('0x1c')](respondWithResult(_0x5ea11c,null))['catch'](handleError(_0x5ea11c,null));};exports[_0x0a90('0x33')]=function(_0x1ccf9d,_0x173da9,_0x789f86){var _0x37de7b;return db[_0x0a90('0x39')]['find']({'where':{'id':_0x1ccf9d[_0x0a90('0x51')]['id']}})['then'](handleEntityNotFound(_0x173da9,null))[_0x0a90('0x1c')](removeEntity(_0x173da9,null))[_0x0a90('0x1c')](function(){return db[_0x0a90('0x39')][_0x0a90('0x4f')]({'raw':!![]});})[_0x0a90('0x1c')](function(_0x366af2){var _0x22ab54=fs['readFileSync'](path[_0x0a90('0x56')](config['root'],_0x0a90('0x57')),_0x0a90('0x58'));var _0xb8b93e=ejs[_0x0a90('0x67')](_0x22ab54,{'contexts':_0x366af2});fs['writeFileSync'](_0x0a90('0x66'),_0xb8b93e);return respondWithRpcPromise('Reload',_0x0a90('0x33'),{'module':_0x0a90('0x5a')});})[_0x0a90('0x26')](handleError(_0x173da9,null));};