e504ee939f3f6aeaeab130d1c70c828ee75db21d
[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 _0x5f66=['findAll','rows','show','params','includeAll','find','create','body','readFileSync','join','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','server/files/templates/context.ejs','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','jayson/promise','http','request','then','info','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','VoiceContext,\x20%s,\x20%s','result','catch','sendStatus','status','end','offset','limit','json','apply','reject','save','update','destroy','Contexts','UserProfileResource','stack','name','index','map','rawAttributes','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceContext','include'];(function(_0x261f18,_0x1d8f05){var _0x3c6894=function(_0x4cf017){while(--_0x4cf017){_0x261f18['push'](_0x261f18['shift']());}};_0x3c6894(++_0x1d8f05);}(_0x5f66,0x1a0));var _0x65f6=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x5f66[_0x126558];return _0x1f6d14;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x65f6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x65f6('0x1'));var jsonpatch=require(_0x65f6('0x2'));var rp=require(_0x65f6('0x3'));var moment=require(_0x65f6('0x4'));var BPromise=require(_0x65f6('0x5'));var Mustache=require('mustache');var util=require(_0x65f6('0x6'));var path=require('path');var sox=require(_0x65f6('0x7'));var csv=require(_0x65f6('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x65f6('0x9'));var crypto=require(_0x65f6('0xa'));var jsforce=require(_0x65f6('0xb'));var deskjs=require(_0x65f6('0xc'));var toCsv=require(_0x65f6('0x8'));var querystring=require(_0x65f6('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x65f6('0xe'));var qs=require(_0x65f6('0xf'));var as=require(_0x65f6('0x10'));var hardwareService=require(_0x65f6('0x11'));var logger=require('../../config/logger')(_0x65f6('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x65f6('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0x65f6('0x14'));var client=jayson['client'][_0x65f6('0x15')]({'port':0x232a});function respondWithRpcPromise(_0x186a6a,_0x2c4ee5,_0x217570,_0x369f96){return new BPromise(function(_0x1d29fd,_0x44144b){var _0xb1d40a=_0x369f96||client;return _0xb1d40a[_0x65f6('0x16')](_0x186a6a,_0x217570)[_0x65f6('0x17')](function(_0x59154e){logger[_0x65f6('0x18')]('VoiceContext,\x20%s,\x20%s',_0x2c4ee5,'request\x20sent');logger[_0x65f6('0x19')](_0x65f6('0x1a'),_0x2c4ee5,_0x65f6('0x1b'),JSON[_0x65f6('0x1c')](_0x59154e));if(_0x59154e[_0x65f6('0x1d')]){if(_0x59154e[_0x65f6('0x1d')][_0x65f6('0x1e')]===0x1f4){logger[_0x65f6('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x2c4ee5,_0x59154e['error'][_0x65f6('0x1f')]);return _0x44144b(_0x59154e['error']['message']);}logger['error'](_0x65f6('0x20'),_0x2c4ee5,_0x59154e[_0x65f6('0x1d')]['message']);return _0x1d29fd(_0x59154e[_0x65f6('0x1d')][_0x65f6('0x1f')]);}else{logger[_0x65f6('0x18')](_0x65f6('0x20'),_0x2c4ee5,_0x65f6('0x1b'));_0x1d29fd(_0x59154e[_0x65f6('0x21')]['message']);}})[_0x65f6('0x22')](function(_0x4bb39e){logger['error'](_0x65f6('0x20'),_0x2c4ee5,_0x4bb39e);_0x44144b(_0x4bb39e);});});}function respondWithStatusCode(_0xd173f4,_0x524e42){_0x524e42=_0x524e42||0xcc;return function(_0x1eeaaa){if(_0x1eeaaa){return _0xd173f4[_0x65f6('0x23')](_0x524e42);}return _0xd173f4[_0x65f6('0x24')](_0x524e42)[_0x65f6('0x25')]();};}function respondWithResult(_0x4f5a69,_0x9d7bb0){_0x9d7bb0=_0x9d7bb0||0xc8;return function(_0x59ea32){if(_0x59ea32){return _0x4f5a69[_0x65f6('0x24')](_0x9d7bb0)['json'](_0x59ea32);}};}function respondWithFilteredResult(_0x5cb131,_0x4fde2f){return function(_0x29abdb){if(_0x29abdb){var _0x16cde8=_0x29abdb['count'],_0x4b2292=_0x4fde2f[_0x65f6('0x26')],_0x296cd9=_0x4fde2f[_0x65f6('0x26')]+_0x4fde2f[_0x65f6('0x27')],_0x28f710;if(_0x296cd9>=_0x16cde8){_0x296cd9=_0x16cde8;_0x28f710=0xc8;}else{_0x28f710=0xce;}_0x5cb131['status'](_0x28f710);return _0x5cb131['set']('Content-Range',_0x4b2292+'-'+_0x296cd9+'/'+_0x16cde8)[_0x65f6('0x28')](_0x29abdb);}return null;};}function patchUpdates(_0x3c032f){return function(_0x4344b3){try{jsonpatch[_0x65f6('0x29')](_0x4344b3,_0x3c032f,!![]);}catch(_0x518cac){return BPromise[_0x65f6('0x2a')](_0x518cac);}return _0x4344b3[_0x65f6('0x2b')]();};}function saveUpdates(_0x4ace4c,_0x4ea23d){return function(_0x154cbd){if(_0x154cbd){return _0x154cbd[_0x65f6('0x2c')](_0x4ace4c)['then'](function(_0x4e50c0){return _0x4e50c0;});}return null;};}function removeEntity(_0x10b368,_0x1ce43c){return function(_0x11fe3b){if(_0x11fe3b){return _0x11fe3b[_0x65f6('0x2d')]()[_0x65f6('0x17')](function(){var _0x2d32be=_0x11fe3b['get']({'plain':!![]});var _0x103265=_0x65f6('0x2e');return db[_0x65f6('0x2f')]['destroy']({'where':{'type':_0x103265,'resourceId':_0x2d32be['id']}})[_0x65f6('0x17')](function(){return _0x11fe3b;});})[_0x65f6('0x17')](function(){_0x10b368[_0x65f6('0x24')](0xcc)[_0x65f6('0x25')]();});}};}function handleEntityNotFound(_0x37c086,_0x2f054c){return function(_0x4d4d84){if(!_0x4d4d84){_0x37c086[_0x65f6('0x23')](0x194);}return _0x4d4d84;};}function handleError(_0x1b24ea,_0x4f3e22){_0x4f3e22=_0x4f3e22||0x1f4;return function(_0x36dbf4){logger['error'](_0x36dbf4[_0x65f6('0x30')]);if(_0x36dbf4['name']){delete _0x36dbf4[_0x65f6('0x31')];}_0x1b24ea[_0x65f6('0x24')](_0x4f3e22)['send'](_0x36dbf4);};}exports[_0x65f6('0x32')]=function(_0x13e41a,_0x3b261d){var _0x515648={},_0x582c7e={},_0x30109d={'count':0x0,'rows':[]};var _0x4c0df4=_[_0x65f6('0x33')](db['VoiceContext'][_0x65f6('0x34')],function(_0x2b9675){return{'name':_0x2b9675['fieldName'],'type':_0x2b9675[_0x65f6('0x35')]['key']};});_0x582c7e['model']=_[_0x65f6('0x33')](_0x4c0df4,_0x65f6('0x31'));_0x582c7e[_0x65f6('0x36')]=_[_0x65f6('0x37')](_0x13e41a[_0x65f6('0x36')]);_0x582c7e[_0x65f6('0x38')]=_[_0x65f6('0x39')](_0x582c7e[_0x65f6('0x3a')],_0x582c7e['query']);_0x515648[_0x65f6('0x3b')]=_['intersection'](_0x582c7e[_0x65f6('0x3a')],qs[_0x65f6('0x3c')](_0x13e41a[_0x65f6('0x36')][_0x65f6('0x3c')]));_0x515648['attributes']=_0x515648[_0x65f6('0x3b')][_0x65f6('0x3d')]?_0x515648[_0x65f6('0x3b')]:_0x582c7e[_0x65f6('0x3a')];if(!_0x13e41a[_0x65f6('0x36')][_0x65f6('0x3e')](_0x65f6('0x3f'))){_0x515648[_0x65f6('0x27')]=qs[_0x65f6('0x27')](_0x13e41a['query'][_0x65f6('0x27')]);_0x515648[_0x65f6('0x26')]=qs[_0x65f6('0x26')](_0x13e41a[_0x65f6('0x36')][_0x65f6('0x26')]);}_0x515648[_0x65f6('0x40')]=qs[_0x65f6('0x41')](_0x13e41a[_0x65f6('0x36')][_0x65f6('0x41')]);_0x515648[_0x65f6('0x42')]=qs[_0x65f6('0x38')](_[_0x65f6('0x43')](_0x13e41a[_0x65f6('0x36')],_0x582c7e[_0x65f6('0x38')]),_0x4c0df4);if(_0x13e41a[_0x65f6('0x36')][_0x65f6('0x44')]){_0x515648['where']=_[_0x65f6('0x45')](_0x515648[_0x65f6('0x42')],{'$or':_[_0x65f6('0x33')](_0x4c0df4,function(_0x3828c9){if(_0x3828c9['type']!==_0x65f6('0x46')){var _0x2d0dac={};_0x2d0dac[_0x3828c9[_0x65f6('0x31')]]={'$like':'%'+_0x13e41a['query'][_0x65f6('0x44')]+'%'};return _0x2d0dac;}})});}_0x515648=_[_0x65f6('0x45')]({},_0x515648,_0x13e41a[_0x65f6('0x47')]);var _0x2179e5={'where':_0x515648['where']};return db[_0x65f6('0x48')]['count'](_0x2179e5)[_0x65f6('0x17')](function(_0x6968b){_0x30109d['count']=_0x6968b;if(_0x13e41a[_0x65f6('0x36')]['includeAll']){_0x515648[_0x65f6('0x49')]=[{'all':!![]}];}return db[_0x65f6('0x48')][_0x65f6('0x4a')](_0x515648);})[_0x65f6('0x17')](function(_0x3ec18f){_0x30109d[_0x65f6('0x4b')]=_0x3ec18f;return _0x30109d;})['then'](respondWithFilteredResult(_0x3b261d,_0x515648))['catch'](handleError(_0x3b261d,null));};exports[_0x65f6('0x4c')]=function(_0x15d3ba,_0x3b647a){var _0x1e9e29={'raw':![],'where':{'id':_0x15d3ba[_0x65f6('0x4d')]['id']}},_0x3b907c={};_0x3b907c[_0x65f6('0x3a')]=_[_0x65f6('0x37')](db[_0x65f6('0x48')]['rawAttributes']);_0x3b907c[_0x65f6('0x36')]=_[_0x65f6('0x37')](_0x15d3ba[_0x65f6('0x36')]);_0x3b907c['filters']=_[_0x65f6('0x39')](_0x3b907c[_0x65f6('0x3a')],_0x3b907c['query']);_0x1e9e29[_0x65f6('0x3b')]=_[_0x65f6('0x39')](_0x3b907c['model'],qs[_0x65f6('0x3c')](_0x15d3ba['query'][_0x65f6('0x3c')]));_0x1e9e29[_0x65f6('0x3b')]=_0x1e9e29[_0x65f6('0x3b')]['length']?_0x1e9e29[_0x65f6('0x3b')]:_0x3b907c[_0x65f6('0x3a')];if(_0x15d3ba['query'][_0x65f6('0x4e')]){_0x1e9e29[_0x65f6('0x49')]=[{'all':!![]}];}_0x1e9e29=_['merge']({},_0x1e9e29,_0x15d3ba[_0x65f6('0x47')]);return db[_0x65f6('0x48')][_0x65f6('0x4f')](_0x1e9e29)[_0x65f6('0x17')](handleEntityNotFound(_0x3b647a,null))[_0x65f6('0x17')](respondWithResult(_0x3b647a,null))[_0x65f6('0x22')](handleError(_0x3b647a,null));};exports[_0x65f6('0x50')]=function(_0x305131,_0x4f69d8,_0x52c5a4){var _0x5ca62e;return db[_0x65f6('0x48')][_0x65f6('0x50')](_0x305131[_0x65f6('0x51')],{'raw':!![]})[_0x65f6('0x17')](function(_0x545445){_0x5ca62e=_0x545445;return db[_0x65f6('0x48')][_0x65f6('0x4a')]({'raw':!![]});})[_0x65f6('0x17')](function(_0x50f63a){var _0x19c5fa=fs[_0x65f6('0x52')](path[_0x65f6('0x53')](config['root'],'server/files/templates/context.ejs'),_0x65f6('0x54'));var _0x44f3dd=ejs[_0x65f6('0x55')](_0x19c5fa,{'contexts':_0x50f63a||[]});fs[_0x65f6('0x56')](_0x65f6('0x57'),_0x44f3dd);})[_0x65f6('0x17')](function(){return respondWithRpcPromise(_0x65f6('0x58'),_0x65f6('0x50'),{'module':_0x65f6('0x59')});})[_0x65f6('0x17')](function(){var _0xa7eee9=_0x305131[_0x65f6('0x5a')][_0x65f6('0x5b')]({'plain':!![]});if(!_0xa7eee9)throw new Error(_0x65f6('0x5c'));if(_0xa7eee9['role']===_0x65f6('0x5a')){var _0x37d527=_0x5ca62e[_0x65f6('0x5b')]({'plain':!![]});return db['UserProfileSection'][_0x65f6('0x4f')]({'where':{'name':_0x65f6('0x2e'),'userProfileId':_0xa7eee9[_0x65f6('0x5d')]},'raw':!![]})[_0x65f6('0x17')](function(_0x4ef333){if(_0x4ef333&&_0x4ef333[_0x65f6('0x5e')]===0x0){return db[_0x65f6('0x2f')][_0x65f6('0x50')]({'name':_0x37d527[_0x65f6('0x31')],'resourceId':_0x37d527['id'],'type':_0x4ef333['name'],'sectionId':_0x4ef333['id']},{})[_0x65f6('0x17')](function(){return _0x5ca62e;});}else{return _0x5ca62e;}})[_0x65f6('0x22')](function(_0x5c55e4){logger[_0x65f6('0x1d')](_0x65f6('0x5f'),_0x5c55e4);throw _0x5c55e4;});}return _0x5ca62e;})[_0x65f6('0x17')](respondWithResult(_0x4f69d8,0xc9))['catch'](handleError(_0x4f69d8,null));};exports[_0x65f6('0x2c')]=function(_0x439365,_0x3974ef,_0x3c23e3){var _0x2b7aed;return db[_0x65f6('0x48')]['find']({'where':{'id':_0x439365['params']['id']}})['then'](handleEntityNotFound(_0x3974ef,null))[_0x65f6('0x17')](saveUpdates(_0x439365[_0x65f6('0x51')],null))[_0x65f6('0x17')](function(_0x471bec){if(_0x471bec){_0x2b7aed=_0x471bec;return db[_0x65f6('0x48')][_0x65f6('0x4a')]({'raw':!![]});}})['then'](function(_0xfbfebc){var _0x1d1532=fs['readFileSync'](path[_0x65f6('0x53')](config[_0x65f6('0x60')],_0x65f6('0x61')),'utf8');var _0x23c441=ejs[_0x65f6('0x55')](_0x1d1532,{'contexts':_0xfbfebc||[]});fs['writeFileSync'](_0x65f6('0x57'),_0x23c441);})[_0x65f6('0x17')](function(){return respondWithRpcPromise(_0x65f6('0x58'),_0x65f6('0x2c'),{'module':_0x65f6('0x59')});})[_0x65f6('0x17')](function(){return _0x2b7aed;})[_0x65f6('0x17')](respondWithResult(_0x3974ef,null))['catch'](handleError(_0x3974ef,null));};exports['destroy']=function(_0x3eb33e,_0x3da139,_0x4a9524){var _0x417ba5;return db['VoiceContext'][_0x65f6('0x4f')]({'where':{'id':_0x3eb33e['params']['id']}})[_0x65f6('0x17')](handleEntityNotFound(_0x3da139,null))[_0x65f6('0x17')](removeEntity(_0x3da139,null))[_0x65f6('0x17')](function(){return db[_0x65f6('0x48')][_0x65f6('0x4a')]({'raw':!![]});})[_0x65f6('0x17')](function(_0x1aaf75){var _0x1cc66a=fs[_0x65f6('0x52')](path['join'](config['root'],_0x65f6('0x61')),_0x65f6('0x54'));var _0x37bc3b=ejs['render'](_0x1cc66a,{'contexts':_0x1aaf75});fs['writeFileSync'](_0x65f6('0x57'),_0x37bc3b);return respondWithRpcPromise(_0x65f6('0x58'),_0x65f6('0x2d'),{'module':_0x65f6('0x59')});})[_0x65f6('0x22')](handleError(_0x3da139,null));};