Built motion from commit 2e4747fd.|2.6.7
[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 _0xb486=['sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','reject','update','destroy','UserProfileResource','end','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','VIRTUAL','merge','VoiceContext','includeAll','include','findAll','rows','catch','show','create','body','readFileSync','root','utf8','render','writeFileSync','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','Contexts','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','server/files/templates/context.ejs','/etc/asterisk/extensions_xcally_contexts.conf','Reload','join','eml-format','rimraf','fast-json-patch','moment','mustache','util','path'];(function(_0x1558ab,_0x39d1de){var _0x53b64a=function(_0x4771ed){while(--_0x4771ed){_0x1558ab['push'](_0x1558ab['shift']());}};_0x53b64a(++_0x39d1de);}(_0xb486,0xcb));var _0x6b48=function(_0x5ac611,_0x4eb9f9){_0x5ac611=_0x5ac611-0x0;var _0x17fd4a=_0xb486[_0x5ac611];return _0x17fd4a;};'use strict';var emlformat=require(_0x6b48('0x0'));var rimraf=require(_0x6b48('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6b48('0x2'));var rp=require('request-promise');var moment=require(_0x6b48('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6b48('0x4'));var util=require(_0x6b48('0x5'));var path=require(_0x6b48('0x6'));var sox=require(_0x6b48('0x7'));var csv=require(_0x6b48('0x8'));var ejs=require(_0x6b48('0x9'));var fs=require('fs');var fs_extra=require(_0x6b48('0xa'));var _=require('lodash');var squel=require(_0x6b48('0xb'));var crypto=require(_0x6b48('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6b48('0xd'));var toCsv=require(_0x6b48('0x8'));var querystring=require(_0x6b48('0xe'));var Papa=require(_0x6b48('0xf'));var Redis=require(_0x6b48('0x10'));var authService=require(_0x6b48('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x6b48('0x12'));var hardwareService=require(_0x6b48('0x13'));var logger=require('../../config/logger')(_0x6b48('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6b48('0x15'));var db=require(_0x6b48('0x16'))['db'];var jayson=require(_0x6b48('0x17'));var client=jayson['client'][_0x6b48('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x29f6a2,_0x4b19f2,_0xc91dd0,_0x466c56){return new BPromise(function(_0x3f1aad,_0x4634dc){var _0x85512e=_0x466c56||client;return _0x85512e[_0x6b48('0x19')](_0x29f6a2,_0xc91dd0)[_0x6b48('0x1a')](function(_0x113c20){logger['info'](_0x6b48('0x1b'),_0x4b19f2,_0x6b48('0x1c'));logger[_0x6b48('0x1d')](_0x6b48('0x1e'),_0x4b19f2,_0x6b48('0x1c'),JSON[_0x6b48('0x1f')](_0x113c20));if(_0x113c20['error']){if(_0x113c20[_0x6b48('0x20')][_0x6b48('0x21')]===0x1f4){logger[_0x6b48('0x20')]('VoiceContext,\x20%s,\x20%s',_0x4b19f2,_0x113c20[_0x6b48('0x20')]['message']);return _0x4634dc(_0x113c20[_0x6b48('0x20')]['message']);}logger['error'](_0x6b48('0x1b'),_0x4b19f2,_0x113c20['error'][_0x6b48('0x22')]);return _0x3f1aad(_0x113c20[_0x6b48('0x20')][_0x6b48('0x22')]);}else{logger[_0x6b48('0x23')]('VoiceContext,\x20%s,\x20%s',_0x4b19f2,_0x6b48('0x1c'));_0x3f1aad(_0x113c20[_0x6b48('0x24')][_0x6b48('0x22')]);}})['catch'](function(_0x4d3c29){logger[_0x6b48('0x20')]('VoiceContext,\x20%s,\x20%s',_0x4b19f2,_0x4d3c29);_0x4634dc(_0x4d3c29);});});}function respondWithStatusCode(_0x381f64,_0x2453ec){_0x2453ec=_0x2453ec||0xcc;return function(_0x103cf5){if(_0x103cf5){return _0x381f64[_0x6b48('0x25')](_0x2453ec);}return _0x381f64[_0x6b48('0x26')](_0x2453ec)['end']();};}function respondWithResult(_0x176f60,_0x1019c9){_0x1019c9=_0x1019c9||0xc8;return function(_0x367c52){if(_0x367c52){return _0x176f60[_0x6b48('0x26')](_0x1019c9)[_0x6b48('0x27')](_0x367c52);}};}function respondWithFilteredResult(_0x5194b4,_0xf1388){return function(_0x26701b){if(_0x26701b){var _0x3ae9c8=typeof _0xf1388['offset']===_0x6b48('0x28')&&typeof _0xf1388[_0x6b48('0x29')]==='undefined';var _0x326505=_0x26701b[_0x6b48('0x2a')];var _0x1d433a=_0x3ae9c8?0x0:_0xf1388['offset'];var _0x82fd78=_0x3ae9c8?_0x26701b[_0x6b48('0x2a')]:_0xf1388[_0x6b48('0x2b')]+_0xf1388[_0x6b48('0x29')];var _0xdde9c4;if(_0x82fd78>=_0x326505){_0x82fd78=_0x326505;_0xdde9c4=0xc8;}else{_0xdde9c4=0xce;}_0x5194b4[_0x6b48('0x26')](_0xdde9c4);return _0x5194b4['set'](_0x6b48('0x2c'),_0x1d433a+'-'+_0x82fd78+'/'+_0x326505)[_0x6b48('0x27')](_0x26701b);}return null;};}function patchUpdates(_0x3387a7){return function(_0x20e890){try{jsonpatch[_0x6b48('0x2d')](_0x20e890,_0x3387a7,!![]);}catch(_0x1bc4ab){return BPromise[_0x6b48('0x2e')](_0x1bc4ab);}return _0x20e890['save']();};}function saveUpdates(_0x4f0570,_0x1ee234){return function(_0x453da4){if(_0x453da4){return _0x453da4[_0x6b48('0x2f')](_0x4f0570)['then'](function(_0x24fd17){return _0x24fd17;});}return null;};}function removeEntity(_0x13ae7c,_0x8c068d){return function(_0x298184){if(_0x298184){return _0x298184[_0x6b48('0x30')]()[_0x6b48('0x1a')](function(){var _0x174d3f=_0x298184['get']({'plain':!![]});var _0x3baba6='Contexts';return db[_0x6b48('0x31')][_0x6b48('0x30')]({'where':{'type':_0x3baba6,'resourceId':_0x174d3f['id']}})['then'](function(){return _0x298184;});})[_0x6b48('0x1a')](function(){_0x13ae7c[_0x6b48('0x26')](0xcc)[_0x6b48('0x32')]();});}};}function handleEntityNotFound(_0x1c63f6,_0x52ca83){return function(_0x49138f){if(!_0x49138f){_0x1c63f6['sendStatus'](0x194);}return _0x49138f;};}function handleError(_0xf7e75a,_0x503e8a){_0x503e8a=_0x503e8a||0x1f4;return function(_0x5a4c0c){logger[_0x6b48('0x20')](_0x5a4c0c['stack']);if(_0x5a4c0c[_0x6b48('0x33')]){delete _0x5a4c0c[_0x6b48('0x33')];}_0xf7e75a[_0x6b48('0x26')](_0x503e8a)[_0x6b48('0x34')](_0x5a4c0c);};}exports[_0x6b48('0x35')]=function(_0xa1097b,_0xd72b4e){var _0x4ecfed={},_0x411e47={},_0x3935aa={'count':0x0,'rows':[]};var _0x15824d=_[_0x6b48('0x36')](db['VoiceContext'][_0x6b48('0x37')],function(_0x920953){return{'name':_0x920953[_0x6b48('0x38')],'type':_0x920953[_0x6b48('0x39')][_0x6b48('0x3a')]};});_0x411e47[_0x6b48('0x3b')]=_[_0x6b48('0x36')](_0x15824d,_0x6b48('0x33'));_0x411e47[_0x6b48('0x3c')]=_[_0x6b48('0x3d')](_0xa1097b[_0x6b48('0x3c')]);_0x411e47['filters']=_['intersection'](_0x411e47['model'],_0x411e47[_0x6b48('0x3c')]);_0x4ecfed[_0x6b48('0x3e')]=_[_0x6b48('0x3f')](_0x411e47[_0x6b48('0x3b')],qs[_0x6b48('0x40')](_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x40')]));_0x4ecfed['attributes']=_0x4ecfed[_0x6b48('0x3e')][_0x6b48('0x41')]?_0x4ecfed[_0x6b48('0x3e')]:_0x411e47[_0x6b48('0x3b')];if(!_0xa1097b['query'][_0x6b48('0x42')](_0x6b48('0x43'))){_0x4ecfed['limit']=qs['limit'](_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x29')]);_0x4ecfed[_0x6b48('0x2b')]=qs[_0x6b48('0x2b')](_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x2b')]);}_0x4ecfed[_0x6b48('0x44')]=qs[_0x6b48('0x45')](_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x45')]);_0x4ecfed[_0x6b48('0x46')]=qs['filters'](_[_0x6b48('0x47')](_0xa1097b[_0x6b48('0x3c')],_0x411e47[_0x6b48('0x48')]),_0x15824d);if(_0xa1097b['query'][_0x6b48('0x49')]){_0x4ecfed[_0x6b48('0x46')]=_['merge'](_0x4ecfed[_0x6b48('0x46')],{'$or':_[_0x6b48('0x36')](_0x15824d,function(_0x1ff872){if(_0x1ff872['type']!==_0x6b48('0x4a')){var _0xd6a7c9={};_0xd6a7c9[_0x1ff872['name']]={'$like':'%'+_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x49')]+'%'};return _0xd6a7c9;}})});}_0x4ecfed=_[_0x6b48('0x4b')]({},_0x4ecfed,_0xa1097b['options']);var _0x10b820={'where':_0x4ecfed['where']};return db[_0x6b48('0x4c')][_0x6b48('0x2a')](_0x10b820)[_0x6b48('0x1a')](function(_0x2dd37c){_0x3935aa['count']=_0x2dd37c;if(_0xa1097b[_0x6b48('0x3c')][_0x6b48('0x4d')]){_0x4ecfed[_0x6b48('0x4e')]=[{'all':!![]}];}return db[_0x6b48('0x4c')][_0x6b48('0x4f')](_0x4ecfed);})[_0x6b48('0x1a')](function(_0x124692){_0x3935aa[_0x6b48('0x50')]=_0x124692;return _0x3935aa;})[_0x6b48('0x1a')](respondWithFilteredResult(_0xd72b4e,_0x4ecfed))[_0x6b48('0x51')](handleError(_0xd72b4e,null));};exports[_0x6b48('0x52')]=function(_0x5bdf8d,_0x214ddd){var _0x317a76={'raw':![],'where':{'id':_0x5bdf8d['params']['id']}},_0x26cc4c={};_0x26cc4c[_0x6b48('0x3b')]=_[_0x6b48('0x3d')](db[_0x6b48('0x4c')][_0x6b48('0x37')]);_0x26cc4c['query']=_[_0x6b48('0x3d')](_0x5bdf8d[_0x6b48('0x3c')]);_0x26cc4c[_0x6b48('0x48')]=_['intersection'](_0x26cc4c[_0x6b48('0x3b')],_0x26cc4c[_0x6b48('0x3c')]);_0x317a76[_0x6b48('0x3e')]=_['intersection'](_0x26cc4c['model'],qs[_0x6b48('0x40')](_0x5bdf8d[_0x6b48('0x3c')][_0x6b48('0x40')]));_0x317a76[_0x6b48('0x3e')]=_0x317a76['attributes'][_0x6b48('0x41')]?_0x317a76[_0x6b48('0x3e')]:_0x26cc4c[_0x6b48('0x3b')];if(_0x5bdf8d['query'][_0x6b48('0x4d')]){_0x317a76[_0x6b48('0x4e')]=[{'all':!![]}];}_0x317a76=_[_0x6b48('0x4b')]({},_0x317a76,_0x5bdf8d['options']);return db['VoiceContext']['find'](_0x317a76)[_0x6b48('0x1a')](handleEntityNotFound(_0x214ddd,null))[_0x6b48('0x1a')](respondWithResult(_0x214ddd,null))['catch'](handleError(_0x214ddd,null));};exports['create']=function(_0x566322,_0xf77ae,_0x3baf09){var _0x16d403;return db[_0x6b48('0x4c')][_0x6b48('0x53')](_0x566322[_0x6b48('0x54')],{'raw':!![]})[_0x6b48('0x1a')](function(_0x274cdb){_0x16d403=_0x274cdb;return db[_0x6b48('0x4c')][_0x6b48('0x4f')]({'raw':!![]});})[_0x6b48('0x1a')](function(_0x659104){var _0x416ad5=fs[_0x6b48('0x55')](path['join'](config[_0x6b48('0x56')],'server/files/templates/context.ejs'),_0x6b48('0x57'));var _0x1db854=ejs[_0x6b48('0x58')](_0x416ad5,{'contexts':_0x659104||[]});fs[_0x6b48('0x59')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x1db854);})[_0x6b48('0x1a')](function(){return respondWithRpcPromise('Reload','create',{'module':_0x6b48('0x5a')});})['then'](function(){var _0x1aecbb=_0x566322[_0x6b48('0x5b')][_0x6b48('0x5c')]({'plain':!![]});if(!_0x1aecbb)throw new Error(_0x6b48('0x5d'));if(_0x1aecbb[_0x6b48('0x5e')]===_0x6b48('0x5b')){var _0x5f10f5=_0x16d403[_0x6b48('0x5c')]({'plain':!![]});return db[_0x6b48('0x5f')][_0x6b48('0x60')]({'where':{'name':_0x6b48('0x61'),'userProfileId':_0x1aecbb[_0x6b48('0x62')]},'raw':!![]})[_0x6b48('0x1a')](function(_0x347149){if(_0x347149&&_0x347149['autoAssociation']===0x0){return db[_0x6b48('0x31')][_0x6b48('0x53')]({'name':_0x5f10f5[_0x6b48('0x33')],'resourceId':_0x5f10f5['id'],'type':_0x347149[_0x6b48('0x33')],'sectionId':_0x347149['id']},{})[_0x6b48('0x1a')](function(){return _0x16d403;});}else{return _0x16d403;}})[_0x6b48('0x51')](function(_0x5b1fa7){logger[_0x6b48('0x20')](_0x6b48('0x63'),_0x5b1fa7);throw _0x5b1fa7;});}return _0x16d403;})[_0x6b48('0x1a')](respondWithResult(_0xf77ae,0xc9))['catch'](handleError(_0xf77ae,null));};exports['update']=function(_0x5ea766,_0x156868,_0x4097a5){var _0x536f1f;return db[_0x6b48('0x4c')][_0x6b48('0x60')]({'where':{'id':_0x5ea766[_0x6b48('0x64')]['id']}})[_0x6b48('0x1a')](handleEntityNotFound(_0x156868,null))['then'](saveUpdates(_0x5ea766[_0x6b48('0x54')],null))[_0x6b48('0x1a')](function(_0x23a13e){if(_0x23a13e){_0x536f1f=_0x23a13e;return db[_0x6b48('0x4c')][_0x6b48('0x4f')]({'raw':!![]});}})['then'](function(_0xa916b2){var _0x5195b0=fs[_0x6b48('0x55')](path['join'](config['root'],_0x6b48('0x65')),_0x6b48('0x57'));var _0x5a98a9=ejs[_0x6b48('0x58')](_0x5195b0,{'contexts':_0xa916b2||[]});fs['writeFileSync'](_0x6b48('0x66'),_0x5a98a9);})[_0x6b48('0x1a')](function(){return respondWithRpcPromise(_0x6b48('0x67'),'update',{'module':_0x6b48('0x5a')});})[_0x6b48('0x1a')](function(){return _0x536f1f;})[_0x6b48('0x1a')](respondWithResult(_0x156868,null))[_0x6b48('0x51')](handleError(_0x156868,null));};exports[_0x6b48('0x30')]=function(_0x4e415f,_0x2aa1c1,_0x32d2b6){var _0x59cba2;return db['VoiceContext'][_0x6b48('0x60')]({'where':{'id':_0x4e415f[_0x6b48('0x64')]['id']}})['then'](handleEntityNotFound(_0x2aa1c1,null))['then'](removeEntity(_0x2aa1c1,null))[_0x6b48('0x1a')](function(){return db[_0x6b48('0x4c')][_0x6b48('0x4f')]({'raw':!![]});})['then'](function(_0x1cbf5f){var _0x213cc6=fs['readFileSync'](path[_0x6b48('0x68')](config[_0x6b48('0x56')],'server/files/templates/context.ejs'),_0x6b48('0x57'));var _0x50d944=ejs['render'](_0x213cc6,{'contexts':_0x1cbf5f});fs[_0x6b48('0x59')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x50d944);return respondWithRpcPromise(_0x6b48('0x67'),'destroy',{'module':_0x6b48('0x5a')});})[_0x6b48('0x51')](handleError(_0x2aa1c1,null));};